Lompat ke konten
Memulai

Mulai Cepat

Lihat sebagai Markdown Diperbarui

Jalankan pembuatan pertama Anda dalam beberapa menit. Semua 1.496 model menerima jenis permintaan yang sama dan mengembalikan objek permintaan yang sama, untuk gambar, video, dan audio: pelajari sekali di sini.

1. Dapatkan kunci API

Buat kunci di https://doitong.com/developers/dashboard#keys dan simpan dalam variabel lingkungan: kunci hanya ditampilkan sekali. Setiap kunci dapat memiliki anggarannya sendiri, sehingga Anda dapat memberikannya kepada agen tanpa mempertaruhkan seluruh akun. GET /account mengembalikan saldo API Anda.

export DOITONG_API_KEY="doitong_..."

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

Pembuatan dibayar dari saldo API akun Anda dalam kredit API: 1.000 kredit API = $1, dan setiap model dikenai harga pembuatnya secara tepat. Isi ulang di https://doitong.ru/developers/dashboard#balance.

2. Dapatkan penawaran harga, lalu jalankan

POST /quote/{model_id} menerima JSON input dan mengembalikan harga yang tepat. Endpoint ini tidak memerlukan kunci dan tidak dikenai biaya. Menjalankan input yang sama dikenai biaya tepat sebesar itu: penawaran harga adalah biaya yang dibayarkan. (Model yang dikenai biaya berdasarkan penggunaan adalah pengecualian: penawaran harganya adalah biaya maksimum yang mungkin dikenakan, dan bagian yang tidak digunakan dikembalikan dana setelah pembuatan selesai.)

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}'
200 OK · penawaran 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 kirim body yang sama ke POST /run/{model_id}. Tambahkan ?wait=20 untuk menahan koneksi hingga 20 detik: model yang cepat mengembalikan hasil selesai dalam satu perjalanan pulang-pergi. Kirim header Idempotency-Key agar percobaan ulang tidak pernah menjalankan (atau menagih) dua kali.

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

Responsnya adalah 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 statusnya

Jika model masih bekerja saat waktu tunggu berakhir, Anda mendapatkan 202 Accepted dengan id permintaan dan status saat ini. Setiap permintaan melewati siklus hidup yang sama:

Siklus hidup permintaan
  1. queued Diterima dan ditagihkan, menunggu worker
  2. running Model sedang menghasilkan output
  3. Status akhir:
    • succeededQuote ditagihkan; outputs[] berisi URL di penyimpanan kami
    • failedDana dikembalikan otomatis; error menjelaskan penyebabnya
    • canceledDihentikan sebelum ada hasil; dana dikembalikan

Baca kembali permintaan menggunakan id-nya. ?wait=20 juga berfungsi di sini, sehingga loop sederhana sudah cukup:

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

Saat status adalah succeeded, outputs[].url berisi tautan ke file di penyimpanan kami. Jika permintaan failed atau canceled, kredit API-nya dikembalikan secara otomatis dan error menjelaskan alasannya. Batalkan apa pun yang masih queued atau running:

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

Untuk pekerjaan video yang lama, Anda dapat melewati polling dan mengirim webhook_url sebagai gantinya (lihat Webhooks).

4. File

Kirim URL publik apa pun sebagai input, atau minta URL unggahan dari POST /files, lakukan PUT file ke URL tersebut dan gunakan file_url yang dikembalikan (lihat Files). Permintaan yang berhasil mencantumkan hasilnya di outputs[] dengan type, content type, serta dimensi dan durasi jika diketahui.

terminal
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}'

Error

Setiap model gagal dengan cara yang sama: satu envelope dengan type, code yang tepat, param yang bermasalah, dan setiap masalah di details, sehingga agen dapat memperbaiki permintaan tanpa membaca uraian. Permintaan yang tidak valid tidak dikenai biaya.

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 type dan code tercantum di Errors.

Harga

Harga dalam USD dan kredit API, serta ditampilkan di setiap halaman model sebelum Anda menjalankan. Setiap permintaan menyertakan cost dengan credits, usd, charged, dan refunded. Pembuatan dikenai biaya saat diterima; permintaan failed dan canceled dikembalikan dananya secara otomatis. Beberapa model menetapkan harga tepat dari input, beberapa berdasarkan panjang atau ukuran file yang Anda kirim, dan model lainnya mengenakan perkiraan harga per pembuatan: bagaimanapun juga, penawaran harga adalah jumlah yang Anda bayar. Beberapa model (model bahasa dan visi, alat suara, alat waktu pemrosesan) dikenai biaya berdasarkan penggunaan: penawaran harga adalah biaya maksimum yang mungkin dikenakan, dan bagian yang tidak digunakan dikembalikan dananya secara otomatis. Lihat Pricing.

MCP dan agen AI

Hubungkan klien MCP apa pun ke https://api.doitong.ru/v1/mcp dengan kunci Bearer yang sama. Agen Anda dapat mencari katalog, mendapatkan penawaran harga dan menjalankan model, serta membaca setiap halaman dokumentasi sebagai Markdown.

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

Langkah berikutnya