Bestandsbytes versturen
Binary HTTP transport outside MCP. Use only the temporary Authorization header returned by createUploadSession and Content-Type: application/octet-stream. Send raw bytes, not JSON, base64 or multipart. One PUT attempt per session; the received byte count must match size_bytes even without Content-Length. Never follow redirects or forward your workspace credential. After a lost PUT response, try creating the translation with upload_id; if no complete upload exists, request a new session. This endpoint cannot be called inside AI Glot Code Mode. It does not create a translation or spend credits.
PUT/v1/uploads/{upload_id}/bytes
Gebruik de upload_url, method en headers die zijn geretourneerd bij het aanmaken van een uploadsessie. Voor dit endpoint is de tijdelijke Authorization-header vereist, die alleen voor uploads geldt. Een API-sleutel voor de workspace of een OAuth-toegangstoken geeft geen toestemming voor dit verzoek.
Verstuur het bestand zelf als HTTP-body met Content-Type: application/octet-stream. Verpak het niet in JSON, base64 of multipart. Als Content-Length wordt meegestuurd, moet deze gelijk zijn aan de size_bytes van de sessie. Ook zonder die header blijft het verzoek begrensd door de verwachte grootte. Gecomprimeerde HTTP-bodies worden geweigerd; verstuur de oorspronkelijke documentbytes.
Een geslaagde respons bevat upload_id, uploaded: true en size_bytes. Ga verder door upload_id mee te sturen bij het aanmaken van een vertaling, met dezelfde workspace-inloggegevens waarmee de sessie is aangemaakt. De vertaling wordt pas gestart en kost pas credits nadat deze is goedgekeurd.
Veilig herstellen
Eén sessie staat één PUT-poging toe. Gelijktijdige verzoeken en herhaalde PUT-verzoeken kunnen het bestand niet vervangen. Voor een mislukte of onderbroken poging is een nieuwe sessie nodig.
Als de uploadrespons verloren is gegaan, probeer dan eerst met de bestaande upload_id een vertaling aan te maken. Een volledige upload blijft bewaard, ook als de client de succesrespons niet heeft ontvangen. Als er geen volledige upload beschikbaar is, vraag dan een nieuwe sessie aan en verstuur het bestand opnieuw. Verstuur de bytes nooit opnieuw om de oude sessie te overschrijven. 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.
Een verlopen upload geeft file_expired terug. Een PUT nadat de mogelijkheid is gebruikt, geeft batch_not_editable terug. Een andere verbinding of workspace kan de upload niet gebruiken. Onvolledige bytes of een onjuiste grootte geven invalid_parameter terug; bytes boven de sessiegrootte geven file_too_large terug.
Dit binaire endpoint wordt aangeroepen door een externe HTTP-client, niet door een MCP-tool of een AI Glot Code Mode-script. Als je assistent geen toegang heeft tot het oorspronkelijke bestand of geen PUT-verzoek kan versturen, vertel dit dan aan de gebruiker en bied de webapp, CLI of een HTTPS-downloadlink aan. Maak het tijdelijke geheim nooit bekend in je uitleg.
Antwoord
Send raw bytes to a temporary 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