n8n
Utilisez les modèles d’image, de vidéo, d’audio et de chat de SpicyAPI dans vos workflows n8n. Installez le nœud communautaire, importez les modèles HTTP Request, ou pointez l’identifiant OpenAI de n8n vers SpicyAPI pour les nœuds AI Agent.
n8n est un outil d’automatisation de workflows. SpicyAPI lui apporte des modèles d’image, de vidéo, d’audio et de chat derrière une seule API et un seul solde prépayé. Il existe trois façons de les connecter, et elles peuvent être combinées dans un même workflow :
| Vous voulez… | Utilisez | Fonctionne sur |
|---|---|---|
| Générer des images, de la vidéo et de l’audio avec un nœud prêt à l’emploi | Le nœud communautaire SpicyAPI | n8n auto-hébergé |
| Générer des médias sur n8n Cloud, ou sans rien installer | Les modèles HTTP Request | n8n auto-hébergé et n8n Cloud |
| Utiliser des modèles de chat dans AI Agent, Basic LLM Chain et les autres nœuds d’IA | L'identifiant OpenAI intégré de n8n avec une nouvelle Base URL | n8n auto-hébergé et n8n Cloud |
Les trois utilisent le même compte, la même clé, les mêmes modèles et les mêmes prix. Pour les médias, le nœud et les modèles HTTP Request vérifient le prix avant l’envoi. Renvoyer la même requête média acceptée avec son Idempotency-Key d’origine renvoie la tâche existante.
Pour démarrer un workflow d’images, consultez le guide des workflows d’images NSFW avec n8n : choix du modèle, retouche d’une référence, premier portrait et exemples de coût. Les étapes ci-dessous permettent de le connecter à votre instance n8n.
Le résumé
- Créez une clé API dans la console. Donnez-lui un plafond de dépense quotidien.
- Auto-hébergé : dans n8n, ouvrez Settings > Community Nodes > Install, saisissez
@spicyapi/n8n-nodes-spicyapi, puis ajoutez un identifiant SpicyAPI (spicyapi.ai) API. - n8n Cloud : importez un modèle depuis le dossier d’exemples du nœud et donnez à ses nœuds HTTP Request un identifiant Bearer Auth.
- Chat dans les nœuds d’IA : créez un identifiant OpenAI avec la Base URL
https://api.spicyapi.ai/v1et votre clé SpicyAPI.
Avant de commencer
- Une clé API. Créez-en une dans la console ; elle commence par
sk-spicy-. Voir Préparer votre compte si vous n’avez pas encore de compte. - Un solde. Ajoutez des fonds dans Billing de la console avant votre première génération. Vos workflows n8n, Studio et l’API partagent le même solde de compte. Voir Facturation pour le règlement des appels.
- Une clé par automatisation. Les workflows peuvent s’exécuter bien plus souvent qu’une personne ne clique. Créez une clé dédiée à n8n et définissez-lui un plafond de dépense quotidien ou mensuel, pour qu’une erreur dans une boucle ait une limite. Voir Authentification.
- n8n peut joindre
api.spicyapi.ai. Les appels sont effectués par le serveur n8n, pas par votre navigateur.
Option 1 : le nœud communautaire SpicyAPI
Le nœud est open source (MIT) sur github.com/spicyapi-ai/n8n-nodes-spicyapi et publié sur npm sous le nom @spicyapi/n8n-nodes-spicyapi. Il n’a aucune dépendance d’exécution et ne communique qu’avec api.spicyapi.ai.
n8n auto-hébergé uniquement
n8n Cloud ne peut installer que les nœuds communautaires vérifiés par n8n, et celui-ci ne l’est pas. Sur n8n Cloud, utilisez les modèles HTTP Request ci-dessous. Ils appellent la même API.
D’autres paquets npm portent des noms similaires mais appartiennent à des services sans rapport. Celui-ci est le paquet nommé @spicyapi/n8n-nodes-spicyapi, et son identifiant s’appelle SpicyAPI (spicyapi.ai) API.
Installation
Installer le paquet
Dans n8n, ouvrez Settings > Community Nodes, sélectionnez Install, saisissez @spicyapi/n8n-nodes-spicyapi, cochez la case qui reconnaît l’installation de code non vérifié, puis confirmez. Vous devez être le propriétaire de l’instance ou un administrateur.
Pour le mode queue, ou si vous gérez les nœuds à la main, exécutez ceci dans le dossier de données de n8n et redémarrez n8n :
cd ~/.n8n/nodes
npm install @spicyapi/n8n-nodes-spicyapiVoir le guide des nœuds communautaires de n8n pour les options que votre installation prend en charge.
Ajouter l’identifiant
Créez un identifiant SpicyAPI (spicyapi.ai) API :
| Champ | Valeur |
|---|---|
| API Key | Votre clé, commençant par sk-spicy- |
| Base URL | Laissez https://api.spicyapi.ai tel quel |
L’enregistrement de l’identifiant vérifie la clé en interrogeant le solde de votre compte.
Ajouter le nœud à un workflow
Recherchez SpicyAPI dans le panneau des nœuds, choisissez une ressource et une opération, puis sélectionnez l’identifiant.
Opérations
| Ressource | Opération | Ce qu’elle fait |
|---|---|---|
| Image | Generate | Texte vers image, retouche d’image, agrandissement, suppression d’arrière-plan et autres modèles d’image |
| Video | Generate | Texte vers vidéo, image vers vidéo et autres modèles vidéo |
| Audio | Generate | Synthèse vocale, musique, transcription et autres modèles audio |
| Task | Get | Lit une tâche par son identifiant, avec attente et téléchargement de ses fichiers en option |
| File | Upload | Envoie un fichier binaire et renvoie un URI spicy:// à utiliser comme entrée d’un modèle |
| Model | Get Many | Le catalogue des modèles avec les prix, filtré par modalité et par mot-clé |
| Model | Get | Un modèle avec son schéma d’entrée et des exemples |
| Model | Get Quote | Le prix exact d’une requête, sans l’exécuter |
| Account | Get Balance | Solde disponible, réservé et total en dollars américains |
| Chat | Message a Model | Une complétion de chat d’un modèle de texte |
Générer des images, de la vidéo et de l’audio
Les trois opérations Generate partagent les mêmes champs :
- Model. Choisissez dans la liste, qui affiche les modèles de la ressource sélectionnée avec leur prix de départ, ou saisissez un identifiant de modèle à la main. Chaque modèle et ses paramètres sont listés sur spicyapi.ai/models.
- Prompt. L’entrée de texte principale du modèle. Pour les modèles vocaux, c’est le texte à prononcer. Laissez-le vide pour les modèles qui n’ont pas de prompt, comme les outils d’agrandissement.
- Media Inputs. Les images, vidéos ou fichiers audio que le modèle lit. Choisissez le champ (la liste affiche les entrées de fichier du modèle sélectionné), puis utilisez un champ binaire du nœud précédent ou une URL. Les fichiers binaires sont envoyés automatiquement à SpicyAPI. Ajoutez plusieurs entrées pour le même champ afin de remplir les champs de type liste, comme les images de référence.
- Model Parameters. Un formulaire généré à partir du schéma du modèle sélectionné : format d’image, résolution, durée, seed, etc. Les champs laissés vides ne sont pas envoyés : le modèle utilise alors sa propre valeur par défaut.
- Additional Parameters (JSON). Tout autre champ d’entrée sous forme d’objet JSON. Ils remplacent les champs ci-dessus.
La sortie contient l’enregistrement de la tâche (taskId, state, cost, settled, output). Avec Download Output activé, ce qui est le cas par défaut, les fichiers sont aussi joints comme données binaires dans data, data_1, etc. Les liens de output.assets[].url expirent après environ 20 minutes ; les copies binaires, non.
Les vidéos volumineuses sont conservées en mémoire, sauf si n8n stocke les données binaires sur disque. Sur n8n auto-hébergé, définissez N8N_DEFAULT_BINARY_DATA_MODE=filesystem lorsque vous travaillez avec de la vidéo.
Maîtrise des coûts et nouvelles tentatives
- Chaque élément est chiffré d’abord. Le nœud demande un devis. Si le devis dépasse Max Cost per Item (USD), qui vaut 2 $ par défaut, il s’arrête avec une erreur avant que quoi que ce soit ne soit créé, et rien n’est débité. Réglez la limite sur 0 pour la supprimer.
- La tâche est créée au prix devisé. Si le prix change entre le devis et l’envoi, le nœud redemande un devis, revérifie la limite et renvoie la requête.
- Les nouvelles tentatives ne facturent pas deux fois. Voir Limites de coût et nouvelles tentatives.
Tâches longues
Voir Tâches vidéo longues pour les options et les cas où utiliser chacune.
Option 2 : modèles HTTP Request
Deux workflows importables n’utilisent que des nœuds n8n intégrés : ils fonctionnent donc sur n8n auto-hébergé et sur n8n Cloud, sans nœud communautaire. Ils se trouvent dans le dossier d’exemples du dépôt du nœud.
| Fichier | Ce qu’il fait |
|---|---|
http-request-image.json | Obtient un devis, s’arrête s’il dépasse une limite de prix, crée une tâche, interroge jusqu’à la fin et télécharge l’image sous forme de fichier binaire |
http-request-chat.json | Une complétion de chat via le point de terminaison compatible OpenAI |
Importer le workflow
Téléchargez le fichier .json. Dans n8n, choisissez Workflow menu > Import from File.
Créer un identifiant Bearer Auth
Créez un identifiant Bearer Auth, collez votre clé SpicyAPI comme jeton, et sélectionnez-le dans chaque nœud HTTP Request qui appelle api.spicyapi.ai. Le modèle d’image en compte quatre.
Modifier les réglages et exécuter
Ouvrez le nœud Settings. Dans le modèle d’image, vous pouvez changer le modèle, le prompt, le format d’image et le prix maximal en dollars américains (maxCostUsd). Remplacez le modèle par un identifiant du catalogue des modèles, puis exécutez le workflow.
Comment le modèle d’image est construit
Les mêmes étapes fonctionnent pour n’importe quel modèle média : vous pouvez donc recopier ce schéma dans votre propre workflow.
| Étape | Nœud | Requête |
|---|---|---|
| 1 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/quote avec model et input renvoie un quoteId et un estimatedCost |
| 2 | If | S’arrête avec une erreur lorsque le devis dépasse votre limite. Rien n’a encore été débité |
| 3 | HTTP Request | POST https://api.spicyapi.ai/api/v1/jobs/createTask avec le quoteId, expectedCost et un en-tête Idempotency-Key. Le modèle ajoute ?wait=50 pour que les modèles d’image rapides répondent dans la même requête |
| 4 | If, Wait, HTTP Request | Si la tâche est encore queued ou running, attendre 5 secondes et appeler GET https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=…, puis revérifier |
| 5 | HTTP Request | Télécharge output.assets[0].url sous forme de fichier |
Le format des requêtes et des réponses est décrit dans Tâches, Devis et compatibilité et Entrées et sorties média. Les fichiers qu’un modèle lit, comme une image de départ, peuvent être une URL publique ou un fichier spicy:// envoyé.
Option 3 : modèles de chat dans AI Agent et les autres nœuds d’IA
Le point de terminaison de chat de SpicyAPI est compatible OpenAI : les nœuds OpenAI de n8n peuvent donc l’utiliser. Vous n’avez pas besoin du nœud communautaire pour cela, et cela fonctionne sur n8n Cloud.
Créer un identifiant OpenAI
Dans n8n, créez un nouvel identifiant OpenAI. Collez votre clé SpicyAPI comme API Key et réglez Base URL sur :
https://api.spicyapi.ai/v1Choisir un modèle de chat
Ajoutez un OpenAI Chat Model à votre AI Agent ou Basic LLM Chain et sélectionnez l’identifiant. Choisissez un modèle dont l’identifiant se termine par /chat (écrit MODEL_ID_FROM_CATALOG sur cette page : copiez un vrai identifiant depuis le catalogue en ligne (GET /api/v1/models)). La liste complète se trouve sur GET https://api.spicyapi.ai/v1/models?modality=text.
À savoir :
- La liste de modèles inclut des modèles d’image et de vidéo. Avec une Base URL personnalisée, n8n affiche tout ce que renvoie
/v1/models, et la liste de SpicyAPI couvre tous ses modèles. Choisissez-en un qui se termine par/chat, ou saisissez l’identifiant en mode expression. Les modèles d’image et de vidéo ne sont pas des modèles de chat et échoueront dans un agent. - Use Responses API. Les versions récentes du nœud OpenAI Chat Model peuvent envoyer les requêtes à
/v1/responsesau lieu de/v1/chat/completions. SpicyAPI prend en charge/v1/responses, mais pasprevious_response_id. Si une requête d’agent échoue avec Responses API activé, désactivez Use Responses API dans le nœud. - Réglages d’échantillonnage. Si vous définissez une option que le modèle ne déclare pas, comme
temperaturesur un modèle de raisonnement, SpicyAPI l’ignore au lieu d’échouer et liste les noms ignorés dans l’en-tête de réponseX-Spicy-Ignored-Params; une valeur hors de la plage du modèle est remplacée par la valeur acceptée la plus proche et listée dansX-Spicy-Adjusted-Params. Les autres champs non déclarés renvoient toujours400. - Les outils et la sortie JSON dépendent du modèle. Consultez les
supported_parametersdu modèle dans/v1/models. - Les modèles de raisonnement comptent les tokens de raisonnement dans
max_tokens. Avec une valeur très petite, comme 20, un modèle de raisonnement peut dépenser tout le budget à réfléchir et ne renvoyer aucun texte (upstream_failed: « the output budget was spent on reasoning »). Augmentezmax_tokensou réduisezreasoning_effort. Les valeurs dereasoning_effortdiffèrent selon le modèle. - Streaming et coût. Le chat est facturé au token après l’appel. La page Texte et streaming donne les détails, et Recettes de chat propose des exemples de requêtes.
Limites de coût et nouvelles tentatives
Limiter les dépenses
- Utilisez une clé dédiée à n8n avec un plafond de dépense quotidien ou mensuel dans la console, et une liste de modèles autorisés si le workflow n’a besoin que de quelques modèles. Lorsqu’un plafond est atteint, l’appel échoue avec
40202et rien n’est débité pour lui. - Pour les modèles média, demandez d’abord un devis. Le nœud le fait pour vous ; les modèles le font avec les nœuds Get Quote et If. Le devis est le prix exact de cette requête, y compris les suppléments comme les frais par image de référence : une vérification de prix fondée sur un devis est donc fiable, alors qu’une vérification fondée sur le tableau du catalogue ne l’est pas.
- Les échecs ordinaires et les tâches expirées libèrent toute la réservation. Certains refus de contenu ne sont facturés que si la page du modèle l’indique explicitement. Lisez
settledetcostpour le montant final ; voir Facturation.
Pourquoi une nouvelle tentative ne facture pas deux fois
Chaque appel qui crée une tâche porte un Idempotency-Key. Si la même clé arrive de nouveau avec la même requête, SpicyAPI renvoie la tâche qu’il a déjà créée au lieu d’en créer une seconde : aucune seconde réservation ni aucun second débit n’a lieu. C’est important dans n8n, car une requête peut être envoyée deux fois sans que vous fassiez quoi que ce soit : Retry On Fail sur un nœud, ou un délai d’attente alors que la première requête est bien passée.
- Le nœud communautaire construit la clé à partir de l’exécution, du nœud, de l’élément et de son entrée. Une nouvelle tentative du nœud réutilise la même clé. Une nouvelle exécution, une entrée modifiée ou un autre passage dans une boucle constituent un nouveau travail et reçoivent une nouvelle clé.
- Les modèles la construisent à partir de l’identifiant d’exécution et de l’indice de l’élément, par exemple
n8n-<execution id>-<item index>. Si vous recopiez ce schéma dans une boucle, ajoutez le compteur de boucle à la clé, sinon chaque passage renverra la tâche du premier passage. - N’utilisez pas de valeur aléatoire qui change à chaque tentative, comme
$now: elle fait passer chaque nouvelle tentative pour un nouveau travail.
Plus de détails dans Idempotence.
Tâches vidéo longues
Les modèles d’image et d’audio terminent généralement en une seule requête. La vidéo peut prendre plusieurs minutes. Vous avez trois façons de gérer cela, de la plus simple à la plus légère pour n8n :
| Approche | Comment | Compromis |
|---|---|---|
| Attendre dans le nœud (par défaut) | Le nœud communautaire interroge avec un délai croissant jusqu’à la fin de la tâche ou jusqu’à Max Wait Time | Simple, mais l’exécution reste ouverte pendant le rendu de la vidéo |
| Envoyer, puis attendre et vérifier | Désactivez Wait for Completion, ajoutez un nœud Wait, puis Task > Get. Les modèles font de même avec des nœuds Wait, Get Task et If dans une boucle | Un emplacement d’exécution n’est utilisé que pour les appels courts |
| Callback | Réglez Callback URL sur {{ $execution.resumeUrl }} et faites-le suivre d’un nœud Wait configuré pour reprendre sur un appel webhook | n8n doit être joignable en HTTPS public. Quand l’appel arrive, lisez la tâche avec Task > Get et ne vous fiez pas au corps du callback |
Si le nœud cesse d’attendre, la tâche continue de s’exécuter sur SpicyAPI et elle est facturée si elle réussit. Récupérez-la plus tard avec Task > Get ; ne la renvoyez pas. Vous pouvez aussi la retrouver sous Logs dans la console.
Les résultats sont conservés pendant une durée limitée et les liens de téléchargement durent environ 20 minutes. Enregistrez les fichiers dans le workflow, par exemple vers un stockage cloud, si vous en avez besoin plus longtemps. Voir Conservation des données.
Dépannage
| Ce que vous voyez | Que faire |
|---|---|
Le test de l’identifiant échoue ou 401 | Copiez de nouveau la clé depuis la console. Une clé révoquée cesse de fonctionner immédiatement. Avec l’identifiant OpenAI, vérifiez que la Base URL se termine par /v1. |
SpicyAPI n’apparaît pas dans le panneau des nœuds | Vous êtes probablement sur n8n Cloud, ou n8n n’a pas redémarré après une installation manuelle. Cloud ne peut pas installer de nœuds non vérifiés ; utilisez les modèles. |
| Le bouton Install est absent de Community Nodes | Les paquets communautaires sont désactivés, ou vous n’êtes ni propriétaire ni administrateur. Demandez à la personne qui gère l’instance, ou installez à la main dans ~/.n8n/nodes. |
40201 | Solde insuffisant. Ajoutez des fonds dans la console, puis relancez. Une nouvelle tentative avec la même clé est sans risque. |
40202 | La clé a atteint un plafond de dépense quotidien, mensuel ou cumulé. Relevez le plafond ou attendez sa réinitialisation. |
40310 | L’adresse e-mail de votre compte n’est pas vérifiée. Ouvrez le lien de l’e-mail d’inscription. |
40004 | Aucun déploiement ne sert cette combinaison d’options. Modifiez l’option nommée dans le message. |
40901 | Le devis ne correspond plus, généralement parce qu’il a expiré (les devis durent 5 minutes). Redemandez un devis et renvoyez avec le même Idempotency-Key. |
| Une erreur indiquant que le prix dépasse votre limite | Le devis est supérieur à Max Cost per Item ou à maxCostUsd. Relevez la limite ou choisissez des options moins chères. Rien n’a été débité. |
| L’agent échoue sur un modèle | Vous avez peut-être choisi un modèle qui n’est pas un modèle de chat. Utilisez un identifiant qui se termine par /chat. Essayez aussi de désactiver Use Responses API. |
| Un modèle de raisonnement renvoie une réponse vide | Augmentez max_tokens ou réduisez reasoning_effort. |
| Le lien de téléchargement de la sortie renvoie une erreur plus tard | Les liens expirent après environ 20 minutes. Utilisez Task > Get pour obtenir un lien neuf, ou conservez la copie binaire. |
Memory, heap ou redémarrages lors du traitement de vidéo | Les données binaires sont conservées en mémoire par défaut. Définissez N8N_DEFAULT_BINARY_DATA_MODE=filesystem. |
| Le callback ne relance jamais le workflow | L’URL doit être en HTTPS public sur le port 443 ou 80, pas localhost. Vérifiez que l’URL de reprise de l’exécution est bien celle que votre n8n affiche publiquement. |
Les erreurs de SpicyAPI se terminent par un request_id ou un identifiant de tâche. Communiquez-le au support et la requête pourra être retrouvée précisément. Les codes d’erreur sont expliqués dans Erreurs, et une liste de vérification plus large figure dans Dépannage.
L’utilisation des modèles est soumise aux conditions de SpicyAPI et aux conditions de l’édition de n8n que vous utilisez.
Bot Telegram et Discord
Faites tourner votre propre bot privé qui crée des images et des vidéos, anime des images et discute avec des personnages que vous définissez, payé sur votre solde SpicyAPI, avec des limites de dépense vérifiées avant chaque débit.
Facturation
Comprendre la facturation SpicyAPI à l’usage en USD : devis, réservations, frais définitifs, refus propres aux modèles, recharges, plafonds et factures.

