Gå til innhold
API-veiledning

Autentisering

Vis som Markdown Oppdatert

Ethvert kall som kjører en modell eller leser forespørslene dine, trenger en API-nøkkel. Katalogen (GET /models, GET /categories), POST /quote og OpenAPI-dokumentet er offentlige.

API-nøkler

Opprett og tilbakekall nøkler på https://doitong.com/developers/dashboard#keys. En nøkkel ser ut som doitong_ etterfulgt av 64 heksadesimale tegn, og vises bare én gang når du oppretter den. Send den i Authorization-headeren:

terminal
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"

X-API-Key: <key> fungerer også.

En forespørsel uten nøkkel får 401 med koden missing_api_key; en ukjent, tilbakekalt eller utløpt nøkkel får også 401.

Omfang

Hver nøkkel har scopes. Modell-API-et kontrollerer disse:

Handling Nødvendig scope
Kjør en modell, avbryt en forespørsel, slett en forespørsels filer, endre lagringsinnstillingen models:run (nøkler med de eldre images:create eller videos:create fungerer også)
Opprett en opplastings-URL models:run eller media:upload
Les forespørsler, konto models:read (en nøkkel som kan kjøre modeller, kan også lese)

Nye nøkler får models:read og models:run som standard. Et kall uten riktig scope får 403 med koden insufficient_scope.

Kredittbudsjetter

En nøkkel kan ha sitt eget budsjett i API-kreditter (1 000 API-kreditter = 1 $), angitt av kontoeieren: et totalbudsjett, et daglig budsjett (siste 24 timer), eller begge deler. Før en kjøring belastes, kontrolleres kostnaden mot det nøkkelen allerede har brukt gjennom dette API-et (etter tilbakebetalinger). En kjøring som ville overskride grensen, avvises med 402 budget_exceeded, og ingenting belastes.

En nøkkel uten budsjett kan bruke opptil API-saldoen. Separat blir en kjøring som API-saldoen ikke kan dekke, avvist med 402 insufficient_credits med en top_up_url.

GET https://api.doitong.com/v1/account viser API-saldoen og nøkkelens gjenværende budsjett (begge i API-kreditter):

200 OK · account
{
  "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 er null når nøkkelen ikke har eget budsjett.

Fartsgrenser

Hver nøkkel kan gjøre 3600 forespørsler per time, med mindre grensen er satt annerledes. Alle autentiserte svar inneholder gjeldende status:

Header Betydning
X-RateLimit-Limit Antall forespørsler som er tillatt i det gjeldende vinduet
X-RateLimit-Remaining Gjenstående forespørsler i det gjeldende vinduet
X-RateLimit-Reset Unix-tidspunktet når vinduet tilbakestilles

Når grensen overskrides, får du 429 med en Retry-After-header (sekunder). Lang polling med ?wait= teller som én forespørsel per kall, så det er billigere å vente enn å polle raskt.

Det finnes også en grense på 10 pågående forespørsler (queued eller running) per konto. Hvis du starter én til, returneres 429 too_many_inflight; start den på nytt etter at én er ferdig.