# Meattáhusat

Juohke loahppačuokkis filte seamma láhkai: HTTP-status ja okta JSON-ovdanbuktus.

```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 | Mearka |
|---|---|
| `type` | Meattáhusa viidát luohkká. Vállje dán vuođul maid dahkat. |
| `code` | Dárkilis sivva, stabiila ja masinlohkamis. Juohke koda čilgejuvvo vuolábealde; `doc_url` čájeha dasa. |
| `message` | Olbmo lohkat sáhtti čilgehus, masa lea oadjebas logget dahje čájehit ovdánahttái. |
| `param` | Sisa-addi paramehter dahje vuođđočuokkis mii lea sivvan, jos gávdno. |
| `details` | Sisa-addi meattáhusaid várás juohke gávnnahuvvon váttisvuohta: `[{ "param", "message" }]`. |
| `request_id` | Jearaldat masa dát guoská, jos gávdno. |

Ii váldo mávssu jearaldagas mii boahtá meattáhusain. Jearaldat mii filte *maŋŋá* go lea dohkkehuvvon, báhcá dásis
`failed`, sisttisdoallá `error: { "type", "code", "message" }` jearaldatobjektii, ja máhcaheapmi dahkko automáhtalaččat.

## Lájit

| Lájii | HTTP-status | Maid dahkat |
|---|---|---|
| `invalid_request` | 400, 413 dahje 422 | Divot jearaldaga. Seamma jearaldaga geahččaleapmi filte fas. |
| `authentication_error` | 401 | Sádde gustojeaddji API-čoavdda `Authorization: Bearer <key>` siste. |
| `permission_error` | 403 | Geavat čoavdda mas lea dárbbašlaš scope. |
| `not_found` | 404 | Dárkkis modealla-id dahje jearaldat-id. |
| `insufficient_credits` | 402 | Dahkat API-saldo lasáhusa (`top_up_url` meattáhusas). |
| `budget_exceeded` | 402 | Čoavdda iežas bušeahtta lea geavahuvvon loahpa. Loahpalaš: bivdde čoavdda eaiggáda loktet dan. |
| `conflict` | 409 | Resursa ii leat dásis mii diktá dán jearaldaga. |
| `rate_limited` | 429 | Vuordde `Retry-After` sekunda, de geahččal fas. |
| `upstream_error` | 502 | Modealla-backend filte. Sáhttá ođđasit geahččalit seamma `Idempotency-Key`: dat vuolgá fas; dus ii váldojuvvon mávssu. |
| `service_unavailable` | 503 | API lea botkejuvvon dahje okta čatnas lea eret. Geahččal maŋŋá. |
| `internal_error` | 500 | Min meattáhus. Geahččal fas; jos dat bistá, váldde oktavuođa doarjagiin áiggi ja `request_id`-in. |

## Kodit

### `invalid_request`

Obbalaš boasttu hábmejuvvon jearaldat (400).

### `invalid_json`

Rumaš ii leat gustojeaddji JSON (400).

### `invalid_body`

Rumaš lea gustojeaddji JSON, muhto ii leat objeakta; modealla sisa-addi ferte leat JSON-objeakta (400).

### `body_too_large`

Rumaš lea stuorát go 16 MB (413). Laddje stuora fiillaid ja geavat dan URL:a dan sadjái (geahča [Fiillat](https://doitong.com/developers/docs/files)).

### `invalid_parameter`

Jearaldat-paramehteris lea boasttu árvu, ovdamearkka dihte `limit` olggobealde 1 rájes 100 rádjái, `wait` ii leat nummir, dovdameahttun
`status` dahje `category`, dahje `storage` ii leat `permanent` / `temporary` (400). `param` namuha dan.

### `invalid_category`

`GET /openapi.json?category=` namuha kategoriija mii ii gávdno (400). `GET https://api.doitong.ru/v1/categories` čájeha daid.

### `invalid_cursor`

Listajearaldaga `cursor` ii gula dán listii (400). Álgge ođđasit ilman cursor:a.

### `invalid_idempotency_key`

`Idempotency-Key` vuođđočuokkis lea guorus dahje guhkit go 255 teavstamearka (400).

### `invalid_arguments`

MCP-veahkkeneavvu jearaldagas váilu dahje lea boasttu hápmái (dušše MCP). `param` namuha árgumeantta.

### `invalid_input`

Modealla sisa-addi ii gustojuvvo validerenis (422): dovdameahttun paramehter (dieđáhus evttoha lagamus gustojeaddji nama),
váilu dárbbašlaš paramehter, boasttu tiipus, árvu mii lea lobálaš listtu dahje ráji olggobealde, dahje goappaš kanonalaš ja
native namma leat addojuvvon iešguđet árvvuiguin. `param` lea vuosttaš paramehter mii dagaha meattáhusa ja `details` čájeha buot daid.
Mávssu ii váldo.

### `unsupported_file`

Fiillas lea tiipa maid mii eat dohkke (422), ovdamearkka dihte upload mas lea dorrokeahtes fiila-viidodat, dahje `content_type`
mii ii heive viidodahkii.

### `invalid_webhook_url`

`webhook_url` ii leat almmolaš `https://` URL (422). Priváhta, báikkálaš ja dábálaš `http://` čujuhusat hilgojuvvojit.

### `missing_api_key`

Loahppačuokkis dárbbaša API-čoavdda, muhto ii oktage sáddejuvvon (401).

### `invalid_api_key`

Čoavdda lea dovdameahttun, šluhttejuvvon dahje boarásmuvvan (401).

### `insufficient_scope`

Čoavddas váilu scope masa dát jearaldat dárbbaša (403), ovdamearkka dihte `models:run` vuojimii, dahje `models:read` jearaldagaid ja saldo lohkamii. Geahča [Autentiseren](https://doitong.com/developers/docs/authentication#scopes).

### `account_disabled`

Konto lea giddes dahje heaittihuvvon (403). Dan čoavddat eai šat doaimma.

### `not_found`

Bálggis ii gávdno (404).

### `model_not_found`

Ii gávdno almmolaš modealla dán id:in (404). Listte modeallaid `GET https://api.doitong.ru/v1/models` bokte.

### `request_not_found`

Du kontos ii gávdno jearaldat dán id:in (404). Eará kontuid jearaldagat eai goassege oidno.

### `insufficient_credits`

Konttu **API-saldo** (API-kredihtta, 1 000 API-kreditta = 1 $ — ii Doitong-appaid kredihtta) ii gokčase dán jearaldaga
mávssu (402). Vástádus sáddejuvvo ovdal go mihkkege mávsojuvvo. Meattáhusas lea `top_up_url`; lasit ruđa
[https://doitong.ru/developers/dashboard#balance](https://doitong.ru/developers/dashboard#balance) bokte ja geahččal fas.

```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.ru/developers/dashboard#balance",
             "top_up_url": "https://doitong.ru/developers/dashboard#balance", "doc_url": "https://doitong.com/developers/docs/errors#insufficient_credits" } }
```

### `budget_exceeded`

Jearaldat livččii badjel API-čoavdda iežas bušeahta API-kredihttain (402). Bušeahtta lea čoavdda eaiggáda mearridan; geahččaleapmi ii veahket ovdal go son lokte dan.

### `conflict`

Jearaldat vuostálastá resursa dálá dásis (409).

### `idempotency_mismatch`

`Idempotency-Key` geavahuvvui ovdal iešguđet rumašain (409). Geavat ođđa čoavdda ođđa doibmii.

### `idempotency_in_progress`

Jearaldat seamma `Idempotency-Key`-in ráhkaduvvo dál (409). Geahččal fas lássánit, vai oaččut dan.

### `request_active`

Jearaldat lea ain `queued` dahje `running`, nu ahte das ii leat vel fiillaid maid sihkkut (409). Sihkut daid go lea geargan.

### `not_cancelable`

Jearaldat lea juo `succeeded` dahje `failed` ja ii sáhte šluhttejuvvot (409).

### `rate_limited`

Čoavdda dahkkii menddo olu jearaldagaid dálá áigegaskkas (429). Geahča `X-RateLimit-*` ja `Retry-After` vuođđočuoggáid.

### `too_many_inflight`

Kontos leat juo 10 jearaldaga `queued` dahje `running` dásis (429). Álggat čuovvovaš go okta dáin geargá.

### `upstream_error`

Modealla-backend hilggui dahje filte jearaldaga (502 vuojimis, dahje `failed` dán kodaiguin jearaldagas). API-kredihtta
máhcahedjejuvvojit. Jos backend ieš hilgá sisa-addi, jearaldat máhcá `422 invalid_input` dieđáhusain.

### `upstream_lost`

Modealla-backend ii dovdda šat jearaldaga, nu ahte boahttevaš bohtos ii goassege boađe. Dat loahpahuvvo `failed` dán kodain
(type `upstream_error`) ja máhcaheapmi dahkko. Vuojit dan fas.

### `timeout`

Jearaldat bisttii guhkit go dan ráddjeáigi (15 minuhtta govvii, 60 videui, 30 muđui) ja bisánahččui. Dat loahpahuvvo
`failed` dán kodain ja máhcaheapmi dahkko.

### `service_unavailable`

API lea gaskaboddasaččat botkejuvvon, dahje čatnas nugo fiillaid upload lea eret (503). Geahččal maŋŋá.

### `internal_error`

Midjiide dáhpáhuvvui meattáhus (500). Geahččal fas; jos dat bistá, váldde oktavuođa doarjagiin.

### `charge_failed`

Kontos ii sáhttán váldit mávssu siskkáldas váttisvuođa dihte (500). Jearaldat merkejuvvo `failed`; ii váldon
mávssu. Geahččal fas.

### `pricing_unavailable`

Modealla haddi ii leat heivehuvvon, nu ahte dan ii sáhte dál meroštallat dahje vuodjit (500).
