Aller au contenu

Tâches et résultats

Soumettez des tâches asynchrones en toute sécurité avec l’idempotence, envoyez des médias, suivez l’état et téléchargez les résultats.

Soumettre une tâche (asynchrone)

Il n’y a pas d’appel synchrone. POST /api/v1/jobs valide l’entrée, réserve le prix sur vos crédits et répond immédiatement : 202 pour une nouvelle tâche, 200 lorsqu’une nouvelle tentative idempotente correspond à une précédente.

En-têteValeurRemarques
AuthorizationBearer <API key>Ou envoyez la clé dans x-api-key.
Content-Typeapplication/json
Idempotency-Key<unique string ≤128>Obligatoire. Ne le réutilisez que pour retenter la même requête.
ChampTypeObligatoireRemarques
modelstringobligatoireSlug du modèle dans le catalogue.
inputobjectobligatoireChamps du schéma d’entrée du modèle.
expectedPriceMicrosintegerfacultatifPrix que vous avez affiché à l’utilisateur. En cas d’écart, 409 PRICE_CHANGED est renvoyé avant tout débit.

Réessayer en toute sécurité

Conservez la même Idempotency-Key et le même corps lors d’une nouvelle tentative après une panne réseau. Utilisez une nouvelle clé si l’entrée change. Réutiliser une clé avec une entrée modifiée renvoie 409 IDEMPOTENCY_CONFLICT.

Importer des médias

Les champs image et vidéo acceptent une URL HTTPS publique ou une référence media:<uuid>. Importez d’abord les fichiers locaux :

POST /api/v1/media
curl -X POST https://api.hermes-ai.net/api/v1/media \
  -H "Authorization: Bearer $HERMES_API_KEY" \
  -H "Content-Type: image/png" \
  --data-binary @input.png
# → { "reference": "media:<uuid>", ... }  Use the reference in an image or video field.

Obtenir les résultats de la tâche

Interrogez GET /api/v1/jobs/{id} toutes les quelques secondes et arrêtez-vous à un statut final. Ne resoumettez pas automatiquement une tâche reconciliation_required.

StatutFinalSignification
queuednonAcceptée, en attente d’un worker.
submittingnonEn cours d’envoi au fournisseur du modèle.
runningnonLe modèle est en cours de génération.
succeededouiTerminée. Les résultats sont dans assets.
failedouiTerminée sans résultat. La réservation est libérée.
reconciliation_requiredouiThe result is being verified. Keep the task ID and do not resubmit automatically.
ChampTypeRemarques
idstringID de tâche Hermes AI. Utilisez-le pour interroger.
modelstringSlug du modèle.
statusstringVoir les statuts de tâche.
errorCodestring | nullDéfini lorsqu’une tâche échoue ou doit être examinée.
priceMicrosintegerDevis fixé à l’admission, en micro-unités USD.
currency"USD"
createdAt / updatedAtstringHorodatages ISO 8601.
assets[]array{ id, type, url?, text? }. url est un lien /api/v1/results/<uuid> de même origine.
replayedbooleanSoumission uniquement. true lorsqu’une nouvelle tentative idempotente correspond.

Les ressources du résultat contiennent du texte ou une URL /api/v1/results/<uuid> de même origine. Téléchargez les fichiers avec les mêmes identifiants (portée media:read). GET /api/v1/jobs liste vos 100 dernières tâches.