Referensi API
AgentGIF menyediakan REST API gratis dengan 30+ endpoint. Endpoint baca tidak memerlukan autentikasi. Endpoint tulis (unggah, edit, hapus) memerlukan API key.
URL Dasar
https://agentgif.com/api/v1/
Semua endpoint relatif terhadap URL dasar ini. HTTPS diperlukan — permintaan HTTP akan dialihkan.
Autentikasi
Endpoint baca (GET) terbuka dan gratis — tidak perlu autentikasi. Endpoint tulis (POST, PATCH, DELETE) memerlukan API key yang diteruskan melalui header X-API-Key:
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.
Format Respons
Semua respons berformat application/json. Tanggal menggunakan format ISO 8601. ID GIF adalah string nanoid 8 karakter (mis., xK9mQ2pL).
Objek GIF tipikal terlihat seperti:
{
"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>"
}
}
Paginasi
Endpoint daftar mengembalikan hasil dengan paginasi. Gunakan parameter query page dan page_size:
GET /api/v1/gifs/?page=2&page_size=20
Respons mencakup metadata paginasi:
{
"count": 886,
"next": "https://agentgif.com/api/v1/gifs/?page=3",
"previous": "https://agentgif.com/api/v1/gifs/?page=1",
"results": [...]
}
Ukuran halaman default adalah 20. Maksimum adalah 100.
Batas Rate
| Tingkatan | Batas | Cakupan |
|---|---|---|
| Anonim | 60 permintaan/menit | Per IP |
| Terautentikasi | 300 permintaan/menit | Per API key |
| Unggah | 10 unggahan/jam | Per API key |
Header batas rate disertakan dalam setiap respons: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
GIF
Daftar GIF
GET /api/v1/gifs/
Mengembalikan semua GIF publik yang belum dihapus, diurutkan berdasarkan tanggal pembuatan (terbaru lebih dulu).
Parameter query: page, page_size, tag, shell, user.
curl -s https://agentgif.com/api/v1/gifs/?tag=docker&page_size=5 | jq '.count'
Detail GIF
GET /api/v1/gifs/{id}/
Metadata lengkap untuk satu GIF termasuk kode embed, URL unduhan, dan dimensi file.
curl -s https://agentgif.com/api/v1/gifs/xK9mQ2pL/ | jq '.title, .gif_url'
Data Cast
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.
Transkrip
GET /api/v1/gifs/{id}/transcript/
Transkrip teks biasa dari sesi terminal — perintah dan outputnya, dengan kode escape ANSI dihapus. Berguna untuk pencarian teks lengkap dan konteks LLM.
GIF Unggulan
GET /api/v1/featured/
Pilihan GIF berkualitas tinggi yang dikurasi secara manual oleh tim AgentGIF.
Unggah (Memerlukan Autentikasi)
POST /api/v1/gifs/upload/
Unggah GIF dengan metadata. Menerima multipart/form-data.
| Bidang | Tipe | Wajib | Deskripsi |
|---|---|---|---|
file | File | Ya | File GIF (maks 10 MB) |
title | String | Ya | Judul GIF |
command | String | Tidak | Perintah yang didemonstrasikan |
description | String | Tidak | Teks deskripsi |
tags | String | Tidak | Tag yang dipisahkan koma |
shell | String | Tidak | Shell yang digunakan (bash, zsh, fish, dll.) |
cast | File | Tidak | File cast asciinema v2 |
visibility | String | Tidak | public (default) atau 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]"
Perbarui GIF (Memerlukan Autentikasi)
PATCH /api/v1/gifs/{id}/edit/
Perbarui judul, deskripsi, tag, atau visibilitas. Hanya pemilik GIF yang dapat mengedit.
Hapus GIF (Memerlukan Autentikasi)
DELETE /api/v1/gifs/{id}/delete/
Menghapus GIF secara lunak. Dapat dipulihkan dalam 30 hari.
Cari
GET /api/v1/search/?q={query}
Pencarian teks lengkap di judul GIF, deskripsi, perintah, tag, dan transkrip. Minimal 2 karakter.
| Parameter | Deskripsi |
|---|---|
q | Query pencarian (wajib, min 2 karakter) |
tag | Filter berdasarkan slug tag |
shell | Filter berdasarkan shell (bash, zsh, fish, dll.) |
user | Filter berdasarkan nama pengguna |
sort | Urutan sortir: relevance (default), recent, views |
curl -s "https://agentgif.com/api/v1/search/?q=git+rebase&sort=views" | jq '.results[0].title'
Tag
Daftar Tag
GET /api/v1/tags/
Semua tag dengan jumlah GIF, diurutkan berdasarkan popularitas.
GIF berdasarkan Tag
GET /api/v1/tags/{slug}/gifs/
Daftar GIF dengan paginasi untuk tag tertentu.
curl -s https://agentgif.com/api/v1/tags/docker/gifs/ | jq '.count'
Koleksi
Daftar Koleksi
GET /api/v1/collections/
Koleksi Unggulan
GET /api/v1/collections/featured/
Detail Koleksi
GET /api/v1/collections/{slug}/
Mengembalikan metadata koleksi dan daftar GIF yang diurutkan.
Buat Koleksi (Memerlukan Autentikasi)
POST /api/v1/collections/create/
Kelola GIF Koleksi (Memerlukan Autentikasi)
| Metode | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/v1/collections/{slug}/gifs/ | Tambah GIF ke koleksi |
| POST | /api/v1/collections/{slug}/gifs/reorder/ | Urutkan Ulang GIF |
| DELETE | /api/v1/collections/{slug}/gifs/{gif_id}/ | Hapus GIF |
Pengguna
Profil Pengguna
GET /api/v1/users/{username}/
GIF Pengguna
GET /api/v1/users/{username}/gifs/
Pengguna Terautentikasi
GET /api/v1/users/me/
Mengembalikan profil Anda, termasuk API key dan statistik unggahan. Memerlukan autentikasi.
Atur Ulang API Key
POST /api/v1/users/me/api-key/reset/
Menghasilkan API key baru. Kunci lama segera dinonaktifkan.
Tema
Daftar Tema
GET /api/v1/themes/
Semua 15 tema terminal dengan palet warnanya (foreground, background, warna ANSI).
Detail Tema
GET /api/v1/themes/{slug}/
Palet warna lengkap untuk tema tertentu. Gunakan ini untuk merender file cast dengan warna yang benar.
Layanan Badge
Terminal-themed package badges — a developer-friendly alternative to shields.io. See the Badge Playground for a visual builder.
| Endpoint | Deskripsi |
|---|---|
/badge/pypi/{package}/version.svg | Badge versi PyPI |
/badge/npm/{package}/version.svg | Badge versi npm |
/badge/crates/{package}/version.svg | Badge versi crates.io |
/badge/github/{owner}/{repo}/stars.svg | Badge bintang GitHub |
Kustomisasi dengan parameter query: ?theme=dracula, ?style=flat.
<img src="https://agentgif.com/badge/pypi/requests/version.svg?theme=catppuccin-mocha" />
Generator Tape AI
Buat skrip tape VHS dari deskripsi bahasa alami menggunakan AI.
Buat Job Pembuatan
POST /api/v1/gifs/generate/
Memulai job pembuatan async. Mengembalikan job_id untuk memeriksa status.
Periksa Status Pembuatan
GET /api/v1/gifs/generate/{job_id}/
Mengembalikan status pembuatan (pending, processing, completed, failed) dan skrip tape yang dihasilkan saat selesai.
Kode Error
| Status | Arti |
|---|---|
| 200 | Berhasil |
| 201 | Dibuat (unggah, buat koleksi) |
| 400 | Permintaan buruk — parameter tidak ada atau tidak valid |
| 401 | Tidak terotorisasi — API key tidak ada atau tidak valid |
| 403 | Dilarang — Anda bukan pemilik sumber daya ini |
| 404 | Tidak ditemukan — ID GIF atau slug tidak ada |
| 429 | Batas rate terlampaui — perlambat |
| 500 | Server error — report it |
Respons error menyertakan bidang detail dengan pesan yang dapat dibaca manusia:
{
"detail": "Authentication credentials were not provided."
}
Spesifikasi OpenAPI
Spesifikasi OpenAPI 3.1 lengkap tersedia di:
https://agentgif.com/api/openapi.json
Import it into Swagger UI, Insomnia, or any OpenAPI-compatible tool.