Mantenha a chave da API no servidor
Não exponha a chave no navegador, bundle móvel, prompt, log ou saída de agente. Envie requisições por um backend sob seu controle.
Integrações
Use chamadas compatíveis com OpenAI para chat e roleplay, ou a API de tarefas para imagens, vídeo e áudio. Escolha um modelo, mantenha a chave no servidor e siga o caminho do resultado que você precisa.
Escolha seu caminho
Comece onde você já trabalha. Todos os caminhos chegam aos mesmos modelos, com os mesmos preços.
Comece em 5 minutos
Crie uma tarefa, guarde o ID dela e busque o arquivo pronto. O mesmo padrão vale para todo modelo de imagem, vídeo e áudio.
Comparar tarefa, entradas, política, disponibilidade atual e preço.
Troque o ID do modelo e o input do exemplo pelos campos exatos que aquela página de modelo mostra. Nunca deduza parâmetros olhando outro modelo.
HTTP 202 quer dizer que a tarefa foi aceita, não que a geração terminou; o código de negócio do envelope continua code: 200. Salve data.taskId na hora; estimatedCost é o valor reservado para esta tarefa.
queued e running ainda estão em execução; succeeded, failed e expired são estados finais. Pare de consultar em qualquer estado final, em vez de esperar só pelo sucesso.
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 é um endpoint real de texto para imagem. Ao usar outro modelo de mídia, copie o ID exato e seu schema.
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}Exemplo de resposta resumido. Troque os IDs e as URLs ilustrativas pelos valores da sua resposta.
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
}
}Exemplo de resposta resumido. Troque os IDs e as URLs ilustrativas pelos valores da sua resposta.
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"Baixe data.output.assets[0].url diretamente, sem sua chave API. As URLs normalmente duram 20 minutos; consulte a tarefa novamente para obter uma nova e copie os arquivos que quiser guardar para seu armazenamento. Se o arquivo estiver pending, consulte novamente até a URL ficar pronta.
Diretório
Escolha a ferramenta que você já usa. Cada card abre o guia de configuração.
Segurança no servidor
Estas três regras cobrem vazamento de chave, cobrança duplicada e perda de tarefa. É o mínimo antes de subir para produção.
Não exponha a chave no navegador, bundle móvel, prompt, log ou saída de agente. Envie requisições por um backend sob seu controle.
Envie uma Idempotency-Key estável em toda solicitação de criação. Se o resultado da rede for incerto, repita o mesmo trabalho com a mesma chave para evitar duas tarefas cobradas.
Guarde o taskId e use webhook assinado ou verificações limitadas. Uma tarefa aceita começa e não pode ser cancelada. Tarefas com falha ou tempo esgotado normalmente não são cobradas. Alguns modelos cobram recusas de conteúdo conforme indicado na página do modelo; confira essas condições antes de enviar.
Documentação da API