Een uploadsessie maken
Prepare a local file upload for an agent that can read the bytes and make HTTP PUT calls outside MCP. Returns upload_url, method, exact headers, upload_id and instructions. Send the original raw bytes with the returned temporary Authorization header, never a workspace API key or OAuth token. The upload capability expires after 10 minutes and permits one PUT attempt. After success, send upload_id to create a translation on the same credential within one hour. Costs no credits. Maximum 20 pending uploads and 120 sessions per hour per workspace.
POST/v1/uploads
Vereist batches:create. Een sessie maken kost geen credits en maakt geen vertaling aan. Verstuur alleen de bestandsnaam, met een ondersteunde extensie, en de exacte grootte van de oorspronkelijke bytes:
{ "filename": "catalogue.xlsx", "size_bytes": 4096 }De respons bevat upload_id, upload_url, method, headers, expires_at, consume_until en leesbare instructions. Gebruik de geretourneerde URL en headers exact zoals ze zijn met een externe HTTP-client. Maak daarna de vertaling aan met upload_id en dezelfde inloggegevens. De bestandsnaam is al aan de sessie gekoppeld.
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" }De tijdelijke header Authorization geeft uitsluitend toestemming voor één uploadpoging van dit document binnen 10 minuten. De URL alleen geeft geen toegang. Vervang deze header nooit door een API-sleutel voor de workspace of een OAuth-token, zet geen geheimen in een URL, volg geen omleidingen en log de tijdelijke headers niet. Het uploadgeheim kan geen documenten lezen, vertalingen aanmaken of uitgaven goedkeuren. Als de verbinding wordt ingetrokken of de toestemming wordt verwijderd, zijn de ongebruikte uploadmogelijkheden ongeldig.
Het ontvangen aantal bytes moet overeenkomen met size_bytes; de limiet per bestandsformaat wordt gecontroleerd voordat de mogelijkheid wordt verstrekt. Maak de vertaling binnen één uur aan. Een workspace kan 20 uploads in behandeling hebben en 120 sessies per uur aanmaken. Ongebruikte bestanden komen na 24 uur in aanmerking voor opruiming en worden tijdens de dagelijkse opschoonronde verwijderd. Zodra een vertaling het bestand in gebruik neemt, geldt de normale bewaartermijn. Herstel via upload_id is mogelijk totdat de sessie wordt opgeschoond, en minstens 24 uur na uitgifte. Bewaar de batch-ID om de vertaling later in je geschiedenis terug te vinden.
Vereisten voor agents
De agentomgeving moet toegang hebben tot lokale bestanden en beschikken over een HTTP-client die onbewerkte PUT-verzoeken kan versturen. MCP alleen kan geen binaire bytes versturen en AI Glot Code Mode heeft geen toegang tot lokale bestanden of uitgaand HTTP-verkeer. Als deze mogelijkheden ontbreken, vertel de gebruiker dan duidelijk dat de assistent de bijlage niet kan versturen. Raad aan om het bestand te uploaden via de AI Glot-webapp, de CLI te gebruiken of een HTTPS-downloadlink voor file_url op te geven. Beweer nooit dat een upload is geslaagd zonder dit te controleren.
Controleer na het uploaden het vertaalplan en de uitzonderingen voordat je de kredietkosten goedkeurt. Onbewerkte bytes versturen beschrijft nieuwe pogingen en fouten.
Antwoord
Create a temporary file upload session
dataobjectrequiredrequest_idstringrequiredPossible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredPossible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredPossible codes: insufficient_credits
errorobjectrequiredrequest_idstringrequiredPossible codes: insufficient_scope, feature_not_available, admin_required, file_retention_expired
errorobjectrequiredrequest_idstringrequiredPossible codes: batch_not_found, glossary_not_found, resource_not_found
errorobjectrequiredrequest_idstringrequiredPossible codes: glossary_already_exists, result_not_ready, batch_not_editable, no_plan_yet, plan_changed, batch_not_awaiting_approval
errorobjectrequiredrequest_idstringrequiredPossible codes: file_expired
errorobjectrequiredrequest_idstringrequiredPossible codes: request_too_large, file_too_large, result_too_large
errorobjectrequiredrequest_idstringrequiredPossible codes: language_not_supported, invalid_language_pair, glossary_term_limit_reached, glossary_limit_reached, invalid_glossary_terms, unsupported_format, file_fetch_failed, plan_invalid
errorobjectrequiredrequest_idstringrequiredPossible codes: rate_limited
errorobjectrequiredrequest_idstringrequiredPossible codes: internal_error
errorobjectrequiredrequest_idstringrequiredPossible codes: service_unavailable
errorobjectrequiredrequest_idstringrequired