Быстрый старт
От ключа API до асинхронных задач, webhook и загрузки результата.
SpicyAPI предоставляет асинхронные задачи для изображений и видео, а также генерацию текста через /v1/chat/completions с полным ответом или потоковой передачей. Первый результат можно получить за три шага.
GET /api/v1/models?includeSchema=1&includeExamples=1
# choose an item where enabled && available
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: render-001" \
-d '{
"model": "MODEL_ID_FROM_CATALOG",
"input": { "prompt": "a folded paper lantern, hard side light" }
}'Отправка и ожидание через SDK
client.run(payload, options) объединяет отправку задачи и ожидание результата в один вызов функции. Внутри по-прежнему выполняется несколько HTTP-запросов. Интервал опроса по умолчанию растёт примерно с 2 до 10 секунд. В рабочей среде отдавайте предпочтение webhook и используйте готовые output.assets[].url напрямую.
1. Создайте ключ API
Создайте ключ в консоли и храните его на сервере в переменной SPICY_API_KEY. Не встраивайте ключ в браузер, мобильное приложение или открытый репозиторий.
2. Создайте задачу
Передайте model и input в POST /api/v1/jobs/createTask. Полученный data.taskId используется для проверки состояния, повтора и загрузки результата. Принятую задачу отменить нельзя.
3. Получите результат
В продакшене используйте webhook как основной канал, а GET /api/v1/jobs/recordInfo — как резервный опрос. Генерация успешна, только если data.state равно succeeded.
Скачивайте готовый файл напрямую по output.assets[].url, без API-ключа. Срок expiresAt обычно составляет 20 минут и не выходит за пределы 14 дней хранения. Повторный опрос обновит ссылку; download-url необязателен.
Полные определения полей приведены в контракте OpenAPI 3.1.

