Храните API-ключ на сервере
Не раскрывайте ключ в браузере, мобильной сборке, промпте, журнале или ответе агента. Отправляйте запросы из бэкенда под своим контролем.
Интеграции
Для чата и ролевых диалогов используйте OpenAI-совместимые вызовы, для изображений, видео и аудио — API задач. Выберите модель, храните ключ на сервере и перейдите к подходящему способу получения результата.
Выберите способ
Начните там, где вы уже работаете. Любым способом вы получаете те же модели по тем же ценам.
Быстрый старт за 5 минут
Создайте задачу, сохраните её ID и заберите готовый файл. Та же схема работает для любой модели изображений, видео и аудио.
Сравнить задачу, входные данные, политику, текущую доступность и цену.
Замените ID модели и input из примера на точные поля со страницы этой модели. Не угадывайте параметры по другой модели.
HTTP 202 означает, что задача принята, а не что генерация завершена; бизнес-код в конверте ответа по-прежнему code: 200. Сразу сохраните data.taskId; estimatedCost — сумма, зарезервированная под эту задачу.
queued и running ещё выполняются; succeeded, failed и expired — конечные состояния. Останавливайте опрос на любом конечном состоянии, а не ждите только успеха.
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: order-8814-render-1" \
-d '{
"model": "alibaba/z-image-turbo/text-to-image",
"input": { "prompt": "A ceramic teapot on a linen cloth, soft window light" }
}'alibaba/z-image-turbo/text-to-image — реальный эндпоинт генерации изображения из текста. Для другой медиамодели используйте её точный ID и схему.
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}Сокращённый пример ответа. Замените условные ID и URL значениями из своего ответа.
curl 'https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=job_01k...' \
-H "Authorization: Bearer $SPICY_API_KEY"{
"code": 200,
"data": {
"taskId": "job_01k...",
"state": "succeeded",
"output": {
"assets": [{
"key": "tasks/.../output.png",
"url": "https://example.com/result.png?signature=FROM_RESPONSE",
"expiresAt": "2026-10-07T12:20:00Z",
"mime": "image/png"
}]
},
"settled": true
}
}Сокращённый пример ответа. Замените условные ID и URL значениями из своего ответа.
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"Скачивайте data.output.assets[0].url напрямую, без API-ключа. URL обычно действует 20 минут; повторно запросите задачу для новой ссылки и сохраните нужные файлы в своём хранилище. При pending повторяйте запрос, пока URL не будет готов.
Каталог
Выберите инструмент, которым вы уже пользуетесь. Каждая карточка ведёт к руководству по настройке.
Безопасность сервера
Эти три правила закрывают утечку ключа, двойное списание и потерю задачи. Это минимум перед запуском.
Не раскрывайте ключ в браузере, мобильной сборке, промпте, журнале или ответе агента. Отправляйте запросы из бэкенда под своим контролем.
На каждое создание задачи отправляйте стабильный Idempotency-Key. Если результат сети неясен, повторяйте ту же работу с тем же ключом, чтобы не появилось двух оплачиваемых задач.
Сохраните taskId и используйте подписанный webhook или ограниченные проверки статуса. Принятая задача запускается и не может быть отменена. Неудачные задачи и задачи с истёкшим сроком обычно не оплачиваются. Некоторые модели взимают плату за отказ по содержанию, как указано на странице модели; проверьте эти условия до отправки.
Документация API