Autentizace
Každé volání, které spouští model nebo načítá vaše požadavky, potřebuje API klíč. Katalog (GET /models,
GET /categories), POST /quote a dokument OpenAPI jsou veřejné.
API klíče
Vytvářejte a rušte klíče na stránce https://doitong.com/developers/dashboard#keys. Klíč vypadá
jako doitong_ následovaný 64 hexadecimálními znaky a zobrazí se pouze jednou při vytvoření. Odešlete ho v hlavičce
Authorization:
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"
X-API-Key: <key> funguje také.
Požadavek bez klíče obdrží 401 s kódem missing_api_key; neznámý, zrušený nebo prošlý klíč obdrží také 401.
Rozsahy oprávnění
Každý klíč obsahuje rozsahy oprávnění. API modelů kontroluje tyto rozsahy:
| Akce | Potřebný rozsah |
|---|---|
| Spuštění modelu, zrušení požadavku, odstranění souborů požadavku, změna nastavení úložiště | models:run (fungují také klíče se staršími images:create nebo videos:create) |
| Vytvoření URL pro nahrání | models:run nebo media:upload |
| Čtení požadavků a účtu | models:read (klíč, který může spouštět modely, může také číst) |
Nové klíče ve výchozím nastavení získají models:read a models:run. Volání bez správného rozsahu obdrží 403 s kódem
insufficient_scope.
Rozpočty API kreditů
Klíč může mít vlastní rozpočet v API kreditech (1 000 kreditů API = 1 $), který nastaví vlastník účtu: celkový rozpočet, denní
rozpočet (za posledních 24 hodin) nebo obojí. Před zaúčtováním spuštění se cena porovná s částkou, kterou klíč již
prostřednictvím tohoto API utratil (po odečtení refundací). Spuštění, které by rozpočet překročilo, je odmítnuto s 402 budget_exceeded
a nic se nezaúčtuje.
Klíč bez rozpočtu může
utratit až do výše zůstatku API. Samostatně platí, že spuštění, které zůstatek API nepokryje, obdrží 402 insufficient_credits
s top_up_url.
GET https://api.doitong.com/v1/account zobrazuje zůstatek API a zbývající rozpočet klíče (obojí v API kreditech):
{
"object": "account",
"credits": 125000,
"balance": { "credits": 125000, "usd": "125.00" },
"top_up_url": "https://doitong.com/developers/dashboard#balance",
"key": {
"name": "Production server",
"prefix": "doitong_3fa9c1e...",
"scopes": ["models:read", "models:run"],
"budget_remaining": 50000,
"rate_limit": 3600,
"rate_limit_remaining": 3571
},
"webhook_signing_secret": "whsec_..."
}
budget_remaining je null, pokud klíč nemá vlastní rozpočet.
Limity rychlosti
Každý klíč může provést 3600 požadavků za hodinu, pokud jeho limit nebyl nastaven jinak. Každá ověřená odpověď obsahuje aktuální stav:
| Hlavička | Význam |
|---|---|
X-RateLimit-Limit |
Počet požadavků povolených v aktuálním okně |
X-RateLimit-Remaining |
Počet požadavků zbývajících v aktuálním okně |
X-RateLimit-Reset |
Unixový čas resetování okna |
Po překročení limitu obdržíte 429 s hlavičkou Retry-After (sekundy). Dlouhé dotazování s ?wait= se počítá jako jeden požadavek
na volání, takže čekání je levnější než rychlé dotazování.
Na účet se vztahuje také limit 10 probíhajících požadavků (ve stavu queued nebo running). Spuštění dalšího vrátí
429 too_many_inflight; spusťte ho znovu po dokončení jednoho z nich.