> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vidgen.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Ikhtisar referensi API

> Lima endpoint Vidgen API, bentuk error standar, dan hal-hal yang konsisten di seluruh endpoint.

Vidgen API punya lima endpoint. Semuanya memakai origin yang sama, autentikasi yang sama, dan bentuk error yang sama.

| Method | Path | Auth | Balas |
| - | - | - | - |
| `POST` | [`/api/v1/generate`](https://docs.vidgen.id/api-reference/generate) | API key | `202` job baru, `200` replay idempoten |
| `GET` | [`/api/v1/jobs/{id}`](https://docs.vidgen.id/api-reference/get-job) | API key | `200` |
| `POST` | [`/api/v1/upload`](https://docs.vidgen.id/api-reference/upload) | API key | `200` objek aset |
| `GET` | [`/api/v1/models`](https://docs.vidgen.id/api-reference/models) | publik | `200` |
| `GET` | [`/api/v1/user/credits`](https://docs.vidgen.id/api-reference/credits) | API key | `200` |

## Konvensi

* **Base URL** `https://vidgen.id`, prefix path `/api/v1`. Lihat [Base URL](https://docs.vidgen.id/api-base-url.md).
* **Autentikasi** lewat `Authorization: Bearer vg_...` **atau** `x-api-key: vg_...`. Lihat [Autentikasi](https://docs.vidgen.id/authentication.md).
* **Content type** `application/json; charset=utf-8`, kecuali upload yang memakai `multipart/form-data`.
* **Waktu** memakai ISO-8601 UTC (`2026-11-04T09:12:44.000Z`). Kuota harian dihitung dalam WIB.
* **Body sukses** selalu memuat `"success": true` di samping datanya.
* **Tanpa CORS**: panggil dari server, bukan dari browser.

## Bentuk error

Setiap kegagalan memakai body ini:

```json theme={null} theme={null}
{ "error": "Pesan yang layak dibaca manusia." }
```

Yang membedakan adalah status HTTP. Beberapa error menambahkan field diagnostik:

| Status | Makna | Field tambahan |
| - | - | - |
| `400` | Permintaan tidak bisa dipahami atau ditolak validasi | `fields` (saat parameter bermasalah) |
| `401` | Key tidak ada, salah format, atau dicabut | — |
| `402` | Kredit tidak cukup | `requiredCredits`, `currentCredits` |
| `403` | Job bukan milik akun ini | — |
| `409` | Model ada tapi sedang tidak aktif | — |
| `413` | Berkas melebihi 100 MB | — |
| `429` | Batas konkurensi, kuota harian, antrean penuh, atau batas unggah | `maxConcurrent`, `activeJobs`, `dailyVideosUsed`, `resetsAt`; header `Retry-After` di upload |
| `500` | Kegagalan di sisi Vidgen saat memuat data | — |
| `503` | Pemeliharaan, layanan sesi/kredit tidak bisa diakses | — |

> [!NOTE]
>
> Vidgen tidak mengeluarkan kode error numerik sendiri. Jangan mem-parse string untuk logika — pakai status HTTP, lalu baca field diagnostik bila ada.

## Pesan error tidak pernah berisi detail internal

Jalur keluar ke pengguna sudah disaring: nama penyedia, URL internal, dan respons mentah dari sistem hulu tidak akan muncul di `error` maupun `errorMessage`. Yang kamu dapat adalah kalimat yang bisa langsung diteruskan ke pengguna akhir. Kalau ada yang janggal, laporkan `job.id` beserta statusnya.

## Spec OpenAPI

Terdapat spec OpenAPI 3.1 di repositori dokumentasi (`/openapi.json`) sebagai artefak untuk menghasilkan klien. Spec ini bukan sumber kebenaran bila bertentangan dengan halaman-halaman di tab ini; kontrak hidup ada di server.

## Mulai dari mana

> [card] [Generate video atau gambar](https://docs.vidgen.id/api-reference/generate.md)
>
> Endpoint utama: prompt, model, parameter, referensi.

> [card] [Ambil hasil](https://docs.vidgen.id/api-reference/get-job.md)
>
> Polling status dan unduh media.

> [card] [Unggah referensi](https://docs.vidgen.id/api-reference/upload.md)
>
> Gambar, video, atau audio sebagai bahan.

> [card] [Baca saldo](https://docs.vidgen.id/api-reference/credits.md)
>
> Kredit, masa Unlimited, dan sisa kuota hari ini.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.