Bỏ qua đến nội dung
Bắt đầu

Bắt đầu nhanh

Xem dưới dạng Markdown Đã cập nhật

Chạy lần tạo sinh đầu tiên trong vài phút. Tất cả 1.496 mô hình đều nhận cùng một loại yêu cầu và trả về cùng một đối tượng yêu cầu, cho hình ảnh, video và âm thanh: hãy học một lần tại đây.

1. Nhận khóa API

Tạo khóa tại https://doitong.com/developers/dashboard#keys và lưu khóa trong một biến môi trường: khóa chỉ được hiển thị một lần. Mỗi khóa có thể có ngân sách riêng, vì vậy bạn có thể cấp một khóa cho tác nhân mà không gây rủi ro cho toàn bộ tài khoản. GET /account trả về số dư API của bạn.

export DOITONG_API_KEY="doitong_..."

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

Các lần chạy được thanh toán từ số dư API của tài khoản bằng tín dụng API: 1.000 tín dụng API = 1 $, và mỗi mô hình có đúng mức giá của nhà cung cấp. Nạp tiền tại https://doitong.com/developers/dashboard#balance.

2. Báo giá, rồi chạy

POST /quote/{model_id} nhận JSON đầu vào và trả về mức giá chính xác. Lệnh này không cần khóa và không mất phí. Chạy cùng một đầu vào sẽ mất đúng số đó: báo giá chính là khoản phí. (Ngoại lệ là mô hình tính phí theo mức sử dụng: báo giá là mức tối đa mà lần chạy có thể tốn, phần chưa sử dụng sẽ được hoàn tiền sau khi chạy.)

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 · báo giá
{
  "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"
}

Sau đó gửi cùng nội dung đến POST /run/{model_id}. Thêm ?wait=20 để giữ kết nối tối đa 20 giây: mô hình nhanh sẽ trả về kết quả hoàn tất trong một lượt khứ hồi. Gửi tiêu đề Idempotency-Key để một lần thử lại không bao giờ chạy (hoặc tính phí) trùng lặp.

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

Phản hồi là một đối tượng yêu cầu:

200 OK · yêu cầu
{
  "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. Theo dõi trạng thái

Nếu mô hình vẫn đang xử lý khi hết thời gian chờ, bạn nhận được 202 Accepted cùng id và status hiện tại của yêu cầu. Mọi yêu cầu đều đi qua cùng một vòng đời:

Vòng đời yêu cầu
  1. queued Đã chấp nhận và tính phí, đang chờ worker
  2. running Mô hình đang tạo sinh
  3. Trạng thái cuối:
    • succeededĐã trừ mức giá báo; outputs[] chứa các URL trên bộ nhớ của chúng tôi
    • failedTự động hoàn tiền; lỗi cho biết lý do
    • canceledĐã dừng trước khi có kết quả; đã hoàn tiền

Đọc lại yêu cầu bằng id của nó. ?wait=20 cũng hoạt động ở đây, vì vậy chỉ cần một vòng lặp đơn giản:

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

Khi status là succeeded, outputs[].url chứa các liên kết đến tệp trên hệ thống lưu trữ của chúng tôi. Nếu yêu cầu failed hoặc canceled, tín dụng API sẽ được hoàn tiền tự động và error cho biết lý do. Hủy mọi yêu cầu vẫn đang ở trạng thái queued hoặc running:

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

Đối với các tác vụ video dài, bạn có thể bỏ qua việc thăm dò và thay vào đó truyền webhook_url (xem Webhooks).

4. Tệp

Truyền bất kỳ URL công khai nào làm đầu vào, hoặc yêu cầu POST /files cung cấp URL tải lên, PUT tệp tại đó rồi sử dụng file_url được trả về (xem Files). Một yêu cầu thành công liệt kê kết quả trong outputs[], bao gồm loại, loại nội dung và, khi có, kích thước cùng thời lượng.

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

Lỗi

Mọi mô hình đều gặp lỗi theo cùng một cách: một envelope có type, code chính xác, param gây lỗi và mọi vấn đề trong details, để tác nhân có thể sửa yêu cầu mà không cần đọc phần văn bản mô tả. Yêu cầu không hợp lệ không bị tính phí.

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

Mọi loại và mã lỗi được liệt kê trong Errors.

Định giá

Giá được tính bằng USD và tín dụng API, đồng thời hiển thị trên trang của mỗi mô hình trước khi bạn chạy. Mỗi yêu cầu có cost với credits, usd, charged và refunded. Một lần chạy bị tính phí khi được chấp nhận; các yêu cầu failed và canceled được hoàn tiền tự động. Một số mô hình có giá được tính chính xác từ đầu vào, một số tính theo độ dài hoặc kích thước của tệp bạn gửi, những mô hình khác tính mức giá ước tính cho mỗi lần chạy: trong mọi trường hợp, bạn trả đúng theo báo giá. Một vài mô hình (mô hình ngôn ngữ và thị giác, giọng nói, công cụ tính theo thời gian xử lý) tính phí theo mức sử dụng: báo giá là mức tối đa mà lần chạy có thể tốn, phần lần chạy không sử dụng sẽ được hoàn tiền tự động. Xem Pricing.

MCP và tác nhân AI

Kết nối mọi ứng dụng khách MCP với https://api.doitong.com/v1/mcp bằng cùng khóa Bearer. Tác nhân của bạn có thể tìm kiếm danh mục, báo giá và chạy mô hình, đồng thời đọc mọi trang tài liệu dưới dạng Markdown.

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

Bước tiếp theo