API-Referenz
AgentGIF bietet eine kostenlose REST-API mit 30+ Endpunkten. Lese-Endpunkte erfordern keine Authentifizierung. Schreib-Endpunkte (hochladen, bearbeiten, löschen) erfordern einen API-Schlüssel.
Basis-URL
https://agentgif.com/api/v1/
Alle Endpunkte sind relativ zu dieser Basis-URL. HTTPS ist erforderlich — HTTP-Anfragen werden umgeleitet.
Authentifizierung
Lese-Endpunkte (GET) sind offen und kostenlos — keine Authentifizierung erforderlich. Schreib-Endpunkte (POST, PATCH, DELETE) erfordern einen API-Schlüssel, der über den X-API-Key-Header übergeben wird:
curl -H "X-API-Key: YOUR_API_KEY" https://agentgif.com/api/v1/gifs/upload/ \
-F "[email protected]" -F "title=Demo"
Get your API key at Settings → API Key. You can reset it at any time via the settings page or the /api/v1/users/me/api-key/reset/ endpoint.
Antwortformat
Alle Antworten sind application/json. Daten verwenden das ISO 8601-Format. GIF-IDs sind 8-Zeichen-nanoid-Strings (z.B. xK9mQ2pL).
Ein typisches GIF-Objekt sieht so aus:
{
"id": "xK9mQ2pL",
"title": "Git Interactive Rebase",
"slug": "git-rebase",
"command": "git rebase -i HEAD~3",
"shell": "zsh",
"description": "Interactive rebase to squash commits",
"gif_url": "https://media.agentgif.com/xK9mQ2pL.gif",
"mp4_url": "https://media.agentgif.com/xK9mQ2pL.mp4",
"cast_url": "https://media.agentgif.com/xK9mQ2pL.cast",
"thumbnail_url": "https://media.agentgif.com/xK9mQ2pL_thumb.png",
"width": 1000,
"height": 580,
"frames": 142,
"duration_ms": 8500,
"file_size_bytes": 245760,
"visibility": "public",
"view_count": 1234,
"tags": ["git", "rebase", "version-control"],
"user": {"username": "agentgif"},
"tool": {"name": "git", "slug": "git"},
"theme": {"name": "Catppuccin Mocha", "slug": "catppuccin-mocha"},
"created_at": "2026-03-15T10:30:00Z",
"detail_url": "https://agentgif.com/@agentgif/git-rebase/",
"embed_codes": {
"markdown": "[](https://agentgif.com/xK9mQ2pL)",
"html": "<a href=\"https://agentgif.com/xK9mQ2pL\"><img src=\"...\" /></a>"
}
}
Seitenumbruch
Listen-Endpunkte geben paginierte Ergebnisse zurück. Verwenden Sie page und page_size-Abfrageparameter:
GET /api/v1/gifs/?page=2&page_size=20
Die Antwort enthält Paginierungs-Metadaten:
{
"count": 886,
"next": "https://agentgif.com/api/v1/gifs/?page=3",
"previous": "https://agentgif.com/api/v1/gifs/?page=1",
"results": [...]
}
Standard-Seitengröße ist 20. Maximum ist 100.
Ratenlimits
| Stufe | Limit | Geltungsbereich |
|---|---|---|
| Anonym | 60 Anfragen/Minute | Pro IP |
| Authentifiziert | 300 Anfragen/Minute | Pro API-Schlüssel |
| Hochladen | 10 Uploads/Stunde | Pro API-Schlüssel |
Rate-Limit-Header sind in jeder Antwort enthalten: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
GIFs
GIFs auflisten
GET /api/v1/gifs/
Gibt alle öffentlichen, nicht gelöschten GIFs geordnet nach Erstellungsdatum zurück (neueste zuerst).
Abfrageparameter: page, page_size, tag, shell, user.
curl -s https://agentgif.com/api/v1/gifs/?tag=docker&page_size=5 | jq '.count'
GIF-Details
GET /api/v1/gifs/{id}/
Vollständige Metadaten für ein einzelnes GIF einschließlich Einbettungscodes, Download-URLs und Dateiabmessungen.
curl -s https://agentgif.com/api/v1/gifs/xK9mQ2pL/ | jq '.title, .gif_url'
Cast-Daten
GET /api/v1/gifs/{id}/cast/
Returns the raw asciinema v2 cast file — a JSON header line followed by newline-delimited event tuples [timestamp, event_type, data]. This is the machine-readable layer that AI agents use to understand the terminal session.
Transkript
GET /api/v1/gifs/{id}/transcript/
Klartext-Transkript der Terminal-Sitzung — Befehle und ihre Ausgabe, von ANSI-Escape-Codes bereinigt. Nützlich für Volltextsuche und LLM-Kontext.
Empfohlene GIFs
GET /api/v1/featured/
Kuratierte Auswahl hochwertiger GIFs, handverlesen vom AgentGIF-Team.
Hochladen (Authentifizierung erforderlich)
POST /api/v1/gifs/upload/
Ein GIF mit Metadaten hochladen. Akzeptiert multipart/form-data.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
file | File | Ja | GIF-Datei (max. 10 MB) |
title | String | Ja | GIF-Titel |
command | String | Nein | Der vorgeführte Befehl |
description | String | Nein | Beschreibungstext |
tags | String | Nein | Kommagetrennte Tags |
shell | String | Nein | Verwendete Shell (bash, zsh, fish, usw.) |
cast | File | Nein | Asciinema v2-Cast-Datei |
visibility | String | Nein | public (Standard) oder unlisted |
curl -X POST https://agentgif.com/api/v1/gifs/upload/ \
-H "X-API-Key: YOUR_API_KEY" \
-F "[email protected]" \
-F "title=Docker Compose Up" \
-F "command=docker compose up -d" \
-F "tags=docker,compose,containers" \
-F "[email protected]"
GIF aktualisieren (Authentifizierung erforderlich)
PATCH /api/v1/gifs/{id}/edit/
Titel, Beschreibung, Tags oder Sichtbarkeit aktualisieren. Nur der GIF-Eigentümer kann bearbeiten.
GIF löschen (Authentifizierung erforderlich)
DELETE /api/v1/gifs/{id}/delete/
Löscht das GIF weich. Es kann innerhalb von 30 Tagen wiederhergestellt werden.
Suche
GET /api/v1/search/?q={query}
Volltextsuche über GIF-Titel, Beschreibungen, Befehle, Tags und Transkripte. Minimum 2 Zeichen.
| Parameter | Beschreibung |
|---|---|
q | Suchabfrage (erforderlich, min. 2 Zeichen) |
tag | Nach Tag-Slug filtern |
shell | Nach Shell filtern (bash, zsh, fish, usw.) |
user | Nach Benutzername filtern |
sort | Sortierreihenfolge: relevance (Standard), recent, views |
curl -s "https://agentgif.com/api/v1/search/?q=git+rebase&sort=views" | jq '.results[0].title'
Tags
Tags auflisten
GET /api/v1/tags/
Alle Tags mit GIF-Anzahl, nach Beliebtheit geordnet.
GIFs nach Tag
GET /api/v1/tags/{slug}/gifs/
Paginierte Liste von GIFs mit einem bestimmten Tag.
curl -s https://agentgif.com/api/v1/tags/docker/gifs/ | jq '.count'
Sammlungen
Sammlungen auflisten
GET /api/v1/collections/
Empfohlene Sammlungen
GET /api/v1/collections/featured/
Sammlungsdetails
GET /api/v1/collections/{slug}/
Gibt Sammlungsmetadaten und die geordnete GIF-Liste zurück.
Sammlung erstellen (Authentifizierung erforderlich)
POST /api/v1/collections/create/
Sammlungs-GIFs verwalten (Authentifizierung erforderlich)
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| POST | /api/v1/collections/{slug}/gifs/ | GIF zur Sammlung hinzufügen |
| POST | /api/v1/collections/{slug}/gifs/reorder/ | GIFs neu anordnen |
| DELETE | /api/v1/collections/{slug}/gifs/{gif_id}/ | GIF entfernen |
Benutzer
Benutzerprofil
GET /api/v1/users/{username}/
GIFs des Benutzers
GET /api/v1/users/{username}/gifs/
Authentifizierter Benutzer
GET /api/v1/users/me/
Gibt Ihr Profil zurück, einschließlich API-Schlüssel und Upload-Statistiken. Authentifizierung erforderlich.
API-Schlüssel zurücksetzen
POST /api/v1/users/me/api-key/reset/
Generiert einen neuen API-Schlüssel. Der alte Schlüssel wird sofort ungültig.
Themes
Themes auflisten
GET /api/v1/themes/
Alle 15 Terminal-Themes mit ihren Farbpaletten (Vordergrund, Hintergrund, ANSI-Farben).
Theme-Details
GET /api/v1/themes/{slug}/
Vollständige Farbpalette für ein bestimmtes Theme. Verwenden Sie diese, um Cast-Dateien mit korrekten Farben zu rendern.
Badge-Dienst
Terminal-themed package badges — a developer-friendly alternative to shields.io. See the Badge Playground for a visual builder.
| Endpunkt | Beschreibung |
|---|---|
/badge/pypi/{package}/version.svg | PyPI-Versions-Badge |
/badge/npm/{package}/version.svg | npm-Versions-Badge |
/badge/crates/{package}/version.svg | crates.io-Versions-Badge |
/badge/github/{owner}/{repo}/stars.svg | GitHub-Sterne-Badge |
Mit Abfrageparametern anpassen: ?theme=dracula, ?style=flat.
<img src="https://agentgif.com/badge/pypi/requests/version.svg?theme=catppuccin-mocha" />
KI-Tape-Generator
VHS-Tape-Skripte aus natürlichsprachlichen Beschreibungen mit KI generieren.
Generierungs-Job erstellen
POST /api/v1/gifs/generate/
Startet einen asynchronen Generierungs-Job. Gibt eine job_id zurück, nach der der Status abgefragt werden kann.
Generierungsstatus prüfen
GET /api/v1/gifs/generate/{job_id}/
Gibt den Generierungsstatus zurück (pending, processing, completed, failed) und das generierte Tape-Skript nach Abschluss.
Fehlercodes
| Status | Bedeutung |
|---|---|
| 200 | Erfolg |
| 201 | Erstellt (Upload, Sammlungserstellung) |
| 400 | Fehlerhafte Anfrage — fehlende oder ungültige Parameter |
| 401 | Nicht autorisiert — fehlender oder ungültiger API-Schlüssel |
| 403 | Verboten — diese Ressource gehört Ihnen nicht |
| 404 | Nicht gefunden — GIF-ID oder Slug existiert nicht |
| 429 | Ratenlimit überschritten — langsamer werden |
| 500 | Server error — report it |
Fehlerantworten enthalten ein detail-Feld mit einer lesbaren Nachricht:
{
"detail": "Authentication credentials were not provided."
}
OpenAPI-Spezifikation
Die vollständige OpenAPI 3.1-Spezifikation ist verfügbar unter:
https://agentgif.com/api/openapi.json
Import it into Swagger UI, Insomnia, or any OpenAPI-compatible tool.