spicyapiDocumentation
Référence
Contenu principal

OpenAPI et index des points de terminaison

Contrat OpenAPI 3.1 téléchargeable, points de terminaison publics et guides associés, en-têtes communs et origine de production.

Le contrat public lisible par machine est disponible en YAML OpenAPI 3.1. Utilisez-le pour générer un client ou vérifier votre intégration avec les points de terminaison publics actuels.

Origine de l’API de production

https://api.spicyapi.ai est la seule origine de production déclarée par servers[0].url dans OpenAPI. Les API de tâches utilisent /api/v1 ; la compatibilité de protocole utilise /v1 et /v1beta.

Ces API de plateforme permettent de choisir les modèles, d’obtenir des estimations et de suivre les dépenses sans ouvrir la console. Le catalogue des modèles inclut les tarifs du compte ; utilisez un devis basé sur l’entrée exacte lorsque le tarif dépend des paramètres. L’historique des tâches et l’utilisation sont limités à la clé API utilisée pour l’appel. La création et la rotation des clés ainsi que les budgets restent dans la console. Chaque tableau renvoie au guide qui explique entièrement le point de terminaison.

Découverte des modèles, tarifs et API de compte

MéthodeCheminFonctionGuide
GET/console/v1/catalog/modelsCatalogue public d’évaluation : sans clé API, tarifs standard, limitation par adresse sourceDémarrage rapide
GET/api/v1/modelsLire les modèles appelables, les tarifs du compte et les schémas facultatifsCatalogue des modèles
GET/api/v1/models/{model}Lire un modèle et son JSON Schema completCatalogue des modèles
POST/api/v1/jobs/quoteObtenir un devis valable cinq minutes pour la requête exacte, sans créer de tâche ni réserver de fondsDevis
GET/api/v1/chat/creditLire le solde disponible, réservé et totalFacturation
GET/api/v1/usageLire les appels de la clé actuelle et les dépenses USD réglées, par date et par modèleFacturation

API de génération et de tâches

MéthodeCheminFonctionGuide
GET/api/v1/jobsLister l’historique des tâches de la clé API actuelle, avec pagination par curseurTâches
POST/api/v1/jobs/createTaskCréer une tâche de génération asynchroneTâches
GET/api/v1/jobs/recordInfoLire une tâche créée avec la clé API utilisée pour l’appelTâches
POST/api/v1/jobs/retryCréer une tâche depuis une source échouée ou expirée ; les anciennes traces annulées restent compatiblesActions sur les tâches
POST/api/v1/jobs/purgeDétruire les fichiers et le prompt d’une tâche terminée ; la trace de facturation reste inchangéeConservation
POST/api/v1/jobs/streamExécuter un modèle de texte et diffuser la réponse en SSETexte et streaming

API de médias

MéthodeCheminFonctionGuide
POST/api/v1/common/upload-urlÉmettre un ticket d’envoi direct de médiaMédias
POST/api/v1/files/{fileId}/commitVérifier et valider un envoi direct, puis renvoyer l’URI spicy:// utilisable dans une tâcheMédias
POST/api/v1/files/importImporter un fichier de poids LoRA depuis un lien, avec un jeton d’accès facultatif utilisé une seule fois et jamais conservé ; renvoie une URI spicy:// utilisable dans une tâchePoids d’adaptateur
POST/api/v1/common/download-urlÉmettre une URL de téléchargement temporaire pour une sortie de tâche (facultatif : les tâches terminées en incluent déjà une)Médias
POST/api/v1/assetsEnregistrer un fichier dans la bibliothèque d’assets (Idempotency-Key obligatoire)Médias
GET/api/v1/assetsLister vos assets enregistrés (filtres favorite, collectionId, q ; tri avec sort)Médias
GET/api/v1/assets/usageConsulter le forfait, l’utilisation et les limites de la bibliothèque d’assetsMédias
GET/api/v1/assets/{assetId}Obtenir un asset avec un nouveau lien d’aperçu privéMédias
PATCH/api/v1/assets/{assetId}Renommer un asset ou modifier son indicateur favoriteMédias
DELETE/api/v1/assets/{assetId}Supprimer un assetMédias
GET/api/v1/assets/entitiesLister les personnages de votre bibliothèque d’assets (lecture seule)Médias
GET/api/v1/assets/entities/{entityId}Obtenir un personnage avec ses images dans l’ordre (lecture seule)Médias

Authentification et enveloppes

Tous les points de terminaison, sauf le catalogue public, exigent votre clé API sous la forme Authorization: Bearer sk-spicy-…. Les points de terminaison compatibles (/v1, /v1beta) acceptent aussi x-api-key, envoyé par les SDK Anthropic, et x-goog-api-key, envoyé par les SDK Google GenAI. Une clé dans les paramètres de l’URL n’est jamais acceptée. Les tâches, relances, destructions et liens de téléchargement sont visibles uniquement avec la clé API qui a créé la tâche ; voir Authentification.

Les réponses JSON des API de tâches partagent l’enveloppe {code,msg,data,request_id} ; les points de terminaison compatibles emploient les formats de leurs propres protocoles. Le résultat d’une tâche est exprimé par data.state, pas par le code de l’enveloppe. Voir Erreurs.

En-têtes utilisés par plusieurs points de terminaison

En-têteDestinationFonction
Authorization: Bearer …Tout sauf le catalogue publicVotre clé API
Idempotency-Keyjobs/createTask, jobs/retry, jobs/stream, POST /v1/videos et les points de terminaison de texte /v1 et /v1betaSécurise un renvoi après une erreur réseau. Sur les API de tâches, renvoie la tâche originale ; sur les API de texte, empêche une seconde facturation mais ne peut restituer une réponse perdue. Voir Idempotence
X-Spicy-Retentionjobs/createTask, jobs/streamRaccourcit la conservation des sorties et du prompt de cette tâche, en secondes. Voir Conservation
Accept-LanguageTousLangue des messages d’erreur ; les codes ne changent jamais. Voir Erreurs

Utiliser le fichier OpenAPI

  • Essayer des requêtes sans écrire de code : importez le fichier OpenAPI lié en haut de page dans un client API tel que Postman, Insomnia ou Bruno, puis définissez votre clé API comme jeton bearer. N’oubliez pas que la création de tâches coûte de l’argent.
  • Générer un client : fournissez le même fichier à un générateur de code OpenAPI 3.1 pour votre langage.

Évolution du contrat

  • Ne conservez pas les paramètres de modèles comme une copie figée et codée en dur ; lisez inputSchema depuis /models/{model}.
  • Tolérez les champs inconnus dans les réponses, mais ne devinez jamais les champs inconnus d’une requête.
  • Fournissez le YAML OpenAPI à la génération de code ou aux tests de contrat avant une publication.

Points de terminaison compatibles

MéthodeCheminProtocole
GET/v1/modelsModels
POST/v1/chat/completionsChat Completions
POST/v1/responsesResponses
POST/v1/messagesMessages
POST/v1beta/models/{model}:generateContentGemini generateContent
POST/v1beta/models/{model}:streamGenerateContentGemini streamGenerateContent
POST/v1/videosVideos
GET/v1/videos/{videoId}État de la vidéo
GET/v1/videos/{videoId}/contentContenu de la vidéo

Les points de terminaison de texte sont décrits dans Texte et streaming ; leurs tarifs le sont dans Devis et compatibilité.

Le package TypeScript officiel est @spicyapi/sdk. Pour Python et Go, ou si vous ne pouvez pas ajouter de dépendance, les clients de référence copiables ci-dessous appellent ces points de terminaison avec le seul environnement d’exécution du langage. Le client Python gère seul un traitement média complet : envoyer et valider une référence, confirmer le tarif par un devis, créer la tâche et l’interroger jusqu’à un état terminal, lire un résultat sous forme de fichiers ou de texte, renouveler un lien de sortie expiré, détruire ensuite le contenu stocké et vérifier une signature de webhook. Le client Go couvre la même chaîne avec un contexte pour chaque appel et une erreur typée récupérable par errors.As. Le client TypeScript couvre la création de tâches, la relance, la lecture des états et une attente bornée ; pour les envois de fichiers et le reste des API dans Node.js, utilisez le SDK.

Clients de référence copiables

Exemples sans dépendance couvrant la découverte des modèles, la création de tâches, la relance d’une tâche en échec, le suivi des états, l’attente bornée, l’idempotence et les erreurs. Une tâche acceptée ne peut plus être annulée.

Ce sont des exemples de documentation, pas des paquets npm ou PyPI ni des modules Go publiés. Dix minutes est une limite locale, pas un SLA.

Sur cette page