Lompat ke konten
Panduan API

Error

Lihat sebagai Markdown Diperbarui

Setiap endpoint gagal dengan cara yang sama: status HTTP dan satu envelope JSON.

JSON
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 5, 10.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 5, 10." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}
Field Arti
type Kelas umum error. Tentukan tindakan berdasarkan ini.
code Alasan spesifik, stabil, dan dapat dibaca mesin. Setiap kode memiliki bagian di bawah; doc_url mengarah ke sana.
message Penjelasan yang dapat dibaca manusia, aman untuk dicatat atau ditampilkan kepada pengembang.
param Parameter input atau header yang bermasalah, jika ada.
details Untuk error input, setiap masalah yang ditemukan: [{ "param", "message" }].
request_id Permintaan yang terkait, jika ada.

Tidak ada biaya untuk panggilan yang mengembalikan error. Permintaan yang gagal setelah diterima tetap berstatus failed, membawa error: { "type", "code", "message" } pada objek permintaan, dan otomatis menerima pengembalian dana.

Jenis

Jenis Status HTTP Tindakan
invalid_request 400, 413 atau 422 Perbaiki permintaan. Mengulangi panggilan yang sama akan gagal lagi.
authentication_error 401 Kirim kunci yang valid dalam Authorization: Bearer <key>.
permission_error 403 Gunakan kunci dengan scope yang diperlukan.
not_found 404 Periksa id model atau id permintaan.
insufficient_credits 402 Isi ulang saldo API (top_up_url dalam error).
budget_exceeded 402 Anggaran kunci tersebut telah habis. Final: minta pemilik kunci menaikkannya.
conflict 409 Resource tidak berada dalam status yang memungkinkan panggilan ini.
rate_limited 429 Tunggu Retry-After detik, lalu coba lagi.
upstream_error 502 Backend model gagal. Aman untuk mencoba lagi dengan Idempotency-Key yang sama: proses akan dijalankan ulang; Anda tidak dikenai biaya.
service_unavailable 503 API dijeda atau dependensi sedang tidak tersedia. Coba lagi nanti.
internal_error 500 Bug di sisi kami. Coba lagi; jika berlanjut, hubungi dukungan dengan waktu kejadian dan request_id.

Kode

invalid_request

Permintaan umum yang formatnya salah (400).

invalid_json

Body bukan JSON yang valid (400).

invalid_body

Body adalah JSON valid tetapi bukan objek; input model harus berupa objek JSON (400).

body_too_large

Body lebih besar dari 16 MB (413). Unggah file besar dan teruskan URL-nya (lihat File).

invalid_parameter

Parameter kueri memiliki nilai yang salah, misalnya limit di luar 1 hingga 100, wait bukan angka, status atau category yang tidak dikenal, atau storage selain permanent / temporary (400). param menyebutkannya.

invalid_category

GET /openapi.json?category= menyebutkan kategori yang tidak ada (400). GET https://api.doitong.com/v1/categories menampilkannya.

invalid_cursor

cursor pada panggilan daftar bukan milik daftar ini (400). Mulai lagi tanpa cursor.

invalid_idempotency_key

Header Idempotency-Key kosong atau lebih panjang dari 255 karakter (400).

invalid_arguments

Panggilan tool MCP memiliki argumen yang hilang atau formatnya salah (khusus MCP). param menyebutkan argumen tersebut.

invalid_input

Input model tidak lolos validasi (422): parameter tidak dikenal (pesan menyarankan nama valid yang paling dekat), parameter wajib yang hilang, tipe yang salah, nilai di luar daftar atau rentang yang diizinkan, atau nama kanonis dan nama native diberikan dengan nilai berbeda. param adalah parameter bermasalah pertama dan details mencantumkan semuanya. Tidak ada biaya.

unsupported_file

File memiliki tipe yang tidak kami terima (422), misalnya unggahan dengan ekstensi yang tidak didukung, atau content_type yang tidak cocok dengan ekstensi.

invalid_webhook_url

webhook_url bukan URL publik https:// (422). Alamat privat, lokal, dan http:// biasa ditolak.

missing_api_key

Endpoint memerlukan kunci API tetapi tidak ada yang dikirim (401).

invalid_api_key

Kunci tidak dikenal, dicabut, atau kedaluwarsa (401).

insufficient_scope

Kunci tidak memiliki scope yang diperlukan panggilan ini (403), misalnya models:run untuk menjalankan model, atau models:read untuk membaca permintaan dan saldo. Lihat Autentikasi.

account_disabled

Akun ditutup atau ditangguhkan (403). Kuncinya tidak lagi berfungsi.

not_found

Path tidak ada (404).

model_not_found

Tidak ada model publik dengan id ini (404). Tampilkan model dengan GET https://api.doitong.com/v1/models.

request_not_found

Tidak ada permintaan dengan id ini di akun Anda (404). Permintaan dari akun lain tidak pernah terlihat.

insufficient_credits

Saldo API akun (kredit API, 1.000 kredit API = $1 — bukan kredit aplikasi Doitong) tidak mencukupi untuk harga panggilan ini (402). Respons dikirim sebelum biaya apa pun dikenakan. Error membawa top_up_url; tambahkan dana di https://doitong.com/developers/dashboard#balance lalu coba lagi.

JSON
{ "error": { "type": "insufficient_credits", "code": "insufficient_credits",
             "message": "This request costs 560 API credits ($0.56); the API balance is 120 API credits ($0.12). Top up at https://doitong.com/developers/dashboard#balance",
             "top_up_url": "https://doitong.com/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }

budget_exceeded

Panggilan ini akan melampaui anggaran kunci API dalam kredit API (402). Anggaran ditetapkan oleh pemilik kunci; mencoba lagi tidak membantu sampai anggaran dinaikkan.

conflict

Panggilan bertentangan dengan status resource saat ini (409).

idempotency_mismatch

Idempotency-Key sudah digunakan dengan body yang berbeda (409). Gunakan kunci baru untuk operasi baru.

idempotency_in_progress

Permintaan dengan Idempotency-Key yang sama sedang dibuat (409). Coba lagi sebentar untuk mendapatkannya.

request_active

Permintaan masih queued atau running, sehingga belum memiliki file untuk dihapus (409). Hapus file setelah permintaan selesai.

not_cancelable

Permintaan sudah succeeded atau failed dan tidak dapat dibatalkan (409).

rate_limited

Kunci membuat terlalu banyak permintaan dalam jendela saat ini (429). Lihat header X-RateLimit-* dan Retry-After.

too_many_inflight

Akun sudah memiliki 10 permintaan queued atau running (429). Mulai permintaan berikutnya setelah salah satunya selesai.

upstream_error

Backend model menolak atau gagal memproses permintaan (502 saat menjalankan, atau failed dengan kode ini pada permintaan). Kredit API dikembalikan. Jika backend menolak input itu sendiri, panggilan mengembalikan 422 invalid_input dengan pesannya.

upstream_lost

Backend model tidak lagi mengetahui permintaan tersebut, sehingga hasil tidak akan pernah tiba. Permintaan berakhir sebagai failed dengan kode ini (tipe upstream_error) dan dana dikembalikan. Jalankan lagi.

timeout

Permintaan berjalan lebih lama dari batasnya (15 menit untuk gambar, 60 untuk video, 30 lainnya) dan dihentikan. Permintaan berakhir sebagai failed dengan kode ini dan dana dikembalikan.

service_unavailable

API sedang dijeda sementara, atau dependensi seperti unggahan file tidak tersedia (503). Coba lagi nanti.

internal_error

Terjadi masalah di sisi kami (500). Coba lagi; jika berlanjut, hubungi dukungan.

charge_failed

Biaya tidak dapat dibebankan ke akun karena masalah internal (500). Permintaan ditandai failed; tidak ada dana yang diambil. Coba lagi.

pricing_unavailable

Harga model belum dikonfigurasi, sehingga saat ini tidak dapat dihitung atau dijalankan (500).