Envoyer les octets du fichier
Transport HTTP binaire hors de MCP. Utilisez uniquement l’en-tête Authorization temporaire renvoyé par createUploadSession et Content-Type: application/octet-stream. Envoyez les octets bruts, pas du JSON, du base64 ni du multipart. Une seule tentative PUT par session. Le nombre d’octets reçus doit correspondre à size_bytes, même en l’absence de Content-Length. Ne suivez jamais les redirections et ne transmettez jamais vos identifiants d’espace de travail. Si la réponse au PUT est perdue, essayez de créer la traduction avec upload_id. Si aucun téléversement complet n’existe, demandez une nouvelle session. Ce point de terminaison ne peut pas être appelé dans AI Glot Code Mode. Il ne crée pas de traduction et ne consomme aucun crédit.
PUT/v1/uploads/{upload_id}/bytes
Utilisez upload_url, method et headers renvoyés lors de la création d’une session d’envoi. Cet endpoint nécessite l’en-tête temporaire Authorization, réservé à l’envoi. Une clé API d’espace de travail ou un jeton d’accès OAuth ne peut pas autoriser cette requête.
Envoyez le fichier lui-même dans le corps HTTP avec Content-Type: application/octet-stream. Ne l’enveloppez pas dans du JSON, du base64 ou du multipart. Si Content-Length est fourni, sa valeur doit être égale à size_bytes de la session. Les requêtes sans cet en-tête restent limitées à la taille attendue. Les corps HTTP compressés sont refusés ; envoyez les octets du document d’origine.
Une réponse positive contient upload_id, uploaded: true et size_bytes. Poursuivez en transmettant upload_id pour créer une traduction avec le même identifiant d’accès à l’espace de travail que celui utilisé pour créer la session. Seule l’approbation lance la traduction et dépense des crédits.
Reprendre en toute sécurité
Une session autorise une seule tentative PUT. Les requêtes simultanées et les PUT répétés ne peuvent pas remplacer son fichier. Une tentative échouée ou interrompue nécessite une nouvelle session.
Si la réponse à l’envoi a été perdue, essayez d’abord de créer la traduction avec l’upload_id existant. Un envoi complet est conservé même si le client n’a pas reçu la réponse de confirmation. Si aucun envoi complet n’existe, demandez une nouvelle session et renvoyez le fichier. Ne renvoyez jamais les octets pour écraser l’ancienne session. La récupération par upload_id est possible jusqu’au nettoyage de la session, au moins 24 heures après son émission. Conservez l’ID de lot pour retrouver ensuite la traduction dans votre historique.
Un envoi expiré renvoie file_expired. Un PUT effectué après utilisation de l’autorisation renvoie batch_not_editable. Une autre connexion ou un autre espace de travail ne peut pas utiliser l’envoi. Des octets incomplets ou une taille incorrecte renvoient invalid_parameter ; un nombre d’octets supérieur à la taille de la session renvoie file_too_large.
Cet endpoint binaire est appelé par un client HTTP externe, et non par un outil MCP ou un script AI Glot Code Mode. Si votre assistant ne peut pas accéder au fichier d’origine ou effectuer une requête PUT, informez-en l’utilisateur et proposez-lui l’application Web, la CLI ou un lien de téléchargement HTTPS. Ne divulguez jamais le secret temporaire dans votre explication.
Réponse
Envoyer des octets bruts à une session temporaire de téléversement
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