Chyby
Každý endpoint selže stejným způsobem: HTTP stav a jeden obal 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"
}
}
| Pole | Význam |
|---|---|
type |
Obecná třída chyby. Podle ní rozhodněte, co dělat. |
code |
Přesný důvod, stabilní a čitelný pro stroje. Každý kód má níže vlastní sekci; doc_url na ni odkazuje. |
message |
Vysvětlení čitelné pro člověka, bezpečné pro uložení do logu nebo zobrazení vývojáři. |
param |
Chybný vstupní parametr nebo hlavička, pokud existuje. |
details |
U vstupních chyb všechny nalezené problémy: [{ "param", "message" }]. |
request_id |
Požadavek, kterého se chyba týká, pokud existuje. |
Za volání, které vrátí chybu, se nic neúčtuje. Požadavek, který selže poté, co byl přijat, zůstane ve stavu
failed, v objektu požadavku obsahuje error: { "type", "code", "message" } a automaticky se refunduje.
Typy
| Typ | HTTP stav | Co dělat |
|---|---|---|
invalid_request |
400, 413 nebo 422 | Opravte požadavek. Opakování stejného volání znovu selže. |
authentication_error |
401 | Pošlete platný klíč v Authorization: Bearer <key>. |
permission_error |
403 | Použijte klíč s požadovaným rozsahem oprávnění. |
not_found |
404 | Zkontrolujte id modelu nebo požadavku. |
insufficient_credits |
402 | Dobijte zůstatek API (top_up_url v chybě). |
budget_exceeded |
402 | Vlastní rozpočet klíče je vyčerpán. Konečné řešení: požádejte vlastníka klíče o jeho navýšení. |
conflict |
409 | Zdroj není ve stavu, který toto volání umožňuje. |
rate_limited |
429 | Počkejte Retry-After sekund a poté požadavek zopakujte. |
upstream_error |
502 | Backend modelu selhal. Opakování se stejným Idempotency-Key je bezpečné: požadavek se spustí znovu a nic vám nebylo účtováno. |
service_unavailable |
503 | API je pozastavené nebo je nedostupná závislá služba. Zkuste to později. |
internal_error |
500 | Chyba na naší straně. Zkuste to znovu; pokud přetrvává, kontaktujte podporu s časem a request_id. |
Kódy
invalid_request
Obecně nesprávně vytvořený požadavek (400).
invalid_json
Tělo není platný JSON (400).
invalid_body
Tělo je platný JSON, ale není objektem; vstup modelu musí být objekt JSON (400).
body_too_large
Tělo je větší než 16 MB (413). Nahrajte velké soubory a místo nich předejte jejich URL (viz Soubory).
invalid_parameter
Parametr dotazu má nesprávnou hodnotu, například limit mimo rozsah 1 až 100, wait není číslo, neznámý
status nebo category, případně storage jiný než permanent / temporary (400). param uvádí jeho název.
invalid_category
GET /openapi.json?category= uvádí kategorii, která neexistuje (400). GET https://api.doitong.com/v1/categories je vypisuje.
invalid_cursor
cursor volání seznamu nepatří do tohoto seznamu (400). Začněte znovu bez kurzoru.
invalid_idempotency_key
Hlavička Idempotency-Key je prázdná nebo delší než 255 znaků (400).
invalid_arguments
Volání nástroje MCP má chybějící nebo nesprávně vytvořený argument (pouze MCP). param uvádí název argumentu.
invalid_input
Vstup modelu neprojde validací (422): neznámý parametr (zpráva navrhne nejbližší platný název), chybějící povinný parametr,
nesprávný typ, hodnota mimo povolený seznam nebo rozsah, případně současně zadaný kanonický i nativní název s různými hodnotami. param je první chybný parametr a details uvádí všechny. Nic se neúčtuje.
unsupported_file
Soubor má typ, který nepřijímáme (422), například nahraný soubor s nepodporovanou příponou nebo content_type,
který neodpovídá příponě.
invalid_webhook_url
webhook_url není veřejná URL adresa https:// (422). Soukromé, lokální a běžné adresy http:// se odmítají.
missing_api_key
Endpoint vyžaduje API klíč, ale žádný nebyl odeslán (401).
invalid_api_key
Klíč je neznámý, odvolaný nebo prošlý (401).
insufficient_scope
Klíči chybí rozsah oprávnění potřebný pro toto volání (403), například models:run pro spuštění nebo models:read pro čtení
požadavků a zůstatku. Viz Autentizace.
account_disabled
Účet je uzavřený nebo pozastavený (403). Jeho klíče již nefungují.
not_found
Cesta neexistuje (404).
model_not_found
Žádný veřejný model nemá toto id (404). Modely vypíšete pomocí GET https://api.doitong.com/v1/models.
request_not_found
Ve vašem účtu neexistuje požadavek s tímto id (404). Požadavky jiných účtů nejsou nikdy viditelné.
insufficient_credits
Zůstatek API účtu (API kredity, 1 000 kreditů API = 1 $ — nikoli kredity aplikací Doitong) nepokrývá cenu tohoto volání (402). Odpověď se odešle dříve, než se cokoli naúčtuje. Chyba obsahuje top_up_url; přidejte peníze na https://doitong.com/developers/dashboard#balance a požadavek zopakujte.
{ "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
Volání by překročilo vlastní rozpočet API klíče v API kreditech (402). Rozpočet nastavuje vlastník klíče; opakování nepomůže, dokud ho nezvýší.
conflict
Volání je v konfliktu s aktuálním stavem zdroje (409).
idempotency_mismatch
Idempotency-Key již byl použit s jiným tělem (409). Pro novou operaci použijte nový klíč.
idempotency_in_progress
Právě se vytváří požadavek se stejným Idempotency-Key (409). Za chvíli požadavek zopakujte a získejte ho.
request_active
Požadavek je stále queued nebo running, takže zatím nemá žádné soubory ke smazání (409). Smažte je, až bude dokončen.
not_cancelable
Požadavek již skončil stavem succeeded nebo failed a nelze ho zrušit (409).
rate_limited
Klíč v aktuálním okně vytvořil příliš mnoho požadavků (429). Viz hlavičky X-RateLimit-* a Retry-After.
too_many_inflight
Účet již má 10 požadavků ve stavu queued nebo running (429). Další spusťte, až jeden z nich skončí.
upstream_error
Backend modelu požadavek odmítl nebo při jeho zpracování selhal (502 při spuštění nebo failed s tímto kódem na požadavku). API kredity se refundují. Pokud backend odmítl samotný vstup, volání místo toho vrátí 422 invalid_input s příslušnou zprávou.
upstream_lost
Backend modelu již požadavek nezná, takže výsledek nikdy nedorazí. Skončí stavem failed s tímto kódem (typ upstream_error) a refunduje se. Spusťte ho znovu.
timeout
Požadavek běžel déle, než je jeho limit (15 minut pro obrázky, 60 pro video, jinak 30), a byl zastaven. Skončí stavem failed s tímto kódem a refunduje se.
service_unavailable
API je dočasně pozastavené nebo je nedostupná závislá služba, například nahrávání souborů (503). Zkuste to později.
internal_error
Na naší straně došlo k chybě (500). Zkuste to znovu; pokud přetrvává, kontaktujte podporu.
charge_failed
Účet nelze zatížit kvůli internímu problému (500). Požadavek je označen jako failed; nic nebylo odečteno. Zkuste to znovu.
pricing_unavailable
Cena modelu není nakonfigurována, takže ji nyní nelze zobrazit ani model spustit (500).