KusArt
    Консоль B2B API

    Создавайте и тестируйте API генерации KusArt в одном месте

    Изучите доступные интерфейсы B2B-задач, обязательные параметры, структуру ответов, примеры curl, списание средств, опрос статуса и доставку вебхуков.

    Управление API-ключами
    Основы интеграции

    Аутентификация

    Все B2B-маршруты используют заголовок X-API-Key. Веб-токены Firebase для них не нужны.

    Оплата

    Старые ключи с billing_account_id используют отдельный кредитный счёт. Новые ключи пользователя резервируют средства из его общего баланса кредитов.

    Структура ответа

    Ответы для бизнеса используют code/message/data. При бизнес-ошибках HTTP-статус всё равно может быть 200.

    Полный процесс вызова

    Как связаны создание задачи, резервирование кредитов, опрос статуса, результаты и вебхуки.

    1

    Создание

    Партнёр отправляет X-API-Key и параметры задачи на B2B-эндпоинт создания.

    2

    Аутентификация

    Сервер проверяет API-ключ и определяет владельца, а при наличии — платёжный счёт.

    3

    Резервирование кредитов

    Обработчик рассчитывает стоимость и резервирует кредиты с отдельного счёта или общего баланса пользователя.

    4

    Выполнение

    Выбранный обработчик вызывает внутреннюю или внешнюю функцию генерации и сохраняет результат задачи.

    5

    Получение результата

    Партнёр опрашивает /tasks/get или /tasks/get_result, пока задача не будет завершена или не завершится ошибкой.

    6

    Вебхук

    Если webhook_url поддерживается и указан, сервер отправляет итоговые данные задачи методом POST и завершает расчёт кредитов.

    Заголовок авторизации
    Передавайте исходный API-ключ непосредственно в X-API-Key.
    X-API-Key: ak_xxx
    Резервирование кредитов
    Для B2B-задач кредиты резервируются до выполнения.
    Если к API-ключу привязан платёжный счёт, кредиты резервируются на нём. Иначе используются доступные кредитные счета пользователя. При недостаточном балансе возвращается код 42002.
    Стандартный ответ
    code = 0 означает успех. Ненулевые коды следует обрабатывать как бизнес-ошибки.
    {
      "code": 0,
      "message": "Success",
      "data": {
        "task_id": "00000000-0000-0000-0000-000000000000",
        "status": "PENDING",
        "queue_position": 2,
        "generation_params": {
          "prompt": "anime engineer debugging an API dashboard",
          "watermark": false
        }
      }
    }
    Ответ при опросе
    Используйте /tasks/get для проверки статуса и прогресса или /tasks/get_result, если нужен только итоговый результат.
    {
      "code": 0,
      "message": "Success",
      "data": {
        "task_id": "00000000-0000-0000-0000-000000000000",
        "task_type": "API_TEXT_TO_IMAGE_GPT_IMAGE_2",
        "status": "COMPLETED",
        "result": {
          "images": [
            {
              "display_url": "https://cdn.kusa.pics/generated/example.png",
              "width": 1024,
              "height": 1024,
              "index": 0
            }
          ],
          "image_count": 1
        }
      }
    }
    Данные вебхука
    После завершения или ошибки вебхук отправляет JSON на ваш URL. Сервер делает не более 3 попыток.
    {
      "code": 0,
      "data": {
        "task_id": "00000000-0000-0000-0000-000000000000",
        "status": "COMPLETED",
        "result": {
          "images": [
            {
              "display_url": "https://cdn.kusa.pics/generated/example.png",
              "width": 1024,
              "height": 1024,
              "index": 0
            }
          ]
        }
      }
    }
    Распространённые бизнес-коды
    Код в ответе API — стабильный контракт интеграции; не полагайтесь только на HTTP-статус.
    0

    Успешно

    Запрос принят или данные успешно возвращены.

    40000

    Недопустимые параметры

    Некорректны тело JSON, параметры задачи, файлы или URL.

    40100

    Нет авторизации

    Контекст аутентификации отсутствует или недействителен.

    42002

    Недостаточный баланс

    У API-ключа или пользователя недостаточно доступных кредитов для резервирования стоимости задачи.