# Tòiseachadh luath

Ruith a’ chiad ghineadh agad ann am beagan mhionaidean. Bidh an aon seòrsa iarrtais aig na 1,496 modalan uile agus tillidh iad an aon
nì iarrtais, airson ìomhaighean, bhidio agus claisneachd: ionnsaich e aon turas an seo.

> [!NOTE]
> Bun-URL `https://api.doitong.ru/v1`. Bidh gach gairm a’ cur `Authorization: Bearer <your key>`, agus obraichidh an aon iuchair leis an
> API HTTP agus leis an fhrithealaiche MCP.

## 1. Faigh iuchair API

Cruthaich iuchair aig [https://doitong.com/developers/dashboard#keys](https://doitong.com/developers/dashboard#keys) agus cumaibh i ann an caochladair
àrainneachd: cha nochd i ach aon turas. Faodaidh a bhuidseat fhèin a bhith aig gach iuchair, mar sin faodaidh tu tè a thoirt do dh’àidseant
gun an cunntas air fad a chur ann an cunnart. Tillidh `GET /account` iarmad an API agad.

```bash
export DOITONG_API_KEY="doitong_..."

curl "https://api.doitong.ru/v1/account" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/account", {
  headers: { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` },
});

console.log(await res.json());
```
```python
import os
import requests

r = requests.get(
    "https://api.doitong.ru/v1/account",
    headers={"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"},
)
print(r.json())
```

Tha ruith air am pàigheadh à **iarmad API** a’ chunntais agad ann an creideasan API: 1,000 creideasan API = $1, agus cosgaidh gach modail
prìs an neach-dèanaimh aige gu mionaideach. Cuir cur-ris ris aig [https://doitong.ru/developers/dashboard#balance](https://doitong.ru/developers/dashboard#balance).

## 2. Faigh luachan, agus ruith an uair sin

Gabhaidh `POST /quote/{model_id}` an JSON in-chuir agus tillidh e a’ phrìs cheart. Chan eil iuchair a dhìth air agus chan eil cosgais ann.
Cosgaidh ruith leis an aon in-chur dìreach an luach sin: ’s e an luachan a’ chosgais. (Tha modail a thèid a chìseanachadh a rèir
cleachdaidh na eisgeachd: ’s e an luachan an ìre as motha a dh’fhaodas an ruith a chosg, agus thèid a’ chuibhreann nach deach a chleachdadh
ath-phàigheadh an dèidh an ruith.)

```bash
curl -X POST "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": true}'
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ image: "https://example.com/fox.jpg", duration: 5, generate_audio: true }),
});

const quote = await res.json();
console.log(quote.credits, quote.usd); // 840 "0.84"
```
```python
import requests

r = requests.post(
    "https://api.doitong.ru/v1/quote/kling-video/v3/pro/image-to-video",
    json={"image": "https://example.com/fox.jpg", "duration": 5, "generate_audio": True},
)
print(r.json()["credits"], r.json()["usd"])  # 840 0.84
```

```json 200 OK · luachan
{
  "object": "quote",
  "model": "kling-video/v3/pro/image-to-video",
  "credits": 840,
  "usd": "0.84",
  "unit": "second",
  "quantity": 5,
  "unit_credits": 168,
  "mode": "exact",
  "breakdown": "5 s × 168 API credits"
}
```

An uair sin cuir an aon bhodhaig gu `POST /run/{model_id}`. Cuir `?wait=20` ris gus an ceangal a chumail fosgailte airson suas ri 20 diog: tillidh
modail luath an toradh chrìochnaichte ann an aon chuairt. Cuir bann-cinn `Idempotency-Key` gus nach ruith (no nach cuir cosgais air) ath-iarrtas dà thuras.

```bash
curl -X POST "https://api.doitong.ru/v1/run/flux/schnell?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: lighthouse-001" \
  -d '{"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"}'
```
```javascript
const res = await fetch("https://api.doitong.ru/v1/run/flux/schnell?wait=20", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.DOITONG_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "lighthouse-001",
  },
  body: JSON.stringify({ prompt: "A lighthouse on a rocky coast at dusk, warm light in the window" }),
});

const request = await res.json();
console.log(request.status, request.outputs[0]?.url);
```
```python
import os
import requests

r = requests.post(
    "https://api.doitong.ru/v1/run/flux/schnell",
    params={"wait": 20},
    headers={
        "Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}",
        "Idempotency-Key": "lighthouse-001",
    },
    json={"prompt": "A lighthouse on a rocky coast at dusk, warm light in the window"},
)
request = r.json()
print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
```

’S e nì iarrtais a th’ anns an fhreagairt:

```json 200 OK · iarrtas
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg", "width": 1024, "height": 768, "stored": true }
  ],
  "error": null
}
```

## 3. Lean an inbhe

Ma tha am modail fhathast ag obair nuair a thig an ùine feitheimh gu crìch, gheibh thu `202 Accepted` leis an `id` aig an iarrtas agus an
`status` làithreach aige. Bidh gach iarrtas a’ dol tron aon chuairt-beatha:

Cuairt-beatha an iarrtais: `queued` → `running` → `succeeded` | `failed` | `canceled` (deireannach; thèid fàilligidhean agus cuirmean dheth ath-dhìoladh).

Leugh an iarrtas a-rithist leis an id aige. Obraichidh `?wait=20` an seo cuideachd, agus mar sin tha lùb shìmplidh gu leòr:

```bash
curl "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```
```javascript
const headers = { Authorization: `Bearer ${process.env.DOITONG_API_KEY}` };
let request = await (await fetch("https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20", { headers })).json();

while (request.status === "queued" || request.status === "running") {
  const res = await fetch(`https://api.doitong.ru/v1/requests/${request.id}?wait=20`, { headers });
  request = await res.json();
}

console.log(request.status, request.outputs[0]?.url);
```
```python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['DOITONG_API_KEY']}"}
request = {"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t", "status": "queued"}

while request["status"] in ("queued", "running"):
    request = requests.get(
        f"https://api.doitong.ru/v1/requests/{request['id']}",
        params={"wait": 20},
        headers=headers,
    ).json()

print(request["status"], request["outputs"][0]["url"] if request["outputs"] else None)
```

Nuair a tha `status` aig `succeeded`, bidh `outputs[].url` a’ cumail cheanglaichean gu na faidhlichean air an stòradh againn. Ma tha an iarrtas
`failed` no `canceled`, thèid na creideasan API aige ath-phàigheadh gu fèin-obrachail agus innsidh `error` carson. Sguir de rud sam bith a tha fhathast
`queued` no `running`:

```bash
curl -X POST "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

Airson obraichean bhidio fada faodaidh tu stad a chur air bhòtadh agus `webhook_url` a chur seachad na àite (faic [Webhooks](https://doitong.com/developers/docs/webhooks)).

## 4. Faidhlichean

Cuir URL poblach sam bith seachad mar in-chur, no iarr URL luchdaidh suas le `POST /files`, cuir `PUT` air an fhaidhle an sin agus cleachd an
`file_url` a thillear (faic [Files](https://doitong.com/developers/docs/files)). Tha iarrtas soirbheachail a’ liostadh a thoraidhean ann an `outputs[]` le
type, content type agus, nuair a tha fios orra, tomhasan agus fad.

```bash
curl -X POST "https://api.doitong.ru/v1/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename": "fox.jpg", "content_type": "image/jpeg", "size": 482113}'
```

> [!TIP]
> **Faidhlichean air an cumail gu bràth, no 7 latha an-asgaidh: do roghainn fhèin.** Thèid faidhlichean às-chuir a chopaigeadh dhan
> stòradh againn mus soirbhich le iarrtas. Gu bun-roghainn, fanaidh iad gus an sguab thu às iad (100 creideasan API
> gach GB gach mìos); cuir an suidse "Cùm faidhlichean gu bràth" dheth san deas-bhòrd, no cuir `?storage=temporary` seachad, gus an cumail
> 7 latha an-asgaidh (faic [Files](https://doitong.com/developers/docs/files#storage)).

## Mearachdan

Bidh gach modail a’ fàiligeadh san aon dòigh: aon chèis le `type`, `code` cheart, am `param` a dh’adhbhraich an duilgheadas agus gach duilgheadas
ann an `details`, gus an urrainn do dh’àidseant an iarrtas a cheartachadh gun phròs a leughadh. Cha tèid cosgais a chur air iarrtas mì-dhligheach.

```json 422 Unprocessable Entity
{
  "error": {
    "type": "invalid_request",
    "code": "invalid_input",
    "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.",
    "param": "duration",
    "details": [ { "param": "duration", "message": "duration must be one of 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15." } ],
    "request_id": null,
    "doc_url": "https://doitong.com/developers/docs/errors#invalid_input"
  }
}
```

Tha gach type agus code air an liostadh ann an [Errors](https://doitong.com/developers/docs/errors).

## Prìsean

Tha prìsean ann an USD agus creideasan API agus air an sealltainn air duilleag gach modail mus ruith thu e. Bidh `cost` aig gach iarrtas le
`credits`, `usd`, `charged` agus `refunded`. Thèid cosgais a chur air ruith nuair a thèid gabhail ris; thèid iarrtasan `failed` agus `canceled` ath-phàigheadh
gun fèin-obrachail. Tha cuid de mhodalan air am prìseachadh dìreach bhon in-chur, cuid a rèir fad no meud nam faidhlichean a chuireas tu,
agus cuid eile a’ cur cosgais air *prìs mheasta gach ruith*: co-dhiù, ’s e an luachan na phàigheas tu. Tha beagan mhodalan (modalan cànain agus
lèirsinn, guth, innealan ùine-giullachd) *air an cosgais a rèir cleachdaidh*: ’s e an luachan an ìre as motha a dh’fhaodas an ruith a chosg, agus thèid
an chuibhreann nach do chleachd an ruith ath-phàigheadh gu fèin-obrachail. Faic [Pricing](https://doitong.com/developers/docs/pricing).

## MCP agus àidseantan AI

Ceangail cliant MCP sam bith ri `https://api.doitong.ru/v1/mcp` leis an aon iuchair Bearer. Faodaidh an t-àidseant agad an catalog a rannsachadh, luachan fhaighinn agus
modalan a ruith, agus gach duilleag sgrìobhainnean a leughadh mar Markdown.

```bash Claude Code
claude mcp add --transport http doitong-models https://api.doitong.ru/v1/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"
```

## Na h-ath cheumannan

- Rannsaich [na modailean uile](https://doitong.com/developers/models). Tha togail-iarrtais air gach duilleag a sgrìobhas an còd dhut.
- Ionnsaich cearcall-beatha an iarrtais: [Requests](https://doitong.com/developers/docs/requests).
- Cleachd na h-aon ainmean paramadair air gach modail: [Parameters](https://doitong.com/developers/docs/parameters).
- Ag obair le àidseant còdaidh AI? Thoir dha [https://doitong.com/developers/llms.txt](https://doitong.com/developers/llms.txt) no ceangail am [frithealaiche MCP](https://doitong.com/developers/docs/mcp).
