Skip to main content
POST
Upload files directly to the platform by calling this endpoint to process your content for translation and transcription services. This endpoint accepts a wide variety of file formats including:
  • Video files: MP4, AVI, MOV, WMV
  • Audio files: MP3, WAV, AAC, M4A
  • Document files: DOCX, PDF, TXT, RTF
  • Presentation files: PPTX, PPT
  • Spreadsheet files: XLSX, XLS
  • Image to Image translation: JPEG, JPG, PNG (direct upload for image-based translation)
  • And many more formats
All uploaded files can be processed for translation into your target language. For Image to Image translation, use Direct Upload with a JPEG, JPG, or PNG file, then create a document order as usual.

Authorizations

This endpoint requires API key authentication. Include your API key in the request header:
  • Header name: X-Api-Key
  • Header value: Your API key from the Ollang dashboard
  • Format: X-Api-Key: your-api-key-here
You can obtain your API key from your Ollang dashboard.

The multipart filename matters

The stored file’s extension comes from the filename of the multipart file part, not from the name field. A part sent without a filename is rejected with 400 Unsupported file type, as is one whose extension the platform cannot process — before the project is created, so a rejected upload leaves nothing behind. Most HTTP clients set the filename from the file you hand them (curl -F file=@video.mp4, Python’s open(...), a JavaScript File). The exception is a bare Blob in JavaScript, which has no name of its own — FormData then defaults the filename to blob. Name it explicitly:
The three-argument append requires a Blob, so wrap raw bytes rather than passing a Buffer or Uint8Array straight in — those throw TypeError: parameter 2 is not of type 'Blob'. A File carries the name itself, but it is only a global from Node 20 onwards.

Body Parameters

file
required
The file to upload for translation. Supports a wide range of file formats including: Video formats: MP4, AVI, MOV, WMV, FLV, MKV Audio formats: MP3, WAV, AAC, M4A, FLAC, OGG Document formats: DOCX, DOC, PDF, TXT, RTF, ODT Presentation formats: PPTX, PPT, ODP Spreadsheet formats: XLSX, XLS, ODS, CSV Image formats (Image to Image translation): JPEG, JPG, PNG Other formats: HTML, XML, JSON, SRT, VTT, IDML, DITA, DITAMAP, DITAVAL Maximum file size: 30GB for video files, 100MB for document files. Note: For testing in the API playground, the upload limit is 5MB.
string
required
Name of the file being uploaded. This will be used as the identifier for your uploaded content. Should be descriptive and unique for easy identification.It does not need an extension: the uploaded file’s extension is appended to it unless name already ends in that same extension.
string
required
The source language of the file content. Use standard language codes such as:
  • ‘en’ for English - ‘es’ for Spanish - ‘fr’ for French - ‘de’ for German - ‘zh’ for Chinese - ‘ja’ for Japanese - ‘tr’ for Turkish - And many more supported languages
array
Array of order notes for additional instructions or information about the upload. Each entry is an order note object. Example: [{"details": "Please ignore the subtitles for 30 seconds", "timeStamp": "02:15:30"}]
string
Optional folder ID to place the project in. The folder must belong to the same client account. If not provided, the project will be placed in the default “API Uploads” folder. You can retrieve available folder IDs using the Retrieve All Folders endpoint.Any folder-level documents on the target folder — guidelines, glossaries, and character lists — are applied to the new project automatically, the same way they are for projects created in the dashboard. See Attach Folder Document.

Response

string
Unique identifier for the project associated with the uploaded file. Use this ID to create, track, and manage your uploaded content throughout the translation process.