Glossário
Todos os termos usados nesta documentação, de chave de API a webhook, explicados em palavras simples, com o que significam na SpicyAPI e onde ler mais.
Esta documentação usa palavras técnicas porque o produto é uma API. Esta página explica cada uma delas em linguagem simples, em ordem alfabética. Todo verbete tem três partes: o que a palavra significa em geral, o que ela significa na SpicyAPI e a página que traz os detalhes completos.
As outras páginas apontam direto para os verbetes, então, se uma palavra travar a sua leitura em algum lugar, ela provavelmente está aqui. Para ter a visão geral, comece por Como a SpicyAPI funciona.
Agent Skill
Uma pasta de instruções escritas que um assistente de programação com IA lê antes de começar um trabalho, como um manual de procedimentos entregue a um colega recém-chegado. Ela não contém nenhum programa e não faz nada sozinha.
Na SpicyAPI: o Skill oficial, publicado como @spicyapi/skill, ensina assistentes como Claude Code, Codex ou Cursor a usar a SpicyAPI corretamente: ler o catálogo atual em vez de chutar, mostrar o preço antes de qualquer trabalho pago, reaproveitar chaves de idempotência e nunca colar sua chave de API no código. Instale com npx skills add spicyapi-ai/spicy-skill. Ele funciona bem junto com o servidor MCP.
Veja: Agent Skill
API
Sigla em inglês para interface de programação de aplicações (application programming interface): um conjunto fixo de requisições que um programa pode enviar a outro, e as respostas que recebe de volta. Um site é feito para pessoas clicarem; uma API é feita para programas chamarem.
Na SpicyAPI: a API é o caminho pelo qual todas as ferramentas chegam aos modelos. O Playground, a CLI, o servidor MCP e o SDK enviam para api.spicyapi.ai os mesmos tipos de requisição que o seu próprio código pode enviar.
Veja: OpenAPI e lista de endpoints
Arquivo gerado (asset) e URL de saída
Um asset é um arquivo produzido por uma tarefa, como uma imagem ou um vídeo. A URL de saída dele é o endereço na web de onde você o baixa.
Na SpicyAPI: uma tarefa concluída lista seus arquivos em output.assets[]. Cada um tem uma url que você pode baixar diretamente, sem sua chave de API, além de expiresAt, mime (o tipo do arquivo) e informações de tamanho. O link dura cerca de 20 minutos; consulte a tarefa de novo para receber um novo. O arquivo em si fica guardado por no máximo cerca de 14 dias, então salve uma cópia de tudo de que precisar. Um asset marcado com pending: true ainda está sendo armazenado (tente de novo em alguns segundos); um marcado com unavailable: true não existe mais.
Veja: Tarefas assíncronas · Mídia
Assinatura (HMAC)
Um código calculado a partir de uma mensagem e de um segredo compartilhado, para que quem recebe possa conferir que a mensagem é autêntica e não foi alterada no caminho. HMAC é o método padrão para calcular esse código.
Na SpicyAPI: toda entrega de webhook traz o cabeçalho X-Webhook-Signature: um HMAC-SHA256 calculado sobre o ID da tarefa, o horário da entrega e um resumo (digest) do corpo exato, feito com a sua chave de assinatura de webhook. Você gera ou rotaciona essa chave na página Webhooks do console, e ela só aparece nesse momento; se você não a copiou, rotacione-a ali. Confira a assinatura antes de confiar numa entrega, usando verifyWebhook do SDK ou spicyapi webhooks verify, e rejeite entregas cujo horário esteja a mais de cinco minutos do horário atual.
Veja: Webhooks
Callback
Outro nome para webhook. Na SpicyAPI, o endereço vai no campo callBackUrl quando você cria uma tarefa.
Catálogo
A lista de modelos oferecidos, com os preços e as entradas que cada um aceita.
Na SpicyAPI: existem duas versões da mesma lista.
- O catálogo público não exige conta nem chave. É o que spicyapi.ai/explore mostra e o que
GET /console/v1/catalog/modelsretorna. Use-o para explorar e comparar. - O catálogo autenticado,
GET /api/v1/modelscom a sua chave de API, é a única fonte confiável dos modelos que a sua chave pode chamar agora, pelos preços da sua conta. Antes de um trabalho pago, escolha um item comenabledeavailableiguais atrue.
O comando da CLI spicyapi models list, o método do SDK listModels() e a ferramenta MCP spicyapi_models_list leem, todos eles, o catálogo autenticado.
Veja: Catálogo de modelos e schemas
Chave de API
Uma sequência secreta de caracteres que prova que uma requisição vem de você. Trate-a como uma senha usada por programas.
Na SpicyAPI: as chaves começam com sk-spicy- e são criadas na página Chaves de API do console. Uma chave aparece uma única vez; se você a perder, crie outra. Cada requisição envia a chave no cabeçalho Authorization: Bearer. Guarde as chaves no seu próprio computador ou servidor, nunca numa página da web, num aplicativo de celular, num repositório público, numa captura de tela ou num chat. Cada chave pode ter seus próprios limites de gasto, uma lista de modelos permitidos e uma lista de endereços IP permitidos.
Veja: Autenticação · Prepare sua conta
Chave de idempotência
Um rótulo que você inventa para um trabalho, para que enviar a mesma requisição duas vezes faça o trabalho uma vez só. Idempotente quer dizer que repetir uma ação não produz nenhum efeito a mais.
Na SpicyAPI: envie-a no cabeçalho Idempotency-Key ao criar ou repetir uma tarefa, por exemplo order-8814-render-1. Se a sua conexão cair e você não tiver certeza de que a tarefa começou, envie a mesma requisição de novo, com a mesma chave e a mesma chave de API, dentro de 24 horas: você recebe a tarefa original de volta e não é cobrado duas vezes. Use uma chave nova para cada trabalho novo. Reaproveitar uma chave com uma requisição diferente é recusado com 409. As chaves podem ter até 128 caracteres.
Veja: Idempotência
CLI
Sigla em inglês para interface de linha de comando (command-line interface): um programa que você usa digitando comandos num terminal em vez de clicar em botões.
Na SpicyAPI: o comando spicyapi, publicado como @spicyapi/cli, permite listar modelos, conferir preços, criar tarefas de imagem e vídeo, esperar por elas e baixar os resultados sem escrever código. Só tasks create e tasks retry custam dinheiro, e os dois perguntam antes. Ele exige Node.js 22.13 ou mais recente; dá para rodá-lo com npx @spicyapi/cli sem instalar nada.
Veja: Ferramenta de linha de comando (CLI)
Código de erro
Um valor curto e fixo que diz a um programa o que deu errado, para que ele possa reagir sem ler o texto da mensagem.
Na SpicyAPI: existem dois tipos.
code, no envelope, descreve a própria requisição.200é sucesso; entre os outros estão400(requisição inválida),401(problema com a chave),40201(saldo insuficiente),40202(um limite de gasto foi atingido) e429(requisições demais). É um código de negócio, mais específico que o status HTTP que vem junto.errorCodeaparece numa tarefa que foi aceita mas depois falhou. É um de nove valores:invalid_request,unsupported_combination,content_rejected,rate_limited,upstream_unavailable,generation_failed,timeout,invalid_assetouupstream_failed.
As mensagens correspondentes, msg e errorMessage, são para pessoas: a redação delas pode mudar, e elas podem vir no idioma que você escolher. Programas devem decidir o que fazer só pelos códigos.
Veja: Erros
Compatível com OpenAI
Que aceita requisições no mesmo formato da API da OpenAI, de modo que um software escrito para a OpenAI funciona trocando apenas o endereço e a chave.
Na SpicyAPI: modelos de texto podem ser chamados por POST /v1/chat/completions e POST /v1/responses no formato da OpenAI, por POST /v1/messages no formato da Anthropic e por /v1beta/models/… no formato do Google Gemini, todos com a mesma chave de API. Aponte a biblioteca oficial openai para https://api.spicyapi.ai/v1. Qualquer modelo de texto funciona com qualquer um desses formatos. Esses endpoints cobram o preço vigente no momento em que a requisição é aceita e não usam cotação, então defina limites de gasto na chave.
Veja: Texto e streaming
Cotação
Um preço calculado com antecedência para uma requisição exata.
Na SpicyAPI: POST /api/v1/jobs/quote recebe o mesmo corpo que você enviaria e retorna estimatedCost, maxCharge e expiresAt, sem criar tarefa nem reservar dinheiro. Não custa nada e vale por cinco minutos. Se você enviar com o quoteId e o expectedCost retornados e a requisição ou o preço tiver mudado, o envio é recusado com 40901 em vez de ser cobrado por outro valor. A CLI e o servidor MCP pedem uma cotação automaticamente antes de criar uma tarefa.
Veja: Cotações e compatibilidade
Endpoint
Uma requisição específica que uma API aceita, identificada por um método HTTP (como GET para ler ou POST para enviar) e por um caminho.
Na SpicyAPI: por exemplo, POST /api/v1/jobs/createTask inicia uma geração e GET /api/v1/jobs/recordInfo lê uma tarefa. O endereço completo é a URL base seguida do caminho.
Veja: OpenAPI e lista de endpoints
Envelope
Um invólucro externo fixo em que toda resposta vem embalada, para que um programa sempre saiba onde procurar.
Na SpicyAPI: as respostas da API nativa (em /api/v1) têm este formato:
{ "code": 200, "msg": "success", "data": {}, "request_id": "req_01k3m8x9q2z4v7n5p6r8s0t1w2" }code é um código de negócio (200 significa sucesso), msg é uma mensagem para pessoas lerem, data traz a resposta e fica totalmente de fora em caso de falha, e request_id identifica esta requisição. Os endpoints compatíveis com OpenAI, Anthropic e Gemini usam, em vez disso, os formatos dos próprios protocolos.
Veja: Erros
Estado da tarefa
Em que ponto da vida uma tarefa está.
Na SpicyAPI:
| Estado | Significado | É cobrado? |
|---|---|---|
queued | Aceita e esperando para começar | Valor reservado, não cobrado |
running | O modelo está trabalhando | Valor reservado, não cobrado |
succeeded | Terminou com resultado | Cobrado pelo uso real, nunca acima da reserva |
failed | Terminou sem resultado; errorCode diz por quê | Tarefas que falham ou expiram normalmente liberam toda a reserva. Algumas recusas de conteúdo são cobradas pelo orçamento aceito, somente quando a página do modelo informa explicitamente essa exceção. Confira settled e cost para saber o valor final. |
expired | Passou do prazo sem terminar | Não, reserva liberada por inteiro |
Registros antigos também podem mostrar canceled, estado a que tarefas novas nunca chegam. Trate qualquer estado que não seja queued nem running como estado terminal.
Veja: Tarefas assíncronas
Estado terminal
Um estado final: depois que uma tarefa chega nele, nunca mais muda.
Na SpicyAPI: qualquer estado da tarefa que não seja queued nem running é terminal: succeeded, failed, expired e, em registros antigos, canceled. Teste "não é queued e não é running" em vez de listar os estados finais, para que o seu código continue funcionando se um estado novo for adicionado. Webhooks só são enviados quando uma tarefa chega a um estado terminal. Só tarefas concluídas podem passar por purge, e tarefas failed ou expired podem ser repetidas.
Veja: Tarefas assíncronas
ID do modelo
O nome exato que você envia para escolher um modelo.
Na SpicyAPI: os IDs têm o formato publisher/model/task: quem fez o modelo, qual modelo e versão, e o que o endpoint faz. Endpoints de edição de imagem terminam em edit. Copie sempre o ID do catálogo atual (GET /api/v1/models, spicyapi models list ou listModels()), nunca da memória ou de uma página da web, porque modelos são adicionados, pausados e retirados. Nos exemplos desta documentação aparece MODEL_ID_FROM_CATALOG onde deve entrar um ID real; enviar o próprio marcador dá erro.
Veja: Catálogo de modelos e schemas
JSON
Um formato de texto simples para dados estruturados, feito de nomes e valores escritos entre chaves. Quase toda API usa JSON, porque qualquer linguagem de programação consegue lê-lo.
Na SpicyAPI: requisições e respostas são em JSON. Uma requisição mínima de tarefa fica assim:
{ "model": "MODEL_ID_FROM_CATALOG", "input": { "prompt": "A paper lantern on a rainy street at night" } }MODEL_ID_FROM_CATALOG representa um ID de modelo real tirado do catálogo atual. Valores em dinheiro são sempre enviados como texto, como "0.008", para que nenhum valor seja arredondado por acidente.
Veja: Início rápido
Limite de gasto
Um teto de gasto que você define com antecedência, para que um erro ou uma chave vazada não consuma todo o seu saldo.
Na SpicyAPI: cada chave de API pode ter um limite diário, um mensal e um acumulado, em dólares americanos, definidos por você; chaves novas não têm nenhum até que você adicione um. Equipes podem somar orçamentos diários e mensais, e a plataforma tem o seu próprio limite diário. Uma tarefa que ultrapassaria qualquer um deles é recusada com 40202 antes de começar, e nada é cobrado. Os limites diários recomeçam às 00:00 UTC e os mensais no dia 1º do mês; os acumulados nunca recomeçam. Informar 0 significa sem limite naquele nível.
Veja: Cobrança · Autenticação
Limite de requisições
Um teto para quantas requisições você pode enviar num período de tempo, para que um programa descontrolado não sobrecarregue um serviço.
Na SpicyAPI: por padrão, a API nativa permite 1.000 requisições a cada 10 segundos por conta, para leituras e outras tantas para escritas, e cada cota é compartilhada por todas as chaves da conta. O polling conta como leitura, então um loop de polling intenso não consegue travar o envio das suas tarefas. Passar disso retorna 429 com um cabeçalho Retry-After que diz quantos segundos esperar. O limite conta requisições, não tarefas: tarefas que já estão rodando não o consomem.
Veja: Limites de requisição
MCP
Sigla em inglês para Model Context Protocol: um padrão aberto que permite que assistentes de IA carreguem habilidades extras, chamadas ferramentas, a partir de pequenos programas chamados servidores MCP.
Na SpicyAPI: o servidor oficial, @spicyapi/mcp, roda no seu próprio computador e dá a assistentes como Claude, Cursor, VS Code ou Codex 15 ferramentas da SpicyAPI: explorar modelos, pedir cotações, criar tarefas, enviar arquivos e buscar resultados. Iniciar, repetir ou destruir uma tarefa interrompe o fluxo e pede que você confirme, mostrando o preço quando houver um; o assistente não pode responder por você. Ele exige Node.js 22.13 ou mais recente.
Veja: Servidor MCP
Modalidade
O tipo de mídia com que um modelo trabalha.
Na SpicyAPI: cada item do catálogo tem uma modality, como image, video ou text, e uma lista de tasks, como text-to-image ou image-to-video. Filtre o catálogo com elas, por exemplo GET /api/v1/models?modality=video&task=image-to-video.
Veja: Catálogo de modelos e schemas
Node.js
Um programa gratuito que roda JavaScript fora do navegador. Muitas ferramentas para desenvolvedores são escritas em JavaScript e precisam dele instalado.
Na SpicyAPI: o SDK, a CLI e o servidor MCP exigem Node.js 22.13 ou mais recente; o instalador usado pelo Skill pede 22.20 ou mais recente. Instale a versão LTS em nodejs.org e confira num terminal com node --version. Você não precisa de Node.js para o Playground, nem se chamar a API a partir de outra linguagem.
Veja: CLI: antes de começar
npm e npx
O npm é o gerenciador de pacotes que vem com o Node.js: ele baixa e instala pacotes JavaScript. O npx, que vem junto, roda um pacote sem instalá-lo de forma permanente.
Na SpicyAPI: as quatro ferramentas em Node.js são pacotes npm: @spicyapi/sdk, @spicyapi/cli, @spicyapi/mcp e @spicyapi/skill. Por exemplo, npm install @spicyapi/sdk adiciona o SDK para TypeScript a um projeto, e npx @spicyapi/cli status roda a CLI uma vez sem instalá-la. Já os SDKs para Python, Go, PHP e Java são instalados pelas ferramentas dos próprios ecossistemas deles; veja a página de cada SDK.
Veja: SDK para TypeScript · Ferramenta de linha de comando (CLI)
Playground
Um formulário num site em que você testa um modelo preenchendo campos e apertando um botão, sem escrever código.
Na SpicyAPI: toda página de modelo em spicyapi.ai tem uma aba Playground. Sem conta, você já pode preencher o formulário e ver a requisição que ele monta; para executar, é preciso entrar na conta e ter saldo. Cada execução mostra antes o custo estimado, é cobrada como uma chamada de API e aparece em Registros no console.
Veja: Como a SpicyAPI funciona
Polling
Perguntar a um servidor várias vezes se algo já terminou, em vez de esperar ser avisado.
Na SpicyAPI: você faz polling de uma tarefa com GET /api/v1/jobs/recordInfo?taskId=… até o estado dela deixar de ser queued ou running. Espere de 2 a 3 segundos antes da primeira consulta, deixe cada espera cerca de 1,5 vez mais longa que a anterior, até chegar a 10 a 15 segundos, e desista de esperar num prazo que você mesmo definir. Desistir de esperar não interrompe a tarefa. O polling conta para o seu limite de requisições, então em produção prefira um webhook.
Veja: Tarefas assíncronas
Purge (destruição de conteúdo)
Apagar de forma permanente, quando você pede, um conteúdo armazenado, em vez de esperar que ele expire.
Na SpicyAPI: POST /api/v1/jobs/purge (ou Destruir resultados em Registros no console, spicyapi tasks purge, purgeTask()) apaga os arquivos gerados de uma tarefa concluída, o resultado dela e o texto do prompt no input. O registro de cobrança continua: valor, modelo, estado, horários e request_id. Purge não é cancelamento e não reembolsa nada, e não pode ser desfeito. Só funciona em tarefas que já terminaram.
Veja: Retenção e destruição
request_id
Um identificador que o servidor associa a uma requisição, para que ela possa ser encontrada de novo nos logs.
Na SpicyAPI: toda resposta nativa traz request_id (por exemplo req_01k3…), enviado também no cabeçalho X-Request-Id, tanto em caso de sucesso quanto de falha. Guarde-o nos seus logs e informe-o quando falar com o suporte. Num webhook da versão 2, o request_id identifica a entrega em si (whd_…) e continua o mesmo quando essa entrega é repetida.
Reserva, liquidação e liberação
As três etapas do pagamento de uma tarefa. Uma reserva é dinheiro separado, mas ainda não gasto, como quando um hotel bloqueia um valor no seu cartão.
Na SpicyAPI:
- Reserva: quando uma tarefa é aceita, o custo estimado dela (
estimatedCost) é separado do seu saldo e aparece comoheld. Ainda não é uma cobrança, e é também o máximo que essa tarefa pode vir a custar. - Liquidação: quando a tarefa dá certo, você é cobrado pelo que ela realmente usou, nunca acima da reserva. O que sobrar volta para o seu saldo disponível.
settled: truena tarefa significa que o valor emcosté definitivo. - Liberação: Tarefas que falham ou expiram normalmente liberam toda a reserva. Algumas recusas de conteúdo são cobradas pelo orçamento aceito, somente quando a página do modelo informa explicitamente essa exceção. Confira
settledecostpara saber o valor final.
Veja: Cobrança
Retenção
Por quanto tempo os dados armazenados são mantidos antes de serem apagados.
Na SpicyAPI:
| O quê | Por quanto tempo fica guardado |
|---|---|
| Link de download de um resultado | Cerca de 20 minutos; peça de novo para receber outro |
| Imagens e vídeos gerados | No máximo cerca de 14 dias |
| Arquivos que você envia como entrada | 1 dia |
| Texto do prompt e demais conteúdos da tarefa | 30 dias |
| O registro da tarefa (ID, modelo, estado, valor, horários) | Mantido, sem nenhum conteúdo |
Você pode encurtar por quanto tempo os arquivos gerados, os uploads e o texto do prompt ficam guardados na página Proteção de dados do console, ou para uma única tarefa com o cabeçalho X-Spicy-Retention, e destruir conteúdo a qualquer momento com purge. Nenhuma configuração sua torna um prazo mais longo.
Veja: Retenção e destruição
Saldo
O dinheiro na sua conta que paga as gerações.
Na SpicyAPI: um saldo pré-pago em dólares americanos, sem créditos nem pontos. O que você paga nunca expira; o bônus promocional tem a própria data de validade. Você adiciona saldo na página Faturamento do console. GET /api/v1/chat/credit retorna três valores como texto, por exemplo "128.42": available (livre para gastar), held (reservado para tarefas ainda em andamento) e total. Algumas contas também têm verbas promocionais ou um limite de crédito aprovado, que aparecem num detalhamento à parte. Não há plano gratuito: contas novas começam com saldo zero.
Veja: Cobrança · Prepare sua conta
Schema de entrada
Uma descrição legível por máquina de quais campos uma requisição pode conter, de que tipo é cada um e quais valores são permitidos.
Na SpicyAPI: cada modelo tem o seu próprio inputSchema, escrito em JSON Schema. Ele lista os campos que você pode colocar em input, como prompt, image_url ou duration_seconds, com seus limites e valores padrão. O servidor confere toda requisição contra esse schema, e basta um campo desconhecido para dar erro 400. O Playground monta o formulário a partir do mesmo schema, e os examples do catálogo são entradas completas que já passaram por essa conferência.
Veja: Catálogo de modelos e schemas · Spicy Schema
SDK
Sigla em inglês para kit de desenvolvimento de software (software development kit): uma biblioteca de código pronta que você adiciona ao seu programa para não ter que montar cada requisição à mão.
Na SpicyAPI: existem cinco SDKs oficiais — o @spicyapi/sdk, para TypeScript e JavaScript em Node.js, mais um para Python, um para Go, um para PHP e um para Java. Cada um cuida da chave, da espera pelas tarefas, das novas tentativas, dos uploads e da verificação de webhooks, de modo que um par de chamadas leva uma tarefa do envio ao resultado. Todos rodam apenas em servidores, não em navegadores nem em aplicativos de celular, e nenhum deles cobre modelos de conversa.
Veja: SDK para TypeScript · SDK para Python · SDK para Go · SDK para PHP · SDK para Java
Status HTTP
Um número de três dígitos no início de toda resposta da web que diz, de modo geral, como foi a requisição. 2xx significa que deu certo, 4xx que havia algo errado na requisição e 5xx que o servidor teve um problema.
Na SpicyAPI: criar uma tarefa responde 202 Accepted, o que quer dizer que a tarefa foi aceita, não que terminou. As respostas nativas também trazem um code de negócio mais específico: por exemplo, saldo insuficiente é HTTP 402 com code 40201. Escolha um dos dois para tomar decisões no seu código e mantenha essa escolha.
Veja: Erros
Streaming (SSE)
Enviar uma resposta em pedaços, à medida que ela é produzida, por uma única conexão aberta, em vez de tudo de uma vez no final. SSE, sigla em inglês para server-sent events (eventos enviados pelo servidor), é o formato comum na web para isso.
Na SpicyAPI: modelos de texto podem transmitir a resposta palavra por palavra pelos endpoints compatíveis (por exemplo stream: true em /v1/chat/completions) ou pelo endpoint nativo POST /api/v1/jobs/stream. Cada protocolo marca o fim do stream do seu próprio jeito. Fechar a conexão antes da hora faz você parar de receber o texto, mas não faz o modelo parar, e o uso continua sendo cobrado. O texto transmitido não fica armazenado, então não dá para buscá-lo de novo depois.
Veja: Texto e streaming
Tarefa
Uma unidade de trabalho que roda em segundo plano: você a entrega e busca o resultado depois.
Na SpicyAPI: toda geração de imagem ou vídeo é uma tarefa. POST /api/v1/jobs/createTask a aceita e retorna um ID da tarefa que começa com job_; depois você faz polling da tarefa ou recebe um webhook quando ela termina. Pela API, uma tarefa só pode ser lida com a mesma chave de API que a criou; a página Registros do console mostra todas as tarefas da sua conta. Uma tarefa aceita não pode ser cancelada.
Veja: Tarefas assíncronas · Execução e novas tentativas
Terminal
Uma janela de texto onde você digita comandos e aperta Enter para executá-los. No macOS é o aplicativo Terminal; no Windows, use o PowerShell; a maioria dos ambientes de desktop Linux abre um com Ctrl + Alt + T. Não confunda com estado terminal.
Na SpicyAPI: você usa um terminal para rodar a CLI, para instalar ferramentas de Node.js como o servidor MCP ou o Skill e para testar os exemplos com curl desta documentação.
Veja: CLI: antes de começar
Upload
Enviar um arquivo do seu computador para um servidor, para que ele possa ser usado lá.
Na SpicyAPI: um modelo que recebe imagem, vídeo ou áudio como entrada aceita esse arquivo de três formas: um link HTTPS público para o arquivo, uma imagem pequena embutida na requisição como data URI (até 1 MiB) ou um arquivo enviado por upload. O upload tem três etapas: pedir um ticket (POST /api/v1/common/upload-url), enviar o arquivo para o endereço indicado no ticket e depois confirmá-lo (POST /api/v1/files/{fileId}/commit). A confirmação retorna um endereço spicy:// para colocar no campo de entrada do modelo. Ele pode ser usado por um dia. Imagens podem ter até 10 MiB, e áudio ou vídeo até 90 MiB e 600 segundos. uploadFile() no SDK, spicyapi files upload e o servidor MCP fazem as três etapas por você.
Veja: Mídia
URL base
A primeira parte, fixa, de todo endereço que uma API usa. Você a escreve uma vez no seu código ou nas configurações da ferramenta, e cada requisição acrescenta o próprio caminho depois dela.
Na SpicyAPI: existem duas.
| URL base | Usada para |
|---|---|
https://api.spicyapi.ai/api/v1 | A API nativa: modelos, cotações, tarefas, uploads, saldo |
https://api.spicyapi.ai/v1 | Endpoints no formato da OpenAI (texto e vídeo) e no formato da Anthropic (texto) |
Requisições no formato do Google Gemini vão para https://api.spicyapi.ai/v1beta. As bibliotecas oficiais da Anthropic e do Google GenAI acrescentam sozinhas a parte da versão, então, para elas, informe apenas https://api.spicyapi.ai.
Veja: Início rápido · Texto e streaming
Variável de ambiente
Um valor com nome que o seu terminal entrega a todo programa que ele inicia. Com ela, um programa lê uma configuração, como uma chave secreta, sem que o valor precise estar escrito num arquivo ou num comando.
Na SpicyAPI: o SDK, a CLI, o servidor MCP e os exemplos de código desta documentação leem a sua chave de API de uma variável chamada SPICY_API_KEY. Para defini-la na janela de terminal atual:
export SPICY_API_KEY="sk-spicy-paste-your-key-here"Essa configuração é esquecida quando você fecha a janela. A página da CLI mostra como torná-la permanente e como conferi-la sem imprimir a chave inteira.
Veja: CLI: antes de começar · Prepare sua conta
Webhook
Um endereço no seu próprio servidor que outro serviço chama quando algo acontece, para que você não precise ficar perguntando. Também chamado de callback.
Na SpicyAPI: coloque um endereço HTTPS público em callBackUrl ao criar uma tarefa. Quando a tarefa chega a um estado terminal, a SpicyAPI envia para lá uma requisição POST com o mesmo conteúdo que recordInfo retornaria, assinada com a sua chave de assinatura de webhook. Responda com qualquer status 2xx em até 15 segundos; caso contrário, a entrega é repetida, em até oito tentativas ao longo de aproximadamente nove horas, e você pode reenviá-la pela página Webhooks do console. Não há notificação quando uma tarefa apenas começa. Endereços locais como http://localhost:3000 não conseguem receber webhooks, então use polling enquanto desenvolve no seu próprio computador.
Veja: Webhooks
Workspace e equipe
Um espaço compartilhado em que várias pessoas usam as mesmas chaves, tarefas e orçamentos sob uma única conta.
Na SpicyAPI: o workspace de uma equipe tem membros com funções: owner, admin, developer, billing e readonly. Todo membro pode ver os resumos das tarefas e o consumo; owner, admin e developer também podem ver as entradas e os resultados das tarefas. A conta do proprietário paga as novas tarefas da equipe, e os membros nunca veem o saldo nem os pagamentos pessoais do proprietário. Equipes podem definir orçamentos diários e mensais.
Veja: Console e equipes
Perguntas frequentes
Respostas curtas para as dúvidas mais comuns sobre a SpicyAPI, de plano gratuito e cobrança de tarefas com falha a cancelamento de tarefas, guarda de resultados e correção de erros comuns.
Responsabilidade pelo conteúdo e pelo uso
O que a SpicyAPI verifica, quais são suas responsabilidades, quais usos são proibidos, onde o serviço está disponível e como denunciar abusos.

