Enviar los bytes del archivo
Transporte HTTP binario fuera de MCP. Usa únicamente la cabecera Authorization temporal devuelta por createUploadSession y Content-Type: application/octet-stream. Envía los bytes sin procesar, no JSON, base64 ni multipart. Se permite un único intento de PUT por sesión; el número de bytes recibidos debe coincidir con size_bytes, incluso si no se proporciona Content-Length. No sigas redirecciones ni reenvíes las credenciales del espacio de trabajo. Si se pierde la respuesta del PUT, intenta crear la traducción con upload_id; si no hay una carga completa, solicita una sesión nueva. Este endpoint no se puede llamar desde AI Glot Code Mode. No crea una traducción ni consume créditos.
PUT/v1/uploads/{upload_id}/bytes
Usa upload_url, method y headers, que se devuelven al crear una sesión de carga. Este endpoint requiere el encabezado temporal Authorization, exclusivo para cargas. Una clave de API del espacio de trabajo o un token de acceso OAuth no autorizan esta solicitud.
Envía el propio archivo en el cuerpo HTTP con Content-Type: application/octet-stream. No lo envuelvas en JSON, base64 ni multipart. Si incluyes Content-Length, debe coincidir con size_bytes de la sesión. Las solicitudes sin ese encabezado también están limitadas al tamaño esperado. Se rechazan los cuerpos HTTP comprimidos; envía los bytes originales del documento.
Una respuesta correcta incluye upload_id, uploaded: true y size_bytes. Continúa enviando upload_id para crear una traducción con las mismas credenciales del espacio de trabajo que crearon la sesión. La traducción no empieza ni consume créditos hasta que se aprueba.
Recuperación segura
Cada sesión permite un único intento PUT. Las solicitudes simultáneas o los intentos PUT repetidos no pueden sustituir el archivo. Si un intento falla o se interrumpe, necesitas una sesión nueva.
Si se perdió la respuesta de la carga, prueba primero a crear la traducción con el upload_id existente. La carga completa se conserva aunque el cliente no haya recibido la respuesta de confirmación. Si no hay ninguna carga completa, solicita una nueva sesión y vuelve a enviar el archivo. No vuelvas a enviar bytes para sobrescribir la sesión anterior. La recuperación mediante upload_id está disponible hasta que se elimine la sesión, como mínimo 24 horas después de su emisión. Guarda el ID del lote para recuperar la traducción de tu historial más adelante.
Una carga caducada devuelve file_expired. Un PUT después de que se haya usado la capacidad devuelve batch_not_editable. Otra conexión u otro espacio de trabajo no pueden usar la carga. Si faltan bytes o el tamaño no es correcto, se devuelve invalid_parameter; si se envían más bytes de los que admite el tamaño de la sesión, se devuelve file_too_large.
Este endpoint binario se invoca desde un cliente HTTP externo, no desde una herramienta MCP ni un script de AI Glot Code Mode. Si el asistente no puede acceder al archivo original o realizar una solicitud PUT, explícaselo al usuario y ofrécele la aplicación web, la CLI o un enlace de descarga HTTPS. No reveles el secreto temporal en tu explicación.
Respuesta
Enviar bytes sin procesar a una sesión temporal de carga
dataobjectrequiredrequest_idstringrequiredCódigos posibles: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCódigos posibles: authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCódigos posibles: insufficient_credits
errorobjectrequiredrequest_idstringrequiredCódigos posibles: insufficient_scope, feature_not_available, admin_required, file_retention_expired
errorobjectrequiredrequest_idstringrequiredCódigos posibles: batch_not_found, glossary_not_found, resource_not_found
errorobjectrequiredrequest_idstringrequiredCódigos posibles: glossary_already_exists, result_not_ready, batch_not_editable, no_plan_yet, batch_not_awaiting_approval
errorobjectrequiredrequest_idstringrequiredCódigos posibles: file_expired
errorobjectrequiredrequest_idstringrequiredCódigos posibles: request_too_large, file_too_large, result_too_large
errorobjectrequiredrequest_idstringrequiredCódigos posibles: language_not_supported, invalid_language_pair, glossary_term_limit_reached, glossary_limit_reached, invalid_glossary_terms, unsupported_format, file_fetch_failed, plan_invalid
errorobjectrequiredrequest_idstringrequiredCódigos posibles: rate_limited
errorobjectrequiredrequest_idstringrequiredCódigos posibles: internal_error
errorobjectrequiredrequest_idstringrequiredCódigos posibles: service_unavailable
errorobjectrequiredrequest_idstringrequired