# Mearachdan

Bidh gach puing-crìche a’ fàiligeadh san aon dòigh: inbhe HTTP agus aon chèis 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"
  }
}
```

| Raon | Ciall |
|---|---|
| `type` | Seòrsa farsaing a’ mhearachd. Dèan co-dhùnadh dè nì thu stèidhichte air seo. |
| `code` | An dearbh adhbhar, seasmhach agus so-leughaidh le inneal. Tha earrann gu h-ìosal aig gach còd; tha `doc_url` a’ ceangal ris. |
| `message` | Mìneachadh a ghabhas leughadh le duine, sàbhailte airson logadh no sealltainn do leasaiche. |
| `param` | Am paramadair in-chuir no bann-cinn aig a bheil a’ choire, ma tha fear ann. |
| `details` | Airson mhearachdan in-chuir, gach duilgheadas a chaidh a lorg: `[{ "param", "message" }]`. |
| `request_id` | An t-iarrtas ris a bheil e buntainneach, ma tha fear ann. |

Cha tèid càil a chur ort airson gairm a thilleas mearachd. Bidh iarrtas a dh’fhàillig *às dèidh* gabhail ris leis an t-inbhe
`failed`, a’ giùlan `error: { "type", "code", "message" }` air nì an iarrtais, agus thèid a phàigheadh air ais gu fèin-obrachail.

## Seòrsaichean

| Seòrsa | Inbhe HTTP | Dè nì thu |
|---|---|---|
| `invalid_request` | 400, 413 no 422 | Ceartaich an t-iarrtas. Fàilligidh ath-oidhirp air an aon ghairm a-rithist. |
| `authentication_error` | 401 | Cuir iuchair dhligheach ann an `Authorization: Bearer <key>`. |
| `permission_error` | 403 | Cleachd iuchair leis an raon-ùghdarrais riatanach. |
| `not_found` | 404 | Thoir sùil air ID a’ mhodail no ID an iarrtais. |
| `insufficient_credits` | 402 | Dèan cur-ris air iarmad API (`top_up_url` sa mhearachd). |
| `budget_exceeded` | 402 | Tha buidseat na h-iuchrach fhèin air a chleachdadh gu lèir. Mu dheireadh: iarr air sealbhadair na h-iuchrach a thogail. |
| `conflict` | 409 | Chan eil an goireas ann an staid a cheadaicheas a’ ghairm seo. |
| `rate_limited` | 429 | Fuirich `Retry-After` diogan, agus feuch a-rithist. |
| `upstream_error` | 502 | Dh’fhàillig cùl-raon a’ mhodail. Tha e sàbhailte feuchainn a-rithist leis an aon `Idempotency-Key`: ruithidh e a-rithist; cha deach cosgais a chur ort. |
| `service_unavailable` | 503 | Tha an API air stad no tha eisimeileachd sìos. Feuch a-rithist nas fhaide air adhart. |
| `internal_error` | 500 | Ar bug fhèin. Feuch a-rithist; ma mhaireas e, cuir fios gu taic leis an àm agus `request_id`. |

## Còdan

### `invalid_request`

Iarrtas coitcheann le cruth ceàrr (400).

### `invalid_json`

Chan eil am bodhaig na JSON dhligheach (400).

### `invalid_body`

Tha am bodhaig na JSON dhligheach ach chan eil e na nì; feumaidh in-chur a’ mhodail a bhith na nì JSON (400).

### `body_too_large`

Tha am bodhaig nas motha na 16 MB (413). Luchdaich suas faidhlichean mòra agus cuir an URL aca na àite (faic [Faidhlichean](https://doitong.com/developers/docs/files)).

### `invalid_parameter`

Tha luach ceàrr aig paramadair ceist, mar eisimpleir `limit` taobh a-muigh 1 gu 100, `wait` nach eil na àireamh, `status` no `category` neo-aithnichte, no `storage` seach `permanent` / `temporary` (400). Tha `param` ga ainmeachadh.

### `invalid_category`

Tha `GET /openapi.json?category=` ag ainmeachadh roinn nach eil ann (400). Tha `GET https://api.doitong.ru/v1/categories` gan liostadh.

### `invalid_cursor`

Cha bhuin `cursor` de ghairm liosta dhan liosta seo (400). Tòisich a-rithist gun chursair.

### `invalid_idempotency_key`

Tha bann-cinn `Idempotency-Key` falamh no nas fhaide na 255 caractar (400).

### `invalid_arguments`

Tha argamaid a dhìth no le cruth ceàrr ann an gairm inneil MCP (MCP a-mhàin). Tha `param` ag ainmeachadh na h-argamaid.

### `invalid_input`

Chan eil in-chur a’ mhodail a’ dol tron dearbhadh (422): paramadair neo-aithnichte (tha an teachdaireachd a’ moladh an ainm dhligheach as fhaisge), paramadair riatanach a dhìth, seòrsa ceàrr, luach taobh a-muigh na liosta no na raoin cheadaichte, no an dà chuid an t-ainm canonical agus an t-ainm dùthchasach air an toirt seachad le luachan eadar-dhealaichte. Is e `param` a’ chiad paramadair ceàrr agus tha `details` a’ liostadh iad uile. Cha tèid cosgais a chur ort.

### `unsupported_file`

Tha seòrsa faidhle ann nach gabh sinn ris (422), mar eisimpleir luchdachadh suas le leudachan gun taic, no `content_type` nach eil a’ freagairt ris an leudachan.

### `invalid_webhook_url`

Chan eil `webhook_url` na URL poblach `https://` (422). Thèid seòlaidhean prìobhaideach, ionadail agus lom `http://` a dhiùltadh.

### `missing_api_key`

Feumaidh am puing-crìche iuchair API agus cha deach gin a chur (401).

### `invalid_api_key`

Chan eil an iuchair aithnichte, chaidh a toirt air ais no tha i air tighinn gu crìch (401).

### `insufficient_scope`

Chan eil an raon-ùghdarrais a dh’fheumas a’ ghairm seo aig an iuchair (403), mar `models:run` airson ruith, no `models:read` airson iarrtasan agus an iarmad a leughadh. Faic [Dearbhadh](https://doitong.com/developers/docs/authentication#scopes).

### `account_disabled`

Tha an cunntas dùinte no air a chrochadh (403). Chan obraich na h-iuchraichean aige tuilleadh.

### `not_found`

Chan eil an t-slighe ann (404).

### `model_not_found`

Chan eil modail poblach leis an ID seo (404). Liostaich na modailean le `GET https://api.doitong.ru/v1/models`.

### `request_not_found`

Chan eil iarrtas leis an ID seo sa chunntas agad (404). Chan fhaicear iarrtasan chunntasan eile idir.

### `insufficient_credits`

Chan eil **iarmad API** a’ chunntais (creideasan API, 1,000 creideasan API = $1 — chan e creideasan nan aplacaidean Doitong) gu leòr airson prìs na gairme seo (402). Thèid am freagairt a chur mus tèid cosgais sam bith a chur ort. Tha `top_up_url` sa mhearachd; cuir airgead ris aig [https://doitong.ru/developers/dashboard#balance](https://doitong.ru/developers/dashboard#balance) agus feuch a-rithist.

```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`

Bhiodh a’ ghairm nas motha na buidseat na h-iuchrach API fhèin ann an creideasan API (402). Tha am buidseat air a shuidheachadh le sealbhadair na h-iuchrach; cha chuidich ath-oidhirp gus an tog iad e.

### `conflict`

Tha a’ ghairm a’ dol an aghaidh staid làithreach a’ ghoireis (409).

### `idempotency_mismatch`

Chaidh `Idempotency-Key` a chleachdadh mu thràth le bodhaig eadar-dhealaichte (409). Cleachd iuchair ùr airson obrachadh ùr.

### `idempotency_in_progress`

Tha iarrtas leis an aon `Idempotency-Key` ga chruthachadh an-dràsta (409). Feuch a-rithist an ceann tiota gus fhaighinn.

### `request_active`

Tha an t-iarrtas fhathast `queued` no `running`, mar sin chan eil faidhlichean aige ri sguabadh fhathast (409). Sguab às iad nuair a bhios e deiseil.

### `not_cancelable`

Tha an t-iarrtas mar-thà `succeeded` no `failed` agus chan urrainnear a chur dheth (409).

### `rate_limited`

Rinn an iuchair cus iarrtasan san uinneig làithreach (429). Faic na bannan-cinn `X-RateLimit-*` agus `Retry-After`.

### `too_many_inflight`

Tha 10 iarrtasan `queued` no `running` aig a’ chunntas mu thràth (429). Tòisich an ath fhear nuair a chrìochnaicheas fear dhiubh.

### `upstream_error`

Dhiùlt no dh’fhàillig cùl-raon a’ mhodail an t-iarrtas (502 air ruith, no `failed` leis a’ chòd seo air an iarrtas). Thèid na creideasan API a phàigheadh air ais. Ma dhiùlt an cùl-raon an in-chur fhèin, tillidh a’ ghairm `422 invalid_input` leis an teachdaireachd aige na àite.

### `upstream_lost`

Chan eil cùl-raon a’ mhodail eòlach air an iarrtas tuilleadh, agus mar sin cha tig toradh gu bràth. Thig e gu crìch mar `failed` leis a’ chòd seo (seòrsa `upstream_error`) agus thèid a phàigheadh air ais. Ruith a-rithist e.

### `timeout`

Ruith an t-iarrtas nas fhaide na a chrìoch (15 mionaid airson ìomhaighean, 60 airson bhidio, 30 air dhòigh eile) agus chaidh stad a chur air. Thig e gu crìch mar `failed` leis a’ chòd seo agus thèid a phàigheadh air ais.

### `service_unavailable`

Tha an API air stad greiseag, no tha eisimeileachd leithid luchdachadh suas fhaidhlichean sìos (503). Feuch a-rithist nas fhaide air adhart.

### `internal_error`

Bhris rudeigin air ar taobh (500). Feuch a-rithist; ma mhaireas e, cuir fios gu taic.

### `charge_failed`

Cha b’ urrainn an cunntas a bhith air a chur fo chosgais air sgàth duilgheadas taobh a-staigh (500). Tha an t-iarrtas air a chomharrachadh `failed`; cha deach dad a thoirt. Feuch a-rithist.

### `pricing_unavailable`

Chan eil prìs a’ mhodail air a rèiteachadh, mar sin chan urrainnear prìs a thoirt seachad no a ruith an-dràsta (500).
