spicyapiDocumentação
Referência
Conteúdo principal

OpenAPI e índice de endpoints

Contrato OpenAPI 3.1 para download, todos os endpoints públicos com seus guias, cabeçalhos compartilhados e endereço de produção.

O contrato público legível por máquina está disponível em OpenAPI 3.1 YAML. Use-o para gerar um cliente ou validar sua integração com os endpoints públicos atuais.

Endereço da API de produção

https://api.spicyapi.ai é o único endereço de produção declarado em servers[0].url no OpenAPI. As APIs de tarefas usam /api/v1; os endpoints de compatibilidade de protocolos usam /v1 e /v1beta.

Essas APIs da plataforma permitem selecionar modelos, obter estimativas e acompanhar gastos sem abrir o Console. O catálogo de modelos inclui os preços da conta; quando o preço depende dos parâmetros, solicite um orçamento com as entradas exatas. O histórico de tarefas e o uso ficam restritos à chave de API usada na chamada. A criação e a rotação de chaves e as configurações de orçamento continuam no Console. Cada tabela tem links para o guia que explica o endpoint por completo.

Descoberta de modelos, preços e APIs da conta

MétodoCaminhoFinalidadeGuia
GET/console/v1/catalog/modelsCatálogo público para avaliação: sem chave de API, preços padrão e limite de solicitações por endereço de origemPrimeiros passos
GET/api/v1/modelsConsultar modelos disponíveis para chamadas, preços da conta e schemas opcionaisCatálogo de modelos
GET/api/v1/models/{model}Consultar um modelo e seu JSON Schema completoCatálogo de modelos
POST/api/v1/jobs/quoteObter um orçamento válido por cinco minutos para a solicitação exata, sem criar tarefa nem reservar saldoOrçamentos
GET/api/v1/chat/creditConsultar os saldos disponível, reservado e totalFaturamento
GET/api/v1/usageConsultar chamadas da chave atual e gastos liquidados em USD por data e modeloFaturamento

APIs de geração e tarefas

MétodoCaminhoFinalidadeGuia
GET/api/v1/jobsListar o histórico de tarefas da chave de API atual com paginação por cursorTarefas
POST/api/v1/jobs/createTaskCriar uma tarefa de geração assíncronaTarefas
GET/api/v1/jobs/recordInfoConsultar uma tarefa criada com a chave de API usada na chamadaTarefas
POST/api/v1/jobs/retryCriar uma nova tarefa a partir de uma tarefa que falhou ou expirou; registros históricos de cancelamento continuam compatíveisAções de tarefas
POST/api/v1/jobs/purgeDestruir os arquivos e o prompt de uma tarefa em estado final; o registro de faturamento não é alteradoRetenção
POST/api/v1/jobs/streamExecutar um modelo de texto e transmitir a resposta por SSETexto e streaming

APIs de mídia

MétodoCaminhoFinalidadeGuia
POST/api/v1/common/upload-urlEmitir uma autorização para upload direto de mídiaMídia
POST/api/v1/files/{fileId}/commitVerificar e confirmar um upload direto, retornando o URI spicy:// pronto para uso em tarefasMídia
POST/api/v1/files/importImportar um arquivo de pesos LoRA a partir de um link, com um token de acesso opcional usado uma única vez e nunca armazenado; retorna o URI spicy:// pronto para uso em tarefasPesos de adaptador
POST/api/v1/common/download-urlEmitir uma URL de curta duração para baixar a saída de uma tarefa (opcional: tarefas concluídas já incluem uma)Mídia
POST/api/v1/assetsSalvar um arquivo na biblioteca de ativos (Idempotency-Key obrigatório)Mídia
GET/api/v1/assetsListar seus ativos salvos (filtros favorite, collectionId, q; ordenação com sort)Mídia
GET/api/v1/assets/usageConsultar o plano, o uso e os limites da biblioteca de ativosMídia
GET/api/v1/assets/{assetId}Obter um ativo com um novo link de prévia privadoMídia
PATCH/api/v1/assets/{assetId}Renomear um ativo ou alterar o indicador favoriteMídia
DELETE/api/v1/assets/{assetId}Excluir um ativoMídia
GET/api/v1/assets/entitiesListar os personagens da sua biblioteca de ativos (somente leitura)Mídia
GET/api/v1/assets/entities/{entityId}Obter um personagem com as imagens em ordem (somente leitura)Mídia

Autenticação e formato das respostas

Todos os endpoints, exceto o catálogo público, exigem sua chave de API como Authorization: Bearer sk-spicy-…; os endpoints de compatibilidade (/v1, /v1beta) também aceitam x-api-key, enviado pelos SDKs da Anthropic, e x-goog-api-key, enviado pelos SDKs Google GenAI. Nunca é aceita uma chave nos parâmetros de consulta da URL. Tarefas, novas tentativas, exclusões de conteúdo e links de download só ficam visíveis para a chave de API que criou a tarefa; veja Autenticação.

As respostas JSON da API de tarefas compartilham o envelope {code,msg,data,request_id}; os endpoints de compatibilidade usam o formato dos respectivos protocolos. O resultado de uma tarefa é indicado por data.state, não pelo code do envelope. Veja Erros.

Cabeçalhos de solicitação compartilhados entre endpoints

CabeçalhoDestinoFinalidade
Authorization: Bearer …Todos, exceto o catálogo públicoSua chave de API
Idempotency-Keyjobs/createTask, jobs/retry, jobs/stream, POST /v1/videos e endpoints de texto em /v1 e /v1betaPermite reenviar com segurança após um erro de rede. Nos endpoints de tarefas, retorna a tarefa original; nos de texto, evita uma segunda cobrança, mas não recupera uma resposta perdida. Veja Idempotência
X-Spicy-Retentionjobs/createTask, jobs/streamReduz o prazo de armazenamento das saídas e do prompt desta tarefa, em segundos. Veja Retenção
Accept-LanguageQualquer endpointIdioma das mensagens de erro; os códigos nunca mudam. Veja Erros

Como usar o arquivo OpenAPI

  • Experimentar solicitações sem escrever código: importe o arquivo OpenAPI indicado no início desta página em um cliente de API, como Postman, Insomnia ou Bruno, e configure sua chave de API como token Bearer. Lembre-se de que criar tarefas custa dinheiro.
  • Gerar um cliente: forneça o mesmo arquivo a um gerador de código OpenAPI 3.1 para sua linguagem.

Mudanças no contrato

  • Não mantenha uma cópia fixa dos parâmetros dos modelos no código como referência permanente; consulte inputSchema em /models/{model}.
  • Aceite campos desconhecidos nas respostas, mas nunca invente campos desconhecidos nas solicitações.
  • Use o OpenAPI YAML na geração de código ou em testes de contrato antes de publicar.

Endpoints de compatibilidade

MétodoCaminhoProtocolo
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}Status do vídeo
GET/v1/videos/{videoId}/contentConteúdo do vídeo

Os endpoints de texto são explicados em Texto e streaming; sua cobrança está em Orçamentos e compatibilidade.

O pacote oficial de TypeScript é @spicyapi/sdk. Para Python e Go, ou quando você não pode adicionar uma dependência, os clientes de referência abaixo podem ser copiados e chamam esses endpoints usando apenas o ambiente de execução da linguagem. O de Python realiza todo o fluxo de uma tarefa de mídia: enviar e confirmar um arquivo de referência, confirmar o preço com um orçamento, criar a tarefa e consultá-la até um estado final, ler o resultado em arquivos ou texto, renovar um link de saída expirado, destruir o conteúdo armazenado depois e verificar uma assinatura de webhook. O de Go cobre o mesmo fluxo, com contexto em todas as chamadas e um erro tipado recuperável por errors.As. O de TypeScript cobre criação de tarefas, novas tentativas, consulta de status e espera com limite; para uploads e os demais recursos em Node.js, use o SDK.

Clientes de referência copiáveis

Exemplos sem dependências para descobrir modelos, criar tarefas, repetir tarefas com falha, consultar todos os estados finais, limitar a espera e tratar idempotência e erros. Uma tarefa aceita não pode ser cancelada.

São exemplos da documentação, não pacotes npm ou PyPI nem módulos Go publicados. Dez minutos é um limite local, não um SLA.

Nesta página