spicyapiДокументация
Справочник
Основное содержимое

OpenAPI и указатель эндпоинтов

Контракт OpenAPI 3.1, все публичные эндпоинты и руководства, общие заголовки запросов и адрес производственного API.

Машиночитаемый публичный контракт доступен как OpenAPI 3.1 YAML. Используйте его для создания клиента или проверки интеграции по действующим публичным эндпоинтам.

Адрес производственного API

https://api.spicyapi.ai — единственный производственный адрес в OpenAPI servers[0].url. API задач использует /api/v1, совместимые протоколы — /v1 и /v1beta.

Эти API позволяют выбирать модель, оценивать стоимость и отслеживать расходы без консоли. Каталог включает цены аккаунта; при зависимости цены от параметров рассчитывайте точный ввод. История задач и использование ограничены вызывающим API-ключом. Создание, ротация ключей и бюджеты остаются в консоли. Каждая таблица ссылается на полное руководство эндпоинта.

Поиск моделей, цены и API аккаунта

МетодПутьНазначениеРуководство
GET/console/v1/catalog/modelsПубличный каталог оценки: без ключа, стандартные цены, ограничение по адресу источникаБыстрый старт
GET/api/v1/modelsДоступные для вызова модели, цены аккаунта и дополнительные схемыКаталог моделей
GET/api/v1/models/{model}Одна модель с полной JSON SchemaКаталог моделей
POST/api/v1/jobs/quoteРасчёт точного запроса на пять минут без задачи и резервирования средствРасчёт цены
GET/api/v1/chat/creditДоступный, зарезервированный и общий балансОплата
GET/api/v1/usageВызовы текущего ключа и рассчитанные расходы USD по дате и моделиОплата

API генерации и задач

МетодПутьНазначениеРуководство
GET/api/v1/jobsИстория задач текущего ключа с курсорной пагинациейЗадачи
POST/api/v1/jobs/createTaskСоздание асинхронной задачи генерацииЗадачи
GET/api/v1/jobs/recordInfoЧтение задачи, созданной вызывающим ключомЗадачи
POST/api/v1/jobs/retryНовая задача из неудачной или истёкшей; исторические отменённые совместимыДействия задач
POST/api/v1/jobs/purgeУничтожение файлов и промпта терминальной задачи без изменения оплатыХранение
POST/api/v1/jobs/streamЗапуск текстовой модели с потоком SSEТекст и поток

API медиа

МетодПутьНазначениеРуководство
POST/api/v1/common/upload-urlПолучение разрешения прямой загрузки медиаМедиа
POST/api/v1/files/{fileId}/commitПроверка и подтверждение загрузки с возвращением готового для задачи URI spicy://Медиа
POST/api/v1/files/importИмпорт файла весов LoRA по ссылке с необязательным токеном доступа, который используется один раз и не сохраняется; возвращает готовый для задачи URI spicy://Веса адаптера
POST/api/v1/common/download-urlКороткоживущий URL результата (необязательно: завершённая задача уже содержит его)Медиа
POST/api/v1/assetsСохранить файл в библиотеку ассетов (Idempotency-Key обязателен)Медиа
GET/api/v1/assetsСписок сохранённых ассетов (фильтры favorite, collectionId, q; сортировка sort)Медиа
GET/api/v1/assets/usageТариф, использование и лимиты библиотеки ассетовМедиа
GET/api/v1/assets/{assetId}Получить один ассет с новой приватной ссылкой предпросмотраМедиа
PATCH/api/v1/assets/{assetId}Переименовать ассет или изменить флаг favoriteМедиа
DELETE/api/v1/assets/{assetId}Удалить ассетМедиа
GET/api/v1/assets/entitiesСписок персонажей в библиотеке ассетов (только чтение)Медиа
GET/api/v1/assets/entities/{entityId}Один персонаж с изображениями по порядку (только чтение)Медиа

Аутентификация и оболочки ответов

Все эндпоинты кроме публичного каталога требуют ключ в Authorization: Bearer sk-spicy-…; совместимые (/v1, /v1beta) также принимают x-api-key SDK Anthropic и x-goog-api-key SDK Google GenAI. Ключ в строке URL никогда не принимается. Задачи, повторы, уничтожение и ссылки доступны только создавшему задачу ключу; см. Аутентификация.

JSON API задач имеет общую оболочку {code,msg,data,request_id}; совместимые эндпоинты используют собственные протоколы. Итог задачи выражен data.state, а не внешним code. См. Ошибки.

Общие заголовки запросов

ЗаголовокКуда отправляетсяНазначение
Authorization: Bearer …Всё кроме публичного каталогаВаш API-ключ
Idempotency-Keyjobs/createTask, jobs/retry, jobs/stream, POST /v1/videos и текстовые эндпоинты /v1 и /v1betaБезопасный повтор после сетевой ошибки. Задачи возвращают исходную задачу; текст предотвращает второе списание, но не возвращает потерянный ответ. См. Идемпотентность
X-Spicy-Retentionjobs/createTask, jobs/streamСокращает хранение результатов и промпта этой задачи в секундах. См. Хранение
Accept-LanguageЛюбойЯзык ошибок; коды неизменны. См. Ошибки

Использование OpenAPI

  • Пробуйте запросы без кода: импортируйте файл OpenAPI сверху страницы в Postman, Insomnia или Bruno и задайте bearer token своим ключом. Помните, создание задач платное.
  • Создайте клиента: передайте тот же файл генератору OpenAPI 3.1 своего языка.

Изменения контракта

  • Не храните параметры моделей постоянным жёстким снимком; читайте inputSchema из /models/{model}.
  • Допускайте неизвестные поля ответа, но не угадывайте поля запроса.
  • До выпуска включайте OpenAPI YAML в создание кода или контрактные тесты.

Совместимые эндпоинты

МетодПутьПротокол
GET/v1/modelsModels
POST/v1/chat/completionsChat Completions
POST/v1/responsesResponses
POST/v1/messagesMessages
POST/v1beta/models/{model}:generateContentGemini generateContent
POST/v1beta/models/{model}:streamGenerateContentGemini streamGenerateContent
POST/v1/videosVideos
GET/v1/videos/{videoId}Состояние видео
GET/v1/videos/{videoId}/contentСодержимое видео

Текстовые эндпоинты описаны в Текст и поток, оплата — в Расчёт и совместимость.

Официальный пакет TypeScript — @spicyapi/sdk. Для Python и Go или без дополнительной зависимости приведённые ниже копируемые эталонные клиенты вызывают эндпоинты только средствами языка. Python выполняет весь медиапроцесс: загружает и подтверждает референс, проверяет цену расчётом, создаёт задачу и опрашивает до терминального состояния, читает файлы или текст, обновляет истёкшую ссылку, уничтожает содержимое и проверяет подпись webhook. Go охватывает тот же пайплайн с context каждого вызова и типизированной ошибкой для errors.As. TypeScript предоставляет создание, повтор, чтение и ограниченное ожидание; для загрузок и остального API Node.js используйте SDK.

Копируемые эталонные клиенты

Примеры без сторонних зависимостей: поиск моделей, создание задач, повторный запуск завершившихся ошибкой задач, чтение всех конечных состояний, ограниченное ожидание, идемпотентность и ошибки. Принятую задачу отменить нельзя.

Это примеры документации, а не опубликованные пакеты npm и PyPI или модули Go. Десять минут — локальный предел, не производственный SLA.

На этой странице