Exécutions
Comment une exécution de l'API publique est créée, interrogée, réessayée et idempotente.
Une exécution applique un modèle à un fichier envoyé, côté serveur, et renvoie le résultat.
Les exécutions rapides répondent tout de suite
POST /templates/{id}/runs attend jusqu'à 30 secondes que l'exécution se termine. Si elle finit à temps, vous obtenez 201 avec l'exécution terminée — son résultat est déjà prêt à être téléchargé.
Exécutions plus lentes : 202 et interrogation
Après 30 secondes, vous obtenez 202, un en-tête Location pointant vers l'exécution, et un en-tête Retry-After indiquant combien de temps attendre avant de réinterroger GET /runs/{id}.
Overrides
Un envoi CSV peut inclure delimiter et header_row à côté de file, ce qui remplace les valeurs détectées automatiquement pour cette seule exécution.
curl -X POST "https://doctransform.xyz/api/v1/templates/tmpl_123/runs" \
-H "Authorization: Bearer $DOCTRANSFORM_API_KEY" \
-F "file=@/chemin/vers/votre/fichier.csv" \
-F "delimiter=;" \
-F "header_row=0"Quand un fichier ne peut pas s'exécuter
Si le fichier envoyé n'a pas une colonne que les opérations du modèle nécessitent, la requête elle-même est refusée avec 422 TEMPLATE_COLUMNS_MISSING — pas comme une exécution terminée mais échouée à interroger.
Télécharger le résultat
Le résultat d'une exécution terminée reste téléchargeable pendant 30 minutes après son achèvement, depuis n'importe quel worker. Passé ce délai, ou une fois expiré, GET /runs/{id}/output répond 404 RUN_NOT_FOUND.
Réessayer en toute sécurité : Idempotency-Key
Envoyez un en-tête Idempotency-Key avec POST /templates/{id}/runs, et une nouvelle tentative réseau de la même requête rejoue l'exécution déjà démarrée ou terminée pour cette clé, au lieu d'en démarrer (et facturer) une seconde. Réutiliser la même clé avec une requête différente répond 409 IDEMPOTENCY_KEY_REUSED.
RUN_NOT_FOUND, RUN_INTERRUPTED, RUN_TIMEOUT → renvoyer
Une exécution dont le worker a redémarré avant sa fin se règle en RUN_INTERRUPTED ; une qui tourne encore après 10 minutes se règle en RUN_TIMEOUT ; une dont l'id est inconnu ou expiré répond RUN_NOT_FOUND. Dans les trois cas, renvoyez la requête avec la même Idempotency-Key pour réessayer.
Voir Erreurs et limites pour chaque code de statut qu'une exécution peut renvoyer.