Garder la clé API côté serveur
N’exposez jamais la clé dans le navigateur, l’application mobile, un prompt, un journal ou une sortie d’agent. Envoyez les requêtes depuis un backend sous votre contrôle.
Intégrations
Utilisez les appels compatibles OpenAI pour le chat et le jeu de rôle, ou l’API de tâches pour les images, vidéos et fichiers audio. Choisissez un modèle, gardez la clé sur votre serveur et suivez le parcours adapté au résultat souhaité.
Choisissez votre voie
Commencez là où vous travaillez déjà. Chaque voie mène aux mêmes modèles, aux mêmes tarifs.
Démarrage en 5 minutes
Créez une tâche, gardez son ID, puis récupérez le fichier terminé. Le même schéma vaut pour tous les modèles d’image, de vidéo et d’audio.
Comparer usage, entrées, politique, disponibilité actuelle et prix.
Remplacez l’ID de modèle et l’input de l’exemple par les champs exacts affichés sur la page de ce modèle. Ne devinez jamais les paramètres d’après un autre modèle.
HTTP 202 signifie que la tâche est acceptée, pas que la génération est terminée ; le code métier de l’enveloppe reste code: 200. Enregistrez data.taskId immédiatement ; estimatedCost est le montant réservé pour cette tâche.
queued et running sont encore en cours ; succeeded, failed et expired sont terminaux. Arrêtez d’interroger dès qu’un état terminal apparaît, au lieu d’attendre seulement le succès.
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 est un véritable point de terminaison texte-vers-image. Pour un autre modèle de médias, utilisez son identifiant exact et son schéma.
{
"code": 200,
"msg": "success",
"data": {
"taskId": "job_01k...",
"state": "queued"
},
"request_id": "req_01k..."
}Extrait de réponse. Remplacez les identifiants et URL d’illustration par les valeurs de votre propre réponse.
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
}
}Extrait de réponse. Remplacez les identifiants et URL d’illustration par les valeurs de votre propre réponse.
# Copy data.output.assets[0].url from the task response
curl -L -o result.png "URL_FROM_TASK_RESPONSE"Téléchargez directement data.output.assets[0].url, sans clé API. Les URL durent généralement 20 minutes ; consultez à nouveau la tâche pour en obtenir une nouvelle et copiez les fichiers à conserver dans votre stockage. Si le fichier est pending, interrogez à nouveau jusqu’à ce que l’URL soit prête.
Annuaire
Choisissez l’outil que vous utilisez déjà. Chaque carte ouvre son guide de configuration.
Sécurité côté serveur
Ces trois règles couvrent la fuite de clé, la double facturation et la perte de tâche. C’est le minimum avant la mise en production.
N’exposez jamais la clé dans le navigateur, l’application mobile, un prompt, un journal ou une sortie d’agent. Envoyez les requêtes depuis un backend sous votre contrôle.
Envoyez un Idempotency-Key stable à chaque création de tâche. Si le résultat réseau est incertain, rejouez le même travail avec la même clé pour ne jamais créer deux tâches facturables.
Conservez l’ID de tâche et utilisez un webhook signé ou des vérifications bornées. Une tâche acceptée démarre et ne peut pas être annulée. Les tâches échouées ou expirées ne sont généralement pas facturées. Certains modèles facturent les refus de contenu comme indiqué sur leur page ; consultez ces conditions avant l’envoi.
Documentation API