Skip to content

Translate

POSThttps://api.curriculo.me/public/translate/
On this page

Stateless. Translates strings, or whole PDF and DOCX documents, between 202 supported languages. A language outside that set is refused with 422. See Languages.

Price: $0.01 per request (per document when you upload files), or three times the underlying model cost when that is higher. See Pricing and billing.

Text mode

application/json

FieldTypeNotes
textstringOne string. The response carries translation, not a list.
textsstring[]Several strings. Up to 200, and 50,000 characters in total. The response keeps your order.
target_language (required)stringISO 639-1 code to translate into.
source_languagestringISO 639-1 code of the input. Defaults to en.

Send either text or texts.

curl -X POST https://api.curriculo.me/public/translate/ \
  -H 'Authorization: Bearer key_abc123_yoursecret' \
  -H 'Content-Type: application/json' \
  -d '{"texts": ["Senior backend engineer", "Remote within Europe"], "source_language": "en", "target_language": "fr"}'
  • One string returns translation with a single ok flag.
  • Several strings return translations in input order, with an ok flag per item. If one item fails, the rest still come back.
  • For some language pairs, the response may include recommended_async: true. Send that kind of work to POST /translate/async instead.

Document mode

multipart/form-data on the same path.

FieldTypeNotes
filesfile[]One or more documents, PDF or DOCX, up to 10 per request and 10 MB each. Each document can hold up to 200 blocks and 50,000 characters.
target_language (required)stringISO 639-1 code to translate into.
source_languagestringISO 639-1 code of the source. Defaults to en.
curl -X POST https://api.curriculo.me/public/translate/ \
  -H 'Authorization: Bearer key_abc123_yoursecret' \
  -F 'files=@job_description.docx' \
  -F 'target_language=ko'

The translation comes back as text. Each file returns:

{
  "filename": "job_description.docx",
  "text": "…",
  "target_language": "ko",
  "source_language": "en",
  "ok": true,
  "blocks": 14
}

Timing

Usually under a second for text.

Errors

StatusTypical cause
400Blank text, an unreadable or password-protected document, or a duplicate JSON key.
413More than 200 texts or 50,000 characters (sent as texts or extracted from a document), a document over 10 MB, or a request body over 12 MB.
422target_language is missing or misnamed, or a language is outside the 202 supported codes.

New to the Curriculo API? Start with the Quickstart.

Was this page helpful?

Updated