Annuler une traduction
S'arrête dans le délai d'une tâche. Le travail déjà effectué est facturé (credits_charged dans la réponse, car une traduction exécutée a un coût réel); le reste de la réservation est libéré. Le lot passe en cancelled, un état terminal propre depuis le 2026-09-02. Auparavant, il était rapporté comme failed avec error.code: "cancelled", donc tout comptage d'échecs incluait silencieusement les arrêts volontaires; un lot annulé ne retourne désormais plus d'objet error.
POST/v1/batches/{batch_id}/cancel
Nécessite batches:write. L’arrêt s’effectue à la fin de la tâche en cours plutôt qu’instantanément, car une tâche lancée est terminée plutôt qu’abandonnée à moitié écrite.
Facturation
Le travail déjà effectué est facturé et la réponse indique le montant dans credits_charged. La partie non utilisée de la réservation est restituée au solde.
Il ne s’agit pas d’une politique de remboursement mais d’un fait comptable : la traduction exécutée a consommé de la capacité de modèle. Annuler tôt coûte moins cher, annuler vers la fin coûte presque le montant total.
État final de la traduction
Le lot passe au statut cancelled, qui est un état terminal propre et non un type d’échec. error.code est également "cancelled", ainsi l’appelant qui ne lit que l’erreur comprend tout de même la raison.
Cette distinction est importante lors du polling. cancelled signifie que rien n’a dysfonctionné : quelqu’un a arrêté le travail intentionnellement. failed signifie que la traduction n’a pas pu se terminer et error.code précise l’origine de l’erreur. Considérez les deux comme terminaux et arrêtez le polling, mais seul le statut failed justifie une tentative de relance ou une alerte.
Tout contenu déjà produit par la traduction n’est pas téléchargeable. Un résultat partiel n’est pas un fichier traduit, et en retourner un serait pire que de ne rien retourner.
Réponse
Annuler une traduction en cours
dataobjectrequiredrequest_idstringrequiredCodes possibles : invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCodes possibles : authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_credits
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_scope, feature_not_available, admin_required, file_retention_expired
errorobjectrequiredrequest_idstringrequiredCodes possibles : batch_not_found, glossary_not_found, resource_not_found
errorobjectrequiredrequest_idstringrequiredCodes possibles : glossary_already_exists, result_not_ready, batch_not_editable, no_plan_yet, batch_not_awaiting_approval
errorobjectrequiredrequest_idstringrequiredCodes possibles : file_expired
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large, file_too_large, result_too_large
errorobjectrequiredrequest_idstringrequiredCodes possibles : language_not_supported, invalid_language_pair, glossary_term_limit_reached, glossary_limit_reached, invalid_glossary_terms, unsupported_format, file_fetch_failed, plan_invalid
errorobjectrequiredrequest_idstringrequiredCodes possibles : rate_limited
errorobjectrequiredrequest_idstringrequiredCodes possibles : internal_error
errorobjectrequiredrequest_idstringrequiredCodes possibles : service_unavailable
errorobjectrequiredrequest_idstringrequired