Langkau ke kandungan
Bermula

Panduan ringkas

Lihat sebagai Markdown Dikemas kini

Jalankan penjanaan pertama anda dalam beberapa minit. Kesemua 1,496 model menerima jenis permintaan yang sama dan mengembalikan objek permintaan yang sama untuk imej, video dan audio: pelajarinya sekali di sini.

1. Dapatkan kunci API

Cipta kunci di https://doitong.com/developers/dashboard#keys dan simpan dalam pemboleh ubah persekitaran: kunci itu hanya dipaparkan sekali. Setiap kunci boleh mempunyai belanjawannya sendiri, jadi anda boleh memberikannya kepada ejen tanpa mempertaruhkan seluruh akaun. GET /account mengembalikan baki API anda.

export DOITONG_API_KEY="doitong_..."

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

Penjanaan dibayar daripada baki API akaun anda dalam kredit API: 1,000 kredit API = $1, dan setiap model berharga tepat seperti harga pembuatnya. Tambah nilai di https://doitong.com/developers/dashboard#balance.

2. Dapatkan sebut harga, kemudian jalankan

POST /quote/{model_id} menerima JSON input dan mengembalikan harga tepat. Ia tidak memerlukan kunci dan tidak berharga apa-apa. Menjalankan input yang sama menelan kos tepat seperti itu: sebut harga ialah cajnya. (Model yang dicaj mengikut penggunaan ialah pengecualian: sebut harganya ialah kos maksimum penjanaan, dan bahagian yang tidak digunakan dibayar balik selepas penjanaan.)

curl -X POST "https://api.doitong.com/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}'
200 OK · sebut harga
{
  "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"
}

Kemudian hantar isi yang sama kepada POST /run/{model_id}. Tambahkan ?wait=20 untuk mengekalkan sambungan sehingga 20 saat: model yang pantas mengembalikan hasil yang telah selesai dalam satu pusingan pergi balik. Hantar pengepala Idempotency-Key supaya percubaan semula tidak menjalankan (atau mencaj) dua kali.

curl -X POST "https://api.doitong.com/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"}'

Responsnya ialah objek permintaan:

200 OK · permintaan
{
  "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. Ikuti status

Jika model masih berfungsi apabila tempoh menunggu tamat, anda menerima 202 Accepted dengan id permintaan dan status semasanya. Setiap permintaan melalui kitar hayat yang sama:

Kitar hayat permintaan
  1. queued Diterima dan dicaj, menunggu pekerja
  2. running Model sedang menjana
  3. Status akhir:
    • succeededHarga yang disebut telah dicaj; outputs[] mengandungi URL pada storan kami
    • failedDipulangkan secara automatik; ralat menerangkan sebabnya
    • canceledDihentikan sebelum hasil tersedia; bayaran dipulangkan

Baca semula permintaan menggunakan idnya. ?wait=20 juga berfungsi di sini, jadi gelung mudah sudah memadai:

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

Apabila status ialah succeeded, outputs[].url mengandungi pautan kepada fail pada storan kami. Jika permintaan failed atau canceled, kredit API-nya dibayar balik secara automatik dan error menyatakan sebabnya. Batalkan apa-apa yang masih queued atau running:

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

Untuk kerja video yang panjang, anda boleh melangkau tinjauan berkala dan sebaliknya menghantar webhook_url (lihat Webhook).

4. Fail

Hantar sebarang URL awam sebagai input, atau minta URL muat naik daripada POST /files, PUT fail itu di sana dan gunakan file_url yang dikembalikan (lihat Fail). Permintaan yang berjaya menyenaraikan hasilnya dalam outputs[] bersama jenis, jenis kandungan dan, jika diketahui, dimensi serta tempoh.

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

Ralat

Setiap model gagal dengan cara yang sama: satu sampul dengan type, code yang tepat, param yang bermasalah dan setiap masalah dalam details, supaya ejen boleh membetulkan permintaan tanpa membaca prosa. Tiada caj dikenakan untuk permintaan yang tidak sah.

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"
  }
}

Setiap jenis dan kod disenaraikan dalam Ralat.

Harga

Harga adalah dalam USD dan kredit API serta dipaparkan pada setiap halaman model sebelum anda menjalankannya. Setiap permintaan membawa cost dengan credits, usd, charged dan refunded. Penjanaan dicaj apabila diterima; permintaan failed dan canceled dibayar balik secara automatik. Sesetengah model berharga tepat berdasarkan input, sesetengahnya berdasarkan panjang atau saiz fail yang anda hantar, manakala yang lain mengenakan anggaran harga setiap penjanaan: apa jua caranya, sebut harga ialah jumlah yang anda bayar. Beberapa model (model bahasa dan penglihatan, suara, alat masa pemprosesan) dicaj mengikut penggunaan: sebut harganya ialah kos maksimum penjanaan, dan bahagian yang tidak digunakan oleh penjanaan dibayar balik secara automatik. Lihat Harga.

MCP dan ejen AI

Sambungkan mana-mana klien MCP kepada https://api.doitong.com/v1/mcp dengan kunci Bearer yang sama. Ejen anda boleh mencari katalog, mendapatkan sebut harga dan menjalankan model, serta membaca setiap halaman dokumentasi sebagai Markdown.

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

Langkah seterusnya