Crear una sesión de carga
Prepara la carga de un archivo local para un agente que pueda leer los bytes y realizar llamadas HTTP PUT fuera de MCP. Devuelve upload_url, method, las cabeceras exactas, upload_id e instrucciones. Envía los bytes originales sin procesar con la cabecera Authorization temporal devuelta. No uses nunca una clave de API del espacio de trabajo ni un token de OAuth. La capacidad de carga caduca a los 10 minutos y permite un único intento de PUT. Tras completar la carga, envía upload_id para crear una traducción con la misma credencial en el plazo de una hora. No consume créditos. Máximo de 20 cargas pendientes y 120 sesiones por hora y espacio de trabajo.
POST/v1/uploads
Requiere batches:create. Crear una sesión no consume créditos ni crea una traducción. Envía un nombre de archivo sin ruta y con una extensión compatible, además del tamaño exacto en bytes del archivo original:
{ "filename": "catalogue.xlsx", "size_bytes": 4096 }La respuesta incluye upload_id, upload_url, method, headers, expires_at, consume_until e instructions con indicaciones legibles. Usa la URL y los encabezados devueltos exactamente como aparecen con un cliente HTTP externo y, después, crea la traducción con upload_id y las mismas credenciales. El nombre del archivo ya está asociado a la sesión.
const session = createUploadResponse.data;
const uploaded = await fetch(session.upload_url, {
method: session.method,
headers: session.headers,
body: originalFileBytes,
redirect: "error",
});
if (!uploaded.ok) throw new Error(`Upload failed: ${uploaded.status}`);
// Use the original workspace credential for POST /v1/batches:
// { upload_id: session.upload_id, instruction: "Translate into French" }El encabezado temporal Authorization solo permite un intento de carga de este documento durante 10 minutos. La URL por sí sola no da acceso. No sustituyas nunca ese encabezado por una clave de API del espacio de trabajo o un token OAuth, no incluyas secretos en una URL, no sigas redirecciones ni registres los encabezados temporales. El secreto de carga no permite leer documentos, crear traducciones ni aprobar gastos. Revocar la conexión o retirar su permiso invalida las capacidades de carga que no se hayan usado.
El número de bytes recibidos debe coincidir con size_bytes. El límite de cada formato se comprueba antes de emitir la capacidad. Crea la traducción en el plazo de una hora. Un espacio de trabajo puede tener 20 cargas pendientes y crear 120 sesiones por hora. Los archivos sin usar pueden eliminarse después de 24 horas y se recogen en la limpieza diaria. Una vez que una traducción utiliza el archivo, se aplica el periodo de retención habitual. 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.
Requisitos para agentes
El entorno de ejecución del agente necesita acceso a los archivos locales y un cliente HTTP capaz de enviar solicitudes PUT sin procesar. MCP por sí solo no puede enviar bytes binarios, y AI Glot Code Mode no tiene acceso a archivos locales ni HTTP saliente. Si no se dispone de esas capacidades, indica claramente al usuario que el asistente no puede enviar el archivo adjunto. Recomienda subirlo desde la aplicación web de AI Glot, usar la CLI o facilitar un enlace de descarga HTTPS para file_url. No afirmes nunca que una carga se ha completado sin comprobarlo.
Después de cargar el archivo, revisa el plan de traducción y las exclusiones antes de aprobar el coste en créditos. Enviar bytes sin procesar explica cómo reintentar y resolver errores.
Respuesta
Crear una sesión temporal para cargar un archivo
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