spicyapiDocumentación
Referencia
Contenido principal

OpenAPI e índice de endpoints

Contrato OpenAPI 3.1 descargable, todos los endpoints públicos y sus guías, encabezados de solicitud compartidos y origen de producción.

El contrato público legible por máquinas está disponible en OpenAPI 3.1 YAML. Úsalo para generar un cliente o validar tu integración con los endpoints públicos actuales.

Origen de la API de producción

https://api.spicyapi.ai es el único origen de producción declarado en servers[0].url de OpenAPI. Las API de tareas usan /api/v1; la compatibilidad de protocolos usa /v1 y /v1beta.

Estas API de la plataforma permiten seleccionar modelos, calcular estimaciones y supervisar el gasto sin abrir la consola. El catálogo de modelos incluye los precios de tu cuenta; utiliza una cotización para las entradas exactas cuando el precio dependa de los parámetros. El historial de tareas y el uso se limitan a la clave de API con la que haces la llamada. La creación y rotación de claves y la configuración de presupuestos siguen realizándose en la consola. Cada tabla enlaza a la guía que explica el endpoint completo.

Descubrimiento de modelos, precios y API de cuenta

MétodoRutaFinalidadGuía
GET/console/v1/catalog/modelsCatálogo público para evaluar modelos: sin clave de API, con precios estándar y límite de solicitudes por dirección de origenInicio rápido
GET/api/v1/modelsConsultar modelos que pueden ejecutarse, precios de cuenta y esquemas opcionalesCatálogo de modelos
GET/api/v1/models/{model}Consultar un modelo y su JSON Schema completoCatálogo de modelos
POST/api/v1/jobs/quoteCotizar la solicitud exacta durante cinco minutos sin crear una tarea ni retener fondosCotizaciones
GET/api/v1/chat/creditConsultar el saldo disponible, retenido y totalFacturación
GET/api/v1/usageConsultar llamadas de la clave actual y gasto liquidado en USD por fecha y modeloFacturación

API de generación y tareas

MétodoRutaFinalidadGuía
GET/api/v1/jobsListar el historial de tareas de la clave de API actual con paginación por cursorTareas
POST/api/v1/jobs/createTaskCrear una tarea de generación asíncronaTareas
GET/api/v1/jobs/recordInfoConsultar una tarea creada con la clave de API que hace la llamadaTareas
POST/api/v1/jobs/retryCrear una tarea nueva a partir de una fallida o vencida; los registros históricos cancelados siguen siendo compatiblesAcciones de tareas
POST/api/v1/jobs/purgeDestruir los archivos y el prompt de una tarea finalizada; el registro de facturación no cambiaConservación
POST/api/v1/jobs/streamEjecutar un modelo de texto y transmitir la respuesta por SSETexto y streaming

API de medios

MétodoRutaFinalidadGuía
POST/api/v1/common/upload-urlEmitir una autorización de subida directa de mediosMedios
POST/api/v1/files/{fileId}/commitVerificar y confirmar una subida directa y devolver el URI spicy:// listo para una tareaMedios
POST/api/v1/files/importImportar un archivo de pesos LoRA desde un enlace, con un token de acceso opcional que se usa una sola vez y nunca se guarda; devuelve el URI spicy:// listo para una tareaPesos de adaptador
POST/api/v1/common/download-urlEmitir una URL temporal de descarga de una salida (opcional: las tareas terminadas ya incluyen una)Medios
POST/api/v1/assetsGuardar un archivo en la biblioteca de recursos (Idempotency-Key obligatoria)Medios
GET/api/v1/assetsListar tus recursos guardados (filtros favorite, collectionId, q; orden con sort)Medios
GET/api/v1/assets/usageConsultar el plan, el uso y los límites de la biblioteca de recursosMedios
GET/api/v1/assets/{assetId}Obtener un recurso con un enlace de vista previa privado nuevoMedios
PATCH/api/v1/assets/{assetId}Renombrar un recurso o cambiar su indicador favoriteMedios
DELETE/api/v1/assets/{assetId}Eliminar un recursoMedios
GET/api/v1/assets/entitiesListar los personajes de tu biblioteca de recursos (solo lectura)Medios
GET/api/v1/assets/entities/{entityId}Obtener un personaje con sus imágenes en orden (solo lectura)Medios

Autenticación y formato de respuestas

Todos los endpoints salvo el catálogo público requieren tu clave de API como Authorization: Bearer sk-spicy-…; los endpoints de compatibilidad (/v1, /v1beta) también aceptan x-api-key, enviado por los SDK de Anthropic, y x-goog-api-key, enviado por los SDK de Google GenAI. Nunca se acepta una clave en la cadena de consulta de la URL. Las tareas, los reintentos, las eliminaciones de contenido y los enlaces de descarga solo son visibles para la clave de API que creó la tarea; consulta Autenticación.

Las respuestas JSON de la API de tareas comparten el formato {code,msg,data,request_id}; los endpoints de compatibilidad utilizan los formatos de sus propios protocolos. El resultado de una tarea se expresa en data.state, no en el code del formato externo. Consulta Errores.

Encabezados utilizados en distintos endpoints

EncabezadoSe envía aFinalidad
Authorization: Bearer …Todos salvo el catálogo públicoTu clave de API
Idempotency-Keyjobs/createTask, jobs/retry, jobs/stream, POST /v1/videos y los endpoints de texto de /v1 y /v1betaPermite reenviar con seguridad tras un error de red. En los endpoints de tareas devuelve la tarea original; en los de texto evita un segundo cargo, pero no puede devolver una respuesta perdida. Consulta Idempotencia
X-Spicy-Retentionjobs/createTask, jobs/streamReduce el tiempo de conservación de las salidas y el prompt de esta tarea, en segundos. Consulta Conservación
Accept-LanguageCualquieraIdioma de los mensajes de error; los códigos nunca cambian. Consulta Errores

Uso del archivo OpenAPI

  • Probar solicitudes sin escribir código: importa el archivo OpenAPI enlazado al principio de esta página en un cliente de API como Postman, Insomnia o Bruno y configura tu clave de API como token bearer. Recuerda que crear tareas cuesta dinero.
  • Generar un cliente: proporciona el mismo archivo a un generador de código compatible con OpenAPI 3.1 para tu lenguaje.

Cambios del contrato

  • No guardes los parámetros de los modelos como una copia permanente fijada en el código; lee inputSchema desde /models/{model}.
  • Tolera los campos desconocidos en las respuestas, pero nunca supongas qué campos desconocidos puedes enviar en una solicitud.
  • Utiliza el YAML de OpenAPI para generar código o ejecutar pruebas del contrato antes de publicar.

Endpoints de compatibilidad

MétodoRutaProtocolo
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}Estado del video
GET/v1/videos/{videoId}/contentContenido del video

Los endpoints de texto se explican en Texto y streaming; su facturación se describe en Cotizaciones y compatibilidad.

El paquete oficial de TypeScript es @spicyapi/sdk. Para Python y Go, o si no puedes añadir una dependencia, los clientes de referencia que puedes copiar a continuación llaman a estos endpoints usando únicamente el entorno de ejecución del lenguaje. El cliente de Python gestiona una tarea completa de medios: sube y confirma un archivo de referencia, comprueba el precio mediante una cotización, crea la tarea y consulta su estado hasta que finaliza, lee el resultado tanto si contiene archivos como texto, renueva un enlace de salida vencido, destruye después el contenido almacenado y verifica una firma de webhook. El de Go cubre el mismo proceso, con un contexto en cada llamada y un error tipado que se recupera mediante errors.As. El de TypeScript cubre la creación, el reintento, la consulta del estado y la espera con límite; para las subidas y el resto de los endpoints en Node.js, utiliza el SDK.

Clientes de referencia copiables

Ejemplos sin dependencias para descubrir modelos, crear tareas, reintentar tareas fallidas, consultar todos los estados terminales, limitar la espera y tratar la idempotencia y los errores. Una tarea aceptada no se puede cancelar.

Son ejemplos de documentación, no paquetes npm o PyPI ni módulos Go publicados. Diez minutos es un límite local, no un SLA.

En esta página