spicyapiDocumentação
Apps e plugins
Conteúdo principal

n8n

Use os modelos de imagem, vídeo, áudio e chat da SpicyAPI em workflows do n8n. Instale o community node, importe os templates de HTTP Request ou aponte a credencial OpenAI do n8n para a SpicyAPI nos nodes de AI Agent.

O n8n é uma ferramenta de automação de workflows. A SpicyAPI oferece a ele modelos de imagem, vídeo, áudio e chat por trás de uma única API e de um único saldo pré-pago. Há três formas de conectá-los, e elas podem ser combinadas em um mesmo workflow:

Você quer…UseFunciona em
Gerar imagens, vídeo e áudio com um node prontoO community node da SpicyAPIn8n auto-hospedado
Gerar mídia no n8n Cloud, ou sem instalar nadaOs templates de HTTP Requestn8n auto-hospedado e n8n Cloud
Usar modelos de chat em AI Agent, Basic LLM Chain e outros nodes de IAA credencial OpenAI nativa do n8n com uma nova Base URLn8n auto-hospedado e n8n Cloud

As três usam a mesma conta, chave, modelos e preços. Para mídia, o nó e os templates de HTTP Request verificam o preço antes de enviar a requisição. Reenviar a mesma requisição de mídia aceita com o Idempotency-Key original retorna a tarefa existente.

Para começar um workflow de imagens, veja o guia de workflows de imagens NSFW com n8n: escolha de modelos, edição com referência, primeiro retrato e exemplos de custo. As etapas abaixo conectam o workflow à sua instância do n8n.

Versão resumida

  1. Crie uma chave de API no console. Defina um limite de gasto diário.
  2. Auto-hospedado: no n8n, abra Settings > Community Nodes > Install, informe @spicyapi/n8n-nodes-spicyapi e adicione uma credencial SpicyAPI (spicyapi.ai) API.
  3. n8n Cloud: importe um template da pasta de exemplos do node e dê aos nodes HTTP Request dele uma credencial Bearer Auth.
  4. Chat em nodes de IA: crie uma credencial OpenAI com Base URL https://api.spicyapi.ai/v1 e a sua chave da SpicyAPI.

Antes de começar

  • Uma chave de API. Crie uma no console; ela começa com sk-spicy-. Veja Prepare sua conta se ainda não tem conta.
  • Saldo. Adicione fundos em Billing no console antes da primeira geração. Seus workflows do n8n, Studio e API usam o mesmo saldo da conta. Veja Cobrança para entender a liquidação.
  • Uma chave por automação. Workflows podem rodar bem mais vezes do que uma pessoa clica. Crie uma chave separada para o n8n e defina um limite de gasto diário ou mensal nela, para que um erro em um loop tenha um teto. Veja Autenticação.
  • O n8n precisa alcançar api.spicyapi.ai. As chamadas são feitas pelo servidor do n8n, não pelo seu navegador.

Opção 1: o community node da SpicyAPI

O node é de código aberto (MIT) em github.com/spicyapi-ai/n8n-nodes-spicyapi e publicado no npm como @spicyapi/n8n-nodes-spicyapi. Ele não tem dependências em tempo de execução e se comunica apenas com api.spicyapi.ai.

Somente n8n auto-hospedado

O n8n Cloud só pode instalar community nodes que o n8n verificou, e este não é verificado. No n8n Cloud, use os templates de HTTP Request abaixo. Eles chamam a mesma API.

Outros pacotes do npm têm nomes parecidos, mas pertencem a serviços sem relação. Este é o pacote chamado @spicyapi/n8n-nodes-spicyapi, e a credencial dele se chama SpicyAPI (spicyapi.ai) API.

Instalação

Instale o pacote

No n8n, abra Settings > Community Nodes, selecione Install, informe @spicyapi/n8n-nodes-spicyapi, marque a caixa que confirma a instalação de código não verificado e confirme. Você precisa ser o proprietário da instância ou um administrador.

Para o modo fila, ou se você gerencia os nodes manualmente, execute isto na pasta de dados do n8n e reinicie o n8n:

cd ~/.n8n/nodes
npm install @spicyapi/n8n-nodes-spicyapi

Veja o guia de community nodes do n8n para as opções que a sua configuração suporta.

Adicione a credencial

Crie uma credencial SpicyAPI (spicyapi.ai) API:

CampoValor
API KeySua chave, começando com sk-spicy-
Base URLDeixe https://api.spicyapi.ai como está

Ao salvar a credencial, a chave é verificada contra o saldo da sua conta.

Adicione o node a um workflow

Procure por SpicyAPI no painel de nodes, escolha um recurso e uma operação e depois selecione a credencial.

Operações

RecursoOperaçãoO que faz
ImageGenerateTexto para imagem, edição de imagem, ampliação, remoção de fundo e outros modelos de imagem
VideoGenerateTexto para vídeo, imagem para vídeo e outros modelos de vídeo
AudioGenerateTexto para fala, música, transcrição e outros modelos de áudio
TaskGetLê uma tarefa pelo ID, opcionalmente espera por ela e baixa os arquivos
FileUploadEnvia um arquivo binário e retorna uma URI spicy:// para usar como entrada de modelo
ModelGet ManyO catálogo de modelos com preços, filtrado por modalidade e palavra-chave
ModelGetUm modelo com o schema de entrada e exemplos
ModelGet QuoteO preço exato de uma requisição, sem executá-la
AccountGet BalanceSaldo disponível, retido e total em dólares americanos
ChatMessage a ModelUma conclusão de chat de um modelo de texto

Gere imagens, vídeo e áudio

As três operações Generate compartilham os mesmos campos:

  1. Model. Escolha na lista, que mostra os modelos do recurso selecionado com o preço inicial, ou informe um ID de modelo manualmente. Todos os modelos e seus parâmetros estão listados em spicyapi.ai/models.
  2. Prompt. A principal entrada de texto do modelo. Para modelos de fala, é o texto a ser falado. Deixe vazio para modelos sem prompt, como os de ampliação.
  3. Media Inputs. Imagens, vídeos ou áudio que o modelo lê. Escolha o campo (a lista mostra as entradas de arquivo do modelo selecionado) e use um campo binário do node anterior ou uma URL. Os arquivos binários são enviados à SpicyAPI automaticamente. Adicione várias entradas para o mesmo campo para preencher campos de lista, como imagens de referência.
  4. Model Parameters. Um formulário gerado a partir do schema do modelo selecionado: proporção, resolução, duração, seed e assim por diante. Campos deixados vazios não são enviados, então o modelo usa o próprio padrão.
  5. Additional Parameters (JSON). Quaisquer outros campos de entrada como um objeto JSON. Eles se sobrepõem aos campos acima.

A saída contém o registro da tarefa (taskId, state, cost, settled, output). Com Download Output ativado, que é o padrão, os arquivos também são anexados como dados binários em data, data_1 e assim por diante. Os links em output.assets[].url expiram após cerca de 20 minutos; as cópias binárias não.

Vídeos grandes ficam na memória, a menos que o n8n guarde dados binários em disco. No n8n auto-hospedado, defina N8N_DEFAULT_BINARY_DATA_MODE=filesystem quando trabalhar com vídeo.

Controle de custo e novas tentativas

  • Cada item é cotado antes. O node pede uma cotação. Se ela passar de Max Cost per Item (USD), que por padrão é $2, ele para com um erro antes de criar qualquer coisa, e nada é cobrado. Defina o limite como 0 para removê-lo.
  • A tarefa é criada com o preço cotado. Se o preço mudar entre a cotação e o envio, o node cota de novo, confere o limite de novo e reenvia.
  • Novas tentativas não cobram duas vezes. Veja Limites de custo e novas tentativas.

Tarefas demoradas

Veja Tarefas de vídeo demoradas para as opções e quando usar cada uma.

Opção 2: templates de HTTP Request

Dois workflows importáveis usam apenas nodes nativos do n8n, então rodam no n8n auto-hospedado e no n8n Cloud, sem community node. Eles estão na pasta de exemplos do repositório do node.

ArquivoO que faz
http-request-image.jsonObtém uma cotação, para se ela passar de um limite de preço, cria uma tarefa, consulta até terminar e baixa a imagem como arquivo binário
http-request-chat.jsonUma conclusão de chat pelo endpoint compatível com OpenAI

Importe o workflow

Baixe o arquivo .json. No n8n, escolha Workflow menu > Import from File.

Crie uma credencial Bearer Auth

Crie uma credencial Bearer Auth, cole a sua chave da SpicyAPI como token e selecione-a em cada node HTTP Request que chama api.spicyapi.ai. O template de imagem tem quatro deles.

Edite as configurações e execute

Abra o node Settings. No template de imagem, você pode mudar o modelo, o prompt, a proporção e o preço máximo em dólares americanos (maxCostUsd). Substitua o modelo por um ID do catálogo de modelos e execute o workflow.

Como o template de imagem é construído

Os mesmos passos servem para qualquer modelo de mídia, então você pode copiar o padrão para o seu próprio workflow.

PassoNodeRequisição
1HTTP RequestPOST https://api.spicyapi.ai/api/v1/jobs/quote com model e input retorna um quoteId e um estimatedCost
2IfPara com um erro quando a cotação passa do seu limite. Nada foi cobrado ainda
3HTTP RequestPOST https://api.spicyapi.ai/api/v1/jobs/createTask com o quoteId, o expectedCost e um cabeçalho Idempotency-Key. O template adiciona ?wait=50 para que modelos de imagem rápidos respondam na própria requisição
4If, Wait, HTTP RequestSe a tarefa ainda estiver queued ou running, espere 5 segundos e chame GET https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=…, depois verifique de novo
5HTTP RequestBaixa output.assets[0].url como arquivo

Os formatos de requisição e resposta estão em Tarefas, Cotações e compatibilidade e Entradas e saídas de mídia. Arquivos que um modelo lê, como uma imagem inicial, podem ser uma URL pública ou um arquivo spicy:// enviado.

Opção 3: modelos de chat em AI Agent e outros nodes de IA

O endpoint de chat da SpicyAPI é compatível com OpenAI, então os nodes OpenAI do próprio n8n podem usá-lo. Você não precisa do community node para isso, e funciona no n8n Cloud.

Crie uma credencial OpenAI

No n8n, crie uma nova credencial OpenAI. Cole a sua chave da SpicyAPI como API Key e defina Base URL como:

https://api.spicyapi.ai/v1

Escolha um modelo de chat

Adicione um OpenAI Chat Model ao seu AI Agent ou Basic LLM Chain e selecione a credencial. Escolha um modelo cujo ID termine em /chat (escrito MODEL_ID_FROM_CATALOG nesta página: copie um id real do catálogo ao vivo (GET /api/v1/models)). A lista completa está em GET https://api.spicyapi.ai/v1/models?modality=text.

O que você precisa saber:

  • A lista de modelos inclui modelos de imagem e vídeo. Com uma Base URL personalizada, o n8n mostra tudo o que /v1/models retorna, e a lista da SpicyAPI cobre todos os modelos dela. Escolha um que termine em /chat ou digite o ID no modo de expressão. Modelos de imagem e vídeo não são modelos de chat e falham em um agente.
  • Use Responses API. Versões recentes do node OpenAI Chat Model podem enviar requisições para /v1/responses em vez de /v1/chat/completions. A SpicyAPI suporta /v1/responses, mas não previous_response_id. Se uma requisição de agente falhar com a Responses API ativada, desative Use Responses API no node.
  • Configurações de amostragem. Se você definir uma opção que o modelo não declara, como temperature em um modelo de raciocínio, a SpicyAPI a ignora em vez de falhar e lista os nomes ignorados no cabeçalho de resposta X-Spicy-Ignored-Params; um valor fora da faixa do modelo é trocado pelo valor aceito mais próximo e listado em X-Spicy-Adjusted-Params. Outros campos não declarados continuam retornando 400.
  • Ferramentas e saída em JSON dependem do modelo. Confira o supported_parameters do modelo em /v1/models.
  • Modelos de raciocínio contam os tokens de raciocínio no max_tokens. Com um valor muito pequeno, como 20, um modelo de raciocínio pode gastar todo o orçamento pensando e não devolver texto (upstream_failed: "the output budget was spent on reasoning"). Aumente max_tokens ou reduza reasoning_effort. Os valores de reasoning_effort variam por modelo.
  • Streaming e custo. O chat é cobrado por tokens depois da chamada. A página Texto e streaming traz os detalhes, e Receitas de chat traz exemplos de requisição.

Limites de custo e novas tentativas

Limites de gasto

  • Use uma chave separada para o n8n com um limite de gasto diário ou mensal no console e uma lista de modelos permitidos se o workflow precisar de apenas alguns modelos. Quando um limite é atingido, a chamada falha com 40202 e nada é cobrado por ela.
  • Para modelos de mídia, cote primeiro. O node faz isso por você; os templates fazem com os nodes Get Quote e If. A cotação é o preço exato daquela requisição, incluindo extras como cobranças por imagem de referência, então uma checagem de preço baseada em uma cotação é confiável e uma baseada na tabela do catálogo não é.
  • Falhas comuns e tarefas expiradas liberam toda a retenção. Algumas recusas de conteúdo só são cobradas quando a página do modelo informa isso explicitamente. Consulte settled e cost para o valor final; veja Cobrança.

Por que uma nova tentativa não cobra duas vezes

Toda chamada que cria tarefa leva um Idempotency-Key. Se a mesma chave chegar de novo com a mesma requisição, a SpicyAPI retorna a tarefa que já criou em vez de criar uma segunda, então não há segunda retenção nem segunda cobrança. Isso importa no n8n porque uma requisição pode ser enviada duas vezes sem você fazer nada: Retry On Fail em um node, ou um timeout em que a primeira requisição na verdade passou.

  • O community node monta a chave a partir da execução, do node, do item e da entrada dele. Uma nova tentativa do node reutiliza a mesma chave. Uma nova execução, uma entrada alterada ou outra passagem por um loop é trabalho novo e recebe uma chave nova.
  • Os templates a montam a partir do ID da execução e do índice do item, por exemplo n8n-<execution id>-<item index>. Se você copiar o padrão para um loop, adicione o contador do loop à chave; senão, cada passagem retorna a tarefa da primeira.
  • Não use um valor aleatório que muda a cada tentativa, como $now: ele faz cada nova tentativa parecer trabalho novo.

Mais em Idempotência.

Tarefas de vídeo demoradas

Modelos de imagem e áudio costumam terminar em uma única requisição. Vídeo pode levar minutos. Há três formas de lidar com isso, da mais simples à mais leve para o n8n:

AbordagemComoContrapartida
Esperar dentro do node (padrão)O community node consulta com um intervalo crescente até a tarefa terminar ou Max Wait Time passarSimples, mas a execução fica aberta enquanto o vídeo é renderizado
Enviar, depois esperar e verificarDesative Wait for Completion, adicione um node Wait e depois Task > Get. Os templates fazem o mesmo com nodes Wait, Get Task e If em um loopUm slot de execução é usado só para as chamadas curtas
CallbackDefina Callback URL como {{ $execution.resumeUrl }} e siga com um node Wait configurado para retomar em uma chamada de webhookO n8n precisa ser acessível por HTTPS público. Quando a chamada chegar, leia a tarefa com Task > Get e não confie no corpo do callback

Se o node parar de esperar, a tarefa continua em execução na SpicyAPI e é cobrada se der certo. Busque-a depois com Task > Get; não a envie de novo. Você também a encontra em Logs no console.

Os resultados são mantidos por tempo limitado e os links de download duram cerca de 20 minutos. Salve os arquivos no workflow, por exemplo em um armazenamento na nuvem, se precisar deles por mais tempo. Veja Retenção e destruição.

Solução de problemas

O que você vêO que fazer
O teste da credencial falha ou 401Copie a chave de novo do console. Uma chave revogada para de funcionar na hora. Com a credencial OpenAI, confira se a Base URL termina em /v1.
SpicyAPI não aparece no painel de nodesVocê provavelmente está no n8n Cloud, ou o n8n não foi reiniciado depois de uma instalação manual. O Cloud não instala nodes não verificados; use os templates.
O botão Install não aparece em Community NodesOs pacotes da comunidade estão desativados, ou você não é o proprietário nem um administrador. Peça a quem administra a instância ou instale manualmente em ~/.n8n/nodes.
40201Saldo insuficiente. Adicione fundos no console e execute de novo. Uma nova tentativa com a mesma chave é segura.
40202A chave atingiu um limite de gasto diário, mensal ou vitalício. Aumente o limite ou espere ele renovar.
40310O e-mail da sua conta não foi verificado. Abra o link do e-mail de cadastro.
40004Nenhuma implantação atende a essa combinação de opções. Mude a opção citada na mensagem.
40901A cotação não corresponde mais, geralmente porque expirou (as cotações duram 5 minutos). Cote de novo e reenvie com o mesmo Idempotency-Key.
Um erro dizendo que o preço está acima do seu limiteA cotação é maior que Max Cost per Item ou maxCostUsd. Aumente o limite ou escolha opções mais baratas. Nada foi cobrado.
O agente falha em um modeloVocê pode ter escolhido um modelo que não é de chat. Use um ID que termine em /chat. Tente também desativar Use Responses API.
Um modelo de raciocínio devolve uma resposta vaziaAumente max_tokens ou reduza reasoning_effort.
O link de download na saída retorna um erro mais tardeOs links expiram após cerca de 20 minutos. Use Task > Get para obter um link novo ou guarde a cópia binária.
Memory, heap ou reinicializações ao lidar com vídeoOs dados binários ficam na memória por padrão. Defina N8N_DEFAULT_BINARY_DATA_MODE=filesystem.
O callback nunca retoma o workflowA URL precisa ser HTTPS público na porta 443 ou 80, não localhost. Confira se a URL de retomada da execução é a que o seu n8n mostra publicamente.

Os erros da SpicyAPI terminam com um request_id ou um ID de tarefa. Informe-o ao suporte para que a requisição seja localizada com exatidão. Os códigos de erro estão explicados em Erros, e há uma lista de verificação mais ampla em Solução de problemas.

O uso dos modelos está sujeito aos termos da SpicyAPI e aos termos da edição do n8n que você executa.

Nesta página