# ᡤᡝᡪᡳᠯᡝᠨ

ᡝᠮᡠ ᡤᡝᡪᡳᠯᡝᠨ ᠰᡝᡵᡝᠩᡤᡝ ᡝᠮᡠ ᠮᠣᠳᡝᠯ ᠪᡝ ᡝᠮᡠ ᡤᡝᡵᡝᠯᡝᡵᡝ ᠪᠠᡳᡨᠠ᠉ ᡝᡵᡝᠨᡩᡝ ᡝᠮᡠ id (`req_…`) ᠪᡳ᠂ ᡝᠮᡠ ᡩᡠᡵᡠᠨ ᠪᡳ᠂ API ᠵᠠᠯᡤᠠᠨ ᡳ ᡥᡝᡥᡝᠨ ᠪᡳ (1000 = 1 USD)᠂ ᠪᠠᡳᡨᠠ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᠪᡠᡥᠠ ᡩᡝ᠂ ᠪᠠᠨᠵᡳᠪᡠᡥᠠ ᡶᡳᠯᡝ ᠪᡝ ᠪᠠᡥᠠᠮᠪᡳ᠉ ᡝᡵᡝ ᡤᡝᠪᡠᠩᡤᡝ ᠪᠠᡳᡨᠠ ᡶᡝᡝᡵᡝᡵᡳ ᡝᠮᡝ ᠵᠠᠯᡳᠨ ᡳᠯᡤᠠᠨ ᠴᡳ ᠪᠠᡥᠠᠮᠪᡳ᠂ ᠮᠣᠳᡝᠯ ᡩᡝᡵᡳ ᡤᡝᠮᡠ ᡝᠮᡠ ᠠᡩᠠᠯᡳ᠉

## ᠮᠣᠳᡝᠯ ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ

ᡤᡝᠮᡠ 1,496 ᠮᠣᠳᡝᠯ ᡳ ᡶᠠᡳᠯᠠ ᠣᠴᡳ ᡤᡝᡵᡝᠨ ᡳ JSON ᡳᠨᡠ (ᠵᡳᡵᡤᠠ ᠪᠠᡳᡨᠠᡵᡴᡡ):

```bash
curl "https://api.doitong.com/v1/models?category=text-to-video&lab=Google&limit=20"
```

| ᠵᠠᡴᡠᠨ ᡳ ᠪᠠᡳᡨᠠᠮᠪᡳ | ᡤᡠᠨᡳᠨ |
|---|---|
| `q` | ᡤᡝᠪᡠ᠂ id᠂ ᠪᠠᠨᠵᡳᡥᠠ ᠨᡳᠶᠠᠯᠮᠠ ᡝᡥᡝ ᡨᠠᡤᠰ ᡩᡝ ᠪᡳᠰᡳᡵᡝ ᡤᡳᠰᡠᠨ᠂ ᡩᡠᠪᡠᠯᡝᡵᡝ ᡩᡝ `kling 3`᠉ |
| `category` | ᡝᠮᡠ ᡥᠠᠴᡳᠨ ᡳ id᠂ ᡩᡠᠪᡠᠯᡝᡵᡝ ᡩᡝ `text-to-video` ᡝᡥᡝ `upscale`᠉ `GET https://api.doitong.com/v1/categories` ᡩᡝᡵᡳ ᡤᡝᠮᡠ 21 ᡥᠠᠴᡳᠨ ᠪᡝ ᡨᠣᠨ ᡳ ᡝᠮᡤᡳ ᠪᠠᡥᠠᠮᠪᡳ᠉ |
| `lab` | ᠮᠣᠳᡝᠯ ᠪᡝ ᠪᠠᠨᠵᡳᡥᠠ ᠨᡳᠶᠠᠯᠮᠠ᠂ ᡤᡝᠪᡠ ᡝᡥᡝ id ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ᠂ ᡩᡠᠪᡠᠯᡝᡵᡝ ᡩᡝ `Google` ᡝᡥᡝ `black-forest-labs`᠉ |
| `family` | ᡶᡝᡝᡵᡝᡵᡳ ᡶᠠᡳᠯᠠ ᠴᡳ ᠪᠠᡥᠠᡥᠠ `family` id: ᡝᠮᡠ ᠮᠣᠳᡝᠯ ᡳ ᡥᠠᠴᡳᠨ ᡥᠠᠴᡳᠨ (pro, fast, image-to-video, …)᠉ |
| `mode` | `exact` (ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᠴᡳ ᡥᡝᡥᡝᠨ ᠪᡝ ᠪᠣᡩᠣᠮᠪᡳ), `measured` (ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᡶᡳᠯᡝ ᡳ ᡤᠣᠯᠮᡳᠨ ᡝᡥᡝ ᠠᠮᠪᠠ ᠠᠵᡳᡤᡝ ᠴᡳ ᠪᠣᡩᠣᠮᠪᡳ), `estimate` (ᡝᠮᡠ ᠮᡠᡩᠠᠨ ᡩᡝ ᡩᠣᠯᡤᡳᠶᠠᠨ ᡥᡝᡥᡝᠨ) ᡝᡥᡝ `metered` (ᡠᠰᡳᡥᠠ ᡳ ᠰᠣᠩᡤᠣᡳ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᠮᠪᡳ᠂ ᡝᠮᡠ ᠮᡠᡩᠠᠨ ᡳ ᡩᡝᡥᡳ ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ)᠉ |
| `limit`, `cursor` | ᠠᡶᠠ ᡳ ᠠᠮᠪᠠ ᠠᠵᡳᡤᡝ (1 ᠴᡳ 100᠂ ᠵᡠᠯᡝ ᡨᠣᠨ 50) ᡝᡥᡝ ᠵᡠᠯᡝᡵᡤᡳ ᠠᡶᠠ ᡳ `next_cursor`᠉ |

ᡶᠠᡳᠯᠠ ᡩᡝᡵᡳ ᡤᡝᠮᡠ `id`, `name`, `lab`, `category`, `family`, `summary`, `tags`, `output_kind`, `docs_url` ᡝᡥᡝ `price` ᠪᠠᡳᡨᠠ ᠪᡳ (ᠰᡳᡨᡝᠯᡝ [Pricing](https://doitong.com/developers/docs/pricing#price-objects))᠉ `GET https://api.doitong.com/v1/models/{model_id}` ᠪᠠᡳᡨᠠᠮᠪᡳ ᡩᡝ ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᡝᡥᡝ ᠪᡠᠶᡝᠮᡝ ᡳ JSON Schema᠂ ᡨᠣᡴᡨᠣᡥᠣ ᠵᠠᡴᡠᠨ ᡳ ᡤᡝᠪᡠ᠂ ᡥᡝᡥᡝᠨ ᡳ ᡴᠣᠣᠯᡳ ᡝᡥᡝ ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᡳ ᡩᡠᠪᡠᠯᡝᠨ ᠪᡝ ᠨᠣᠩᡤᡳᠮᠪᡳ᠉ ᠰᠠᡵᡴᡡ `category` ᡝᡥᡝ `mode` ᠣᠴᡳ `400 invalid_parameter` ᠣᠮᠪᡳ᠉

## ᠮᠣᠳᡝᠯ ᠪᡝ ᡶᡝᡴᠰᡳᠪᡠᠮᠪᡳ

```bash
curl -X POST "https://api.doitong.com/v1/run/{model_id}?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1842-cover" \
  -d '{"prompt": "..."}'
```

- ᠪᡝᠶᡝ ᠣᠴᡳ ᠮᠣᠳᡝᠯ ᡳ ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ᠂ ᡝᠮᡠ JSON ᠪᠠᡳᡨᠠ᠉ ᠮᠣᠳᡝᠯ ᡳ ᠠᡶᠠ ᡩᡝᡵᡳ ᡨᡝᡵᡝ ᠵᠠᡴᡠᠨ ᠪᡝ ᡶᠠᡳᠯᠠᡥᠠᠪᡳ᠉
- ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᠮᡝ ᡩᡝᡵᡳ ᠵᡠᠯᡝ᠂ ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ᠉ ᡨᠠᠰᡳᡥᠠ ᡝᡵᡝᠮᡝ ᠪᡠᠮᡝ ᠣᠴᡳ `422 invalid_input` ᠪᡝ ᠪᡠᠮᠪᡳ᠂ ᡨᡝᡵᡝ ᡨᠠᠰᡳᡥᠠ `param` ᠪᡝ ᡨᡠᡴᡳᠶᡝᠮᠪᡳ᠂ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᡵᡴᡡ᠉
- `?wait=N` (20 ᠰᡝᡴᡠᠨᡩ ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ) ᡤᡝᡪᡳᠯᡝᠨ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ ᡝᡥᡝ ᡝᡵᡳᠨ ᡩᡠᠯᡝᡨᡝᠯᡝ ᡝᠯᡳᡝᠮᠪᡳ᠉
- `?webhook_url=https://…` ᡤᡝᡪᡳᠯᡝᠨ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ ᡩᡝ ᡨᡝᡵᡝ URL ᡩᡝ ᡨᠣᡴᡨᠣᠪᡠᡥᠠ POST ᠪᡝ ᡠᠨᡤᡤᡳᠮᠪᡳ (ᠰᡳᡨᡝᠯᡝ [Webhooks](https://doitong.com/developers/docs/webhooks))᠉
- `?storage=permanent` ᡝᡥᡝ `?storage=temporary` ᠪᡝ ᠪᠠᡳᡨᠠᠮᡝ ᠪᡠᠶᡝᠮᡝ ᡶᡳᠯᡝ ᠪᡝ ᡠᡩᡠ ᡤᠣᡳᡩᠠᠮᡝ ᠪᡳᠰᡳᡵᡝ ᠪᡝ ᠰᠣᠩᡤᠣᠮᠪᡳ; ᠪᠠᡳᡨᠠᡵᡴᡡ ᠣᠴᡳ ᡥᠠᡥᠠᡵᡳ ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ (ᠰᡳᡨᡝᠯᡝ [ᡶᡳᠯᡝ ᠠᡳᠪᠠᡩᡝ ᠪᡳᠰᡳᡵᡝ](#storage))᠉

ᡤᡝᡪᡳᠯᡝᠨ ᠪᠠᡳᡨᠠᠯᠠᠮᡝ ᠪᡳᠰᡳᡵᡝ ᡩᡝ ᠪᡠᡥᠠ ᠵᠠᠪᡠᠨ ᠣᠴᡳ `202 Accepted`᠂ ᡝᠯᡳᡝᡵᡝ ᡝᡵᡳᠨ ᡩᡝ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ ᡩᡝ `200 OK` ᠣᠮᠪᡳ (ᡝᡥᡝ ᡶᡝᡝᡵᡝᡵᡳ ᠪᠠᡳᡨᠠᡥᠠ ᠪᠠᡳᡨᠠ ᠣᠴᡳ)᠉ `Location` ᡝᡥᡝ `Doitong-Request-Id` ᡥᡝᠠᡩᡝᡵ ᡩᡝ ᡤᡝᡪᡳᠯᡝᠨ ᡳ URL ᡝᡥᡝ id ᠪᡝ ᡤᠠᡳᡥᠠᠪᡳ᠉

## ᡩᡠᡵᡠᠨ

ᠵᠠᠯᡳᠨ ᡳ ᡠᠯᡥᡳᠨ: `queued` → `running` → `succeeded` | `failed` | `canceled` (ᡝᠴᡝᠨ; ᠠᠯᡳᠨ ᠠᠮᠪᠠᠨ ᡝᠮᡠᠯᡝᠨ ᠠᠮᠪᠠᠨ ᠪᠠᠩᡤᡠᠨ ᠨᡳᠶᠠᠯᠮᠠ ᠪᠠᡳᠴᠠᠩᡤᡝ ᠪᠠᡵᡤᡳᠶᠠᠮᡝ).

| ᡩᡠᡵᡠᠨ | ᡤᡠᠨᡳᠨ | ᡩᡠᠪᡝᠨ |
|---|---|---|
| `queued` | ᠪᠠᡥᠠᡥᠠ ᡝᡥᡝ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᡥᠠ᠂ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᠨᡳᠶᠠᠯᠮᠠ ᠪᡝ ᡝᠯᡳᡝᠮᠪᡳ᠉ `queue_position` ᡩᡝᡵᡳ ᡶᠠᡳᠯᠠ ᡩᡝᡵᡳ ᠠᡳᠪᠠᡩᡝ ᠪᡳᠰᡳᡵᡝ ᠪᡝ ᠰᠠᠪᡠᠮᠪᡳ᠉ | ᠠᡴᡡ |
| `running` | ᠮᠣᠳᡝᠯ ᠪᠠᠨᠵᡳᠪᡠᠮᡝ ᠪᡳᠰᡳᡵᡝ᠉ | ᠠᡴᡡ |
| `succeeded` | ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ᠉ `outputs` ᡩᡝ ᡶᡳᠯᡝ ᠪᡝ ᡶᠠᡳᠯᠠᡥᠠᠪᡳ᠉ | ᡳᠨᡠ |
| `failed` | ᠮᠣᠳᡝᠯ ᡝᡥᡝ ᡩᡝᡥᡳ ᡩᡝ ᡳᠰᡳᡥᠠ ᡩᡝᡵᡳ ᡳᠯᡳᡥᠠ᠉ `error` ᡩᡝ ᠠᡳᠨᡠ ᠰᡝᡵᡝ ᠪᡝ ᡤᡳᠰᡠᡵᡝᡥᡝᠪᡳ᠉ API ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠠᠮ᠝ᠪᡠᠮᠪᡳ᠉ | ᡳᠨᡠ |
| `canceled` | ᠪᠠᡳᡨᠠ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡨᡝᠯᡝ ᡥᠠᠯᠠᡥᠠᠪᡳ᠉ API ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠠᠮ᠝ᠪᡠᠮᠪᡳ᠉ | ᡳᠨᡠ |

ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᡝᡵᡳᠨ ᠴᡳ ᡩᡠᠯᡝᡴᡝ ᡤᡝᡪᡳᠯᡝᠨ ᠣᠴᡳ `timeout` ᡴᠣᡩ ᡳ ᡝᠮᡤᡳ ᡶᠠᡳᠯᡝᡩ ᠣᠮᠪᡳ᠂ ᡥᡝᡥᡝᠨ ᠪᡝ ᠠᠮ᠝ᠪᡠᠮᠪᡳ: ᡤᠠᠳᠠᠨ ᡩᡝ 15 ᠮᡳᠨᡠᡨ᠂ ᠰᡠᠨᡤᠠ ᡩᡝ 60 ᠮᡳᠨᡠᡨ᠂ ᡤᡳᠰᡠᠨ ᡝᡥᡝ ᡤᡡᠪᠠ ᠪᠠᡳᡨᠠ ᡩᡝ 30 ᠮᡳᠨᡠᡨ᠉

## ᡤᡝᡪᡳᠯᡝᠨ ᠪᠠᡳᡨᠠ

```json
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "flux/schnell",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:01Z",
  "completed_at": "2026-10-20T12:00:02Z",
  "queue_position": null,
  "cost": { "credits": 3, "usd": "0.003", "charged": 3, "refunded": 0 },
  "input": { "prompt": "..." },
  "output": { "images": [ { "url": "https://content.doitong.com/dev-api/…/0-output.jpeg", "width": 1024, "height": 768 } ] },
  "outputs": [
    { "type": "image", "url": "https://content.doitong.com/dev-api/…/0-output.jpeg", "content_type": "image/jpeg",
      "width": 1024, "height": 768, "file_size": 183920, "stored": true }
  ],
  "error": null,
  "metrics": { "inference_seconds": 1.2 },
  "storage": { "mode": "permanent", "bytes": 183920, "expires_at": null, "expired": false },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
```

- `outputs` ᠣᠴᡳ ᠮᠣᠳᡝᠯ ᡩᡝᡵᡳ ᡤᡝᠮᡠ ᡝᠮᡠ ᠠᡩᠠᠯᡳ: ᠪᠠᠨᠵᡳᠪᡠᡥᠠ ᡶᡳᠯᡝ ᡩᡝᡵᡳ ᡝᠮᡠ ᡝᠮᡠ ᡩᡝ `type` (`image`, `video`, `audio`, `file` ᡝᡥᡝ `3d`), ᠮᡠᠰᡝᡳ ᠰᡠᠯᡠᠨ ᡩᡝᡵᡳ ᡝᠮᡠ `url`, `content_type` ᠪᡳ᠂ ᠰᠠᡥᠠ ᡩᡝ `file_size`, `width`, `height`, `duration` ᠪᡝ ᠨᠣᠩᡤᡳᠮᠪᡳ᠉
- `output` ᠣᠴᡳ ᠮᠣᠳᡝᠯ ᡳ ᠪᡝᠶᡝᡳ ᠪᡠᠶᡝᠮᡝ ᠪᠠᡳᡨᠠ (ᡝᡵᡝ ᠵᠠᡴᡠᠨ ᠪᡝ ᠮᠣᠳᡝᠯ ᡳ ᠠᡶᠠ ᡩᡝᡵᡳ ᡶᠠᡳᠯᠠᡥᠠᠪᡳ)᠂ ᡝᠮᡠ ᠠᡩᠠᠯᡳ URL ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ᠉
- `storage` ᡩᡝ ᡶᡳᠯᡝ ᠪᡝ ᠠᡳᡶᡳᠨᡩᡝ ᠠᠰᠠᡵᠠᡵᠠ ᠪᡝ ᡤᡳᠰᡠᡵᡝᠮᠪᡳ: `mode` (`permanent` ᡝᡥᡝ `temporary`), ᠠᠰᠠᡵᠠᡥᠠ `bytes`, `expires_at` (ᡝᡵᡳᠨ ᡩᡠᠯᡝᡴᡝ ᡶᡳᠯᡝ ᠪᡝ ᠮᡠᡴᡳᠶᡝᠪᡠᡵᡝ ᡝᡵᡳᠨ᠂ ᡝᠨᡨᡝᡥᡝᠮᡝ ᠪᡳᠰᡳᡵᡝ ᡩᡝ `null` ᠣᠮᠪᡳ) ᡝᡥᡝ `expired` (ᡶᡳᠯᡝ ᠮᡠᡴᡳᠶᡝᡥᡝ ᡩᡝ `true` ᠣᠮᠪᡳ)᠉
- `cost.credits` ᠣᠴᡳ API ᠵᠠᠯᡤᠠᠨ ᡳ ᡥᡝᡥᡝᠨ (`cost.usd` ᠣᠴᡳ USD), `cost.charged` ᠣᠴᡳ API ᠪᠠᠯᠠᠨᠰᡳ ᠴᡳ ᡤᠠᡳᡥᠠ ᡥᡝᡥᡝᠨ᠂ `cost.refunded` ᠣᠴᡳ ᠠᠮ᠝ᠪᡠᡥᠠ ᡥᡝᡥᡝᠨ᠉ `metered` ᠮᠣᠳᡝᠯ ᡩᡝ `cost.credits` ᠣᠴᡳ ᡩᡝᡵᡳᠪᡠᡵᡝ ᡩᡝ ᠵᠠᡶᠠᡥᠠ ᡩᡝᡥᡳ ᡥᡝᡥᡝᠨ (`cost.held`); ᠪᠠᡳᡨᠠ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ ᡩᡝ `cost.settled` ᡩᡝᡵᡳ ᡠᠰᡳᡥᠠ ᡳ ᡥᡝᡥᡝᠨ ᠪᡝ ᠰᠠᠪᡠᠮᠪᡳ᠂ ᡶᡠᠨᡩᡝᡥᡝ ᡥᡝᡥᡝᠨ ᠪᡝ `cost.refunded` ᡩᡝ ᠠᠮ᠝ᠪᡠᠮᠪᡳ (ᠰᡳᡨᡝᠯᡝ [ᡠᠰᡳᡥᠠ ᡳ ᠰᠣᠩᡤᠣᡳ ᡥᡝᡥᡝᠨ ᡤᠠᡳᠮᠪᡳ](https://doitong.com/developers/docs/pricing#metered))᠉
- ᡤᡝᡪᡳᠯᡝᠨ ᡶᠠᡳᠯᡝᡩ ᠣᡥᠠ ᡩᡝ᠂ `error` ᠣᠴᡳ `{ "type": …, "code": …, "message": … }`᠉

## ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ ᡥᡡᠯᠠᠮᠪᡳ

```bash
curl "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

- `?wait=N` (20 ᠰᡝᡴᡠᠨᡩ ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ) long-polls: ᡤᡝᡪᡳᠯᡝᠨ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ ᡩᡝ᠂ ᡝᡥᡝ N ᠰᡝᡴᡠᠨᡩ ᡩᡠᠯᡝᡴᡝ ᡩᡝ ᡨᡝᡵᡝ ᡝᡵᡳᠨ ᡳ ᡩᡠᡵᡠᠨ ᠪᡝ ᠵᠠᠪᡠᠮᠪᡳ᠉ ᡝᡵᡝ ᠪᡝ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᠣᠴᡳ ᠪᠠᡳᡨᠠ ᡩᡠᠪᡝᠨ ᠪᡝ ᡝᠯᡳᡝᡵᡝ ᡠᠮᡝᠰᡳ ᠵᠠ ᠠᡵᡤᠠ ᡳᠨᡠ᠉
- `?logs=1` ᠪᠠᡳᡨᠠᠯᠠᡥᠠ ᡩᡝ ᠮᠣᠳᡝᠯ ᡳ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᡩᠠᠩᠰᡝ (ᠠᠮᠠᡤᠠ 50 ᡶᠠᡳᠯᠠ) ᠪᡝ `logs` ᡩᡝ ᠨᠣᠩᡤᡳᠮᠪᡳ᠉

ᠰᡳ ᡩᠠᠮᡠ ᠪᡝᠶᡝᡳ ᡥᠠᡥᠠᡵᡳ ᡳ ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ ᡥᡡᠯᠠᠮᡝ ᠮᡠᡨᡝᠮᠪᡳ; ᡤᡡᠪᠠ id ᠣᠴᡳ `404 request_not_found` ᠣᠮᠪᡳ᠉

## ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ ᡶᠠᡳᠯᠠᠮᠪᡳ

```bash
curl "https://api.doitong.com/v1/requests?limit=20&status=succeeded&model=flux/schnell" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

ᡳᠴᡝ ᠪᡝ ᠵᡠᠯᡝ ᡩᡝ ᠠᡵᠠᠮᠪᡳ᠉ `limit` ᠣᠴᡳ 1 ᠴᡳ 100 (ᠵᡠᠯᡝ ᡨᠣᠨ 20)᠂ `status` ᡝᡥᡝ `model` ᠪᡝ ᠪᠠᡳᡨᠠᠮᡝ ᠰᠣᠩᡤᠣᠮᠪᡳ᠉ ᠵᠠᠪᡠᠨ ᠣᠴᡳ `{ "object": "list", "data": [ … ], "has_more": true, "next_cursor": "req_…" }`; ᠵᡠᠯᡝᡵᡤᡳ ᠠᡶᠠ ᠪᡝ ᠪᠠᡥᠠᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᡩᡝ `cursor=<next_cursor>` ᠪᡝ ᠪᡠᠮᠪᡳ᠉

## ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ ᡥᠠᠯᠠᠮᠪᡳ

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

- ᠮᠣᠳᡝᠯ ᡩᡝᡵᡳᠪᡠᡵᡝ ᡩᡝᡵᡳ ᠵᡠᠯᡝ ᡥᠠᠯᠠᡥᠠ ᠣᠴᡳ: ᡩᡠᡵᡠᠨ `canceled` ᠣᠮᠪᡳ᠂ API ᠵᠠᠯᡤᠠᠨ ᠪᡝ ᠠᠮ᠝ᠪᡠᠮᠪᡳ᠂ ᠰᡳ `200` ᠪᡝ ᠪᠠᡥᠠᠮᠪᡳ᠉
- ᡨᡝ ᠪᠠᠨᠵᡳᠪᡠᠮᡝ ᠪᡳᠰᡳᡵᡝ ᡩᡝ: ᡥᠠᠯᠠᡵᠠ ᡤᡳᠰᡠᠨ ᠪᡝ ᡠᠨᡤᡤᡳᠮᠪᡳ᠂ ᠰᡳ `202` ᡝᡥᡝ `"cancel_requested": true` ᠪᡝ ᠪᠠᡥᠠᠮᠪᡳ᠉ ᠮᠣᠳᡝᠯ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠ ᠣᠴᡳ᠂ ᡤᡝᡪᡳᠯᡝᠨ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᠮᠪᡳ ᡝᡥᡝ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᠮᠪᡳ᠉
- ᡨᡝ ᡩᡠᠪᡝᠨᡩᡝ ᡳᠰᡳᡥᠠᠪᡳ: `409 not_cancelable` (`canceled` ᠣᡥᠠ ᡤᡝᡪᡳᠯᡝᠨ ᠣᠴᡳ ᡩᠠᠮᡠ `200` ᠪᡝ ᠵᠠᠪᡠᠮᠪᡳ)᠉

## ᡤᡝᡪᡳᠯᡝᠨ ᡳ ᡶᡳᠯᡝ ᠪᡝ ᠮᡠᡴᡳᠶᡝᠪᡠᠮᠪᡳ

```bash
curl -X DELETE "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/files" \
  -H "Authorization: Bearer $DOITONG_API_KEY"
```

ᠮᡠᠰᡝᡳ ᠠᠰᠠᡵᠠᡥᠠ ᡤᡝᡪᡳᠯᡝᠨ ᡳ ᠪᡠᠶᡝᠮᡝ ᡶᡳᠯᡝ ᠪᡝ ᡨᡝ ᠮᡠᡴᡳᠶᡝᠪᡠᠮᠪᡳ᠂ ᠰᡠᠯᡠᠨ ᡳ ᡥᡝᡥᡝᠨ ᠪᡝ ᡳᠯᡳᠪᡠᠮᠪᡳ᠉ ᠵᠠᠪᡠᠨ ᠣᠴᡳ `storage.expired: true` ᠪᡳᠰᡳᡵᡝ ᡤᡝᡪᡳᠯᡝᠨ ᠪᠠᡳᡨᠠ ᡳᠨᡠ; URL ᡩᠠᠩᠰᡝ ᡩᡝ ᠪᡳᠰᡳᡵᡝ ᠪᡳᡥᡝ ᠰᡝᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᠮᡝ ᠮᡠᡨᡝᡵᡴᡡ᠉ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᡤᡝᡵᡝᠯᡝᡥᡝ ᡩᡝ ᡥᠠᠯᠠᡵᠠ ᠪᠠ ᠠᡴᡡ (`200`)᠉ `queued` ᡝᡥᡝ `running` ᡩᡠᡵᡠᠨ ᡩᡝ ᠪᡳᠰᡳᡵᡝ ᡤᡝᡪᡳᠯᡝᠨ ᡩᡝ ᡶᡳᠯᡝ ᠠᡴᡡ: `409 request_active`᠉ `models:run` ᠪᠠᡳᡨᠠᠮᠪᡳ᠉

## Idempotency: ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᡵᡴᡡ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᠮᠪᡳ

ᠠᠰᡠ ᡶᠠᡳᡝᡩ ᠣᠮᠪᡳ᠉ ᡶᡝᡴᠰᡳᠪᡠᡵᡝ ᠪᡝ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᡩᡝ᠂ `Idempotency-Key` ᡥᡝᠠᡩᡝᡵ ᠪᡝ ᡠᠨᡤᡤᡳ (255 ᡥᡝᡵᡤᡝᠨ ᡩᡝ ᡳᠰᡳᡨᠠᠯᠠ᠂ ᡝᠮᡠ ᠪᠠᡳᡨᠠ ᡩᡝ ᡝᠮᡠ ᡨᡝᠰᡠ᠂ ᡩᡠᠪᡠᠯᡝᡵᡝ ᡩᡝ ᠰᡳᠨᡳ ᠪᡝᠶᡝᡳ ᠪᠠᡳᡨᠠ ᡳ id):

- ᡝᠮᡠ ᠠᡩᠠᠯᡳ ᠵᡳᡵᡤᠠ ᡝᡥᡝ ᠪᡝᠶᡝ: ᡩᠠ ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ ᠪᠠᡥᠠᠮᠪᡳ (`200`, ᡥᡝᠠᡩᡝᡵ `Idempotent-Replayed: true`), ᡥᡝᡥᡝᠨ ᠪᡝ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᡤᠠᡳᡵᡴᡡ᠉
- ᠮᠣᠳᡝᠯ ᡩᡝ ᡳᠰᡳᡨᡝᠯᡝ ᡶᠠᡳᠯᡝᡩ ᠣᡥᠠ ᡩᡝ (`upstream_error` ᡝᡥᡝ `internal_error`, `insufficient_credits`, `budget_exceeded`, `too_many_inflight`): ᠠᡳᠴᡳ ᠪᠠᠨᠵᡳᠪᡠᡥᠠᠪᡴᡡ ᡝᡥᡝ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᡥᠠᠪᡴᡡ᠂ ᡨᡝᡵᡝ ᡩᡝ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᠪᠠᡳᡨᠠᠯᠠᡵᠠ ᡩᡝ ᡶᠠᡳᠯᡝᡩ ᠪᡝ ᠵᠠᠪᡠᡵᡴᡡ᠂ ᠮᠣᠳᡝᠯ ᠪᡝ ᡩᠠᠪᡴᡠᡵᠯᠠᠮᡝ ᡶᡝᡴᠰᡳᠪᡠᠮᠪᡳ᠉
- ᡝᠮᡠ ᠠᡩᠠᠯᡳ ᠵᡳᡵᡤᠠ ᠪᡳᡥᡝ ᠰᡝᠮᡝ ᠪᡝᠶᡝ ᡝᠨᡩᡝᠪᡠᡥᡝ: `409 idempotency_mismatch`᠉
- ᠵᡳᡵᡤᠠ ᠣᠴᡳ ᡨᡝᡵᡝ ᠪᡝ ᡠᠨᡤᡤᡳᡥᡝ API ᠵᡳᡵᡤᠠ ᡳ ᡩᠣᠯᡤᡳᠶᠠᠨ ᡩᡝ ᠪᡳᠰᡳᡵᡝ ᡳᠨᡠ᠉

## ᡶᡳᠯᡝ ᠠᡳᠪᠠᡩᡝ ᠪᡳᠰᡳᡵᡝ

ᡤᡝᡪᡳᠯᡝᠨ ᠪᡝ `succeeded` ᠰᡝᠮᡝ ᡨᡝᠮᡤᡝᡨᡠᠯᡝᡵᡝ ᡩᡝᡵᡳ ᠵᡠᠯᡝ᠂ ᠪᡠᠶᡝᠮᡝ ᡶᡳᠯᡝ ᡩᡝᡵᡳ ᡤᡝᠮᡠ ᠮᡠᠰᡝᡳ ᠰᡠᠯᡠᠨ ᡩᡝ ᡥᠠᠯᠠᠠᡠᠮᠪᡳ᠂ ᡨᡝᡵᡝ ᡩᡝ `outputs` ᡩᡝᡵᡳ URL ᠣᠴᡳ ᠮᡠᠰᡝᡳ ᠪᡝᠶᡝᡳ ᡥᠣᠰᡨ ᡩᡝ ᠪᡳᠰᡳᡵᡝ ᡩᡝᡵᡳ ᠰᡳ ᡨᡝᡵᡝ ᠪᡝ ᡨᡝᡩᡝᡵᡝ ᠵᠠᠯᡤᠠᠮᡝ ᠮᡠᡨᡝᠮᠪᡳ᠉ ᡠᡩᡠ ᡤᠣᡳᡩᠠᠮᡝ ᠠᠰᠠᡵᠠᡵᠠ ᠪᡝ ᠰᡳ ᠰᠣᠩᡤᠣᠮᠪᡳ:

| ᡩᡠᡵᡠᠨ | ᡠᡩᡠ ᡤᠣᡳᡩᠠᠮᡝ | ᡥᡝᡥᡝᠨ |
|---|---|---|
| `permanent` (ᠵᡠᠯᡝ) | ᠰᡳ ᠮᡠᡴᡳᠶᡝᠪᡠᡨᡝᠯᡝ | GB ᡩᡝᡵᡳ ᡝᠮᡠ ᠪᡳᠶᠠ ᡩᡝ 100 API ᠵᠠᠯᡤᠠᠨ ($0.10)᠂ ᡳᠨᡝᠩᡤᡳ ᡩᡝᡵᡳ API ᠪᠠᠯᠠᠨᠰᡳ ᠴᡳ ᡤᠠᡳᠮᠪᡳ |
| `temporary` | 7 ᡳᠨᡝᠩᡤᡳ᠂ ᡨᡝᡵᡝ ᡩᡝᡵᡳ ᠮᡠᡴᡳᠶᡝᠪᡠᠮᠪᡳ | ᡥᡝᡥᡝᠨ ᠠᡴᡡ |

- ᡳᠴᡝ ᡤᡝᡪᡳᠯᡝᠨ ᡩᡝ ᡥᠠᡥᠠᡵᡳ ᡳ ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ: [dashboard](https://doitong.com/developers/dashboard#balance) ᡩᡝᡵᡳ "ᡥᡡᠯᡤᡠᠨ ᠪᡝ ᡝᠮᡤᡳ ᠮᡠᠰᡝ ᡩᡠᠯᡝᠮᡝ" ᠪᡝ ᡥᠠᠯᠠᠮᠪᡳ᠂ ᡝᡥᡝ `PATCH https://api.doitong.com/v1/account/storage` ᠪᡝ `{"mode": "temporary"}` ᡳ ᡝᠮᡤᡳ ᠪᠠᡳᡨᠠᠮᠪᡳ᠉ `GET https://api.doitong.com/v1/account` ᠪᠠᡳᡨᠠᠯᠠᡥᠠ ᡩᡝ `storage` ᡶᡝᡝᡵᡝᡵᡳ ᠠᠰᠠᡵᠠᡥᠠ ᠪᠠᡳᡨ ᡝᡥᡝ ᠪᡳᠶᠠ ᡳ ᡩᠣᠯᡤᡳᠶᠠᠨ ᠪᡝ ᠰᠠᠪᡠᠮᠪᡳ᠉
- ᡶᡝᡴᠰᡳᠪᡠᡵᡝ ᡩᡝ `?storage=permanent|temporary` (MCP `run` ᠵᠠᡴᡠᠨ ᡳ `storage` ᠵᠠᡴᡠᠨ) ᠪᠠᡳᡨᠠᠯᠠᡥᠠ ᡩᡝ ᡨᡝᡵᡝ ᠮᡠᡩᠠᠨ ᡩᡝ ᡨᡝᡵᡝ ᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ᠉
- ᡨᠣᡴᡨᠣᠪᡠᡥᠠ ᠪᡝ ᡥᠠᠯᠠᡥᠠ ᡩᡝ ᡶᡝ ᡶᡳᠯᡝ ᠪᡝ ᡥᠠᠯᠠᡵᡴᡡ; ᡨᡝᡵᡝ ᠪᡝ [`DELETE /requests/{id}/files`](#delete-files) ᡳ ᡝᠮᡤᡳ ᠮᡠᡴᡳᠶᡝᠪᡠ᠉
- API ᠪᠠᠯᠠᠨᠰᡳ ᠰᡠᠯᡠᠨ ᡳ ᡥᡝᡥᡝᠨ ᠪᡝ ᠪᡠᠮᡝ ᠮᡠᡨᡝᠮᡝ ᠮᡠᡨᡝᡵᡴᡡ ᡩᡝ᠂ ᡥᡝᡥᡝᠨ ᠪᡝ ᡤᠠᡳᡵᡴᡡ ᡝᡥᡝ ᡝᠮᡠ ᡝ-ᠮᠠᡳᠯ ᠪᡝ ᡠᠨᡤᡤᡳᠮᠪᡳ: 30 ᡳᠨᡝᠩᡤᡳ ᡳ ᡩᠣᠯᡤᡳᠶᠠᠨ ᠡᠮᡠᠯᡝ᠂ ᡝᡥᡝ ᠠᠰᠠᡵᠠᡥᠠ ᡶᡳᠯᡝ ᠣᠴᡳ temporary ᠣᠮᠪᡳ᠂ 7 ᡳᠨᡝᠩᡤᡳ ᡩᡠᠯᡝᡴᡝ ᡩᡝ ᠮᡠᡴᡳᠶᡝᠪᡠᠮᠪᡳ᠉

ᠮᡠᠰᡝᡳ ᡥᠠᠯᠠᠠᡠᡵᡝ ᠪᠠᡳᡨᠠ ᡶᠠᡳᠯᡝᡩ ᠣᡥᠠ ᡩᡝ᠂ ᡩᠠᠩᠰᡝ ᡩᡝ `"stored": false` ᠪᡳ᠂ URL ᠣᠴᡳ ᡩᠠ ᠪᡳᠰᡳᡵᡝ ᡶᠣᡥᠣᠨ ᡝᡵᡳᠨ ᡳ ᠪᠠᠪᡝ ᠪᠠᡳᡨᠠᠮᠪᡳ: ᡠᡨᡥᠠᡳ ᠪᠠᡥᠠᠮᡝ ᡤᠠᡳ᠉
