Перейти к содержимому
Начало работы

Быстрый старт

Просмотреть как Markdown Обновлено

Запустите первую генерацию за несколько минут. Все 1 496 моделей принимают запрос одного типа и возвращают один и тот же объект запроса для изображений, видео и аудио: изучите его здесь один раз.

1. Получите API-ключ

Создайте ключ на странице https://doitong.com/developers/dashboard#keys и сохраните его в переменной окружения: он показывается только один раз. Для каждого ключа можно задать собственный бюджет, поэтому его можно передать агенту, не рискуя всем аккаунтом. GET /account возвращает ваш баланс API.

export DOITONG_API_KEY="doitong_..."

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

Запуски оплачиваются из баланса API вашего аккаунта в API-кредитах: 1 000 API-кредитов = 1 $, при этом каждая модель стоит ровно столько, сколько установил её разработчик. Пополните баланс на странице https://doitong.ru/developers/dashboard#balance.

2. Сначала узнайте цену, затем запустите

POST /quote/{model_id} принимает входные данные в формате JSON и возвращает точную цену. Ключ не нужен, плата не взимается. Запуск с теми же входными данными стоит ровно столько: цена из ответа — это сумма списания. (Исключение — модель с оплатой по использованию: её цена в ответе — максимальная стоимость запуска, а неиспользованная часть возвращается после запуска.)

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 · цена
{
  "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"
}

Затем отправьте то же тело запроса на POST /run/{model_id}. Добавьте ?wait=20, чтобы удерживать соединение до 20 секунд: быстрая модель вернёт готовый результат за один обмен данными. Отправляйте заголовок Idempotency-Key, чтобы повторный запрос никогда не запускал модель (и не списывал средства) дважды.

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

Ответом будет объект запроса:

200 OK · запрос
{
  "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. Отслеживайте статус

Если модель всё ещё работает по истечении времени ожидания, вы получите 202 Accepted с id запроса и его текущим status. Каждый запрос проходит один и тот же жизненный цикл:

Жизненный цикл запроса
  1. queued Принят и оплачен, ожидает обработчика
  2. running Модель генерирует результат
  3. Итоговые статусы:
    • succeededЦитата списана; outputs[] содержит URL в нашем хранилище
    • failedСредства возвращены автоматически; ошибка объясняет причину
    • canceledОстановлен до получения результата; средства возвращены

Снова прочитайте запрос по его идентификатору. Здесь также работает ?wait=20, поэтому достаточно простого цикла:

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

Когда status имеет значение succeeded, в outputs[].url находятся ссылки на файлы в нашем хранилище. Если запрос завершился со статусом failed или canceled, API-кредиты автоматически возвращаются, а в error указана причина. Отмените всё, что ещё находится в статусе queued или running:

терминал
curl -X POST "https://api.doitong.ru/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Для длительных задач обработки видео можно не выполнять опрос и вместо этого передать webhook_url (см. раздел Вебхуки).

4. Файлы

Передайте любой общедоступный URL в качестве входных данных или запросите URL для загрузки через POST /files, выполните PUT файла по этому URL и используйте возвращённый file_url (см. раздел Файлы). Успешный запрос содержит результаты в outputs[] с указанием типа, типа содержимого и, если известно, размеров и длительности.

терминал
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}'

Ошибки

Каждая модель сообщает об ошибках одинаково: один объект с полями type, точным code, проблемным param и всеми ошибками в details, чтобы агент мог исправить запрос без чтения пояснений. За некорректный запрос ничего не списывается.

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

Все типы и коды перечислены в разделе Ошибки.

Цены

Цены указаны в USD и API-кредитах и отображаются на странице каждой модели до запуска. Каждый запрос содержит cost с полями credits, usd, charged и refunded. Сумма списывается после принятия запуска; для запросов со статусом failed и canceled средства автоматически возвращаются. Для некоторых моделей цена рассчитывается точно по входным данным, для некоторых — по длине или размеру отправленных файлов, а другие используют расчётную цену за запуск: в любом случае вы платите сумму из ответа. Некоторые модели (языковые и модели компьютерного зрения, голосовые инструменты и инструменты обработки) оплачиваются по использованию: цена в ответе — максимальная стоимость запуска, а неиспользованная часть автоматически возвращается. См. раздел Цены.

MCP и агенты ИИ

Подключите любой MCP-клиент к https://api.doitong.ru/v1/mcp, используя тот же Bearer-ключ. Ваш агент сможет искать в каталоге, узнавать цены и запускать модели, а также читать все страницы документации в формате Markdown.

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

Следующие шаги

  • Просмотрите все модели. На каждой странице есть конструктор запросов, который напишет код за вас.
  • Изучите жизненный цикл запроса: Запросы.
  • Используйте одинаковые имена параметров для всех моделей: Параметры.
  • Работаете с агентом ИИ для написания кода? Передайте ему https://doitong.com/developers/llms.txt или подключите MCP-сервер.