Translation
Translation jobs allow you to translate files from one language to multiple target languages using AI. You can provide source files directly or connect to a Translation Management System (TMS) like memoQ, Phrase, or XTM.
Create a translation job
This endpoint allows you to create a new translation job. You can either provide source files directly or configure a TMS connection.
Required attributes
- Name
mode- Type
- string
- Description
The translation mode. Possible values:
ai,human. Currently onlyaiis supported.
Optional attributes
- Name
domain- Type
- string
- Description
Content domain for the translation (e.g., "technical", "legal", "marketing").
- Name
glossaries- Type
- array of integers
- Description
List of glossary IDs to use for terminology consistency.
- Name
context_stores- Type
- array of strings
- Description
List of context store keys to provide reference materials.
- Name
segmentation- Type
- string
- Description
Segmentation mode:
default,sentence,paragraph, ordocument.
- Name
instructions- Type
- string
- Description
Additional instructions for the AI translator.
- Name
source_files- Type
- array of strings
- Description
List of source file paths to translate. Required if no TMS is configured.
- Name
source_language- Type
- string
- Description
Source language code (e.g., "en"). Required if
source_filesis provided.
- Name
target_languages- Type
- array of strings
- Description
Target language codes (e.g., ["de", "fr"]). Required if
source_filesis provided.
- Name
tms- Type
- object
- Description
TMS configuration object. Required if
source_filesis not provided. Containsname(memoq, phrase, or xtm) andproject_identifier.
Request
curl -X POST https://api.elanlanguages.ai/v1/jobs/translation \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}" \
-H "Content-Type: application/json" \
-d '{
"mode": "ai",
"domain": "technical",
"source_files": ["/translations/document.docx"],
"source_language": "en",
"target_languages": ["de", "fr", "es"],
"glossaries": [1, 2],
"instructions": "Use formal tone"
}'
Response
{
"job_id": "job_abc123def456",
"status": "queued",
"message": "Translation job created successfully",
"created_at": "2025-12-21T10:34:41.135Z"
}
List translation jobs
This endpoint allows you to list recent jobs for your organization.
Optional parameters
- Name
limit- Type
- integer
- Description
Maximum number of jobs to return (default: 50).
Request
curl https://api.elanlanguages.ai/v1/jobs \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}"
Response
{
"jobs": [
{
"job_id": "job_abc123def456",
"status": "completed",
"created_at": "2025-12-21T10:34:41.135Z",
"started_at": "2025-12-21T10:34:45.000Z",
"ended_at": "2025-12-21T10:40:12.000Z"
}
],
"total": 1,
"queue_length": 0
}
Get job status
This endpoint allows you to retrieve the status of a specific job, including results if completed.
Request
curl https://api.elanlanguages.ai/v1/jobs/job_abc123def456 \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}"
Response
{
"job_id": "job_abc123def456",
"status": "completed",
"created_at": "2025-12-21T10:34:41.135Z",
"started_at": "2025-12-21T10:34:45.000Z",
"ended_at": "2025-12-21T10:40:12.000Z",
"result": {
"translated_files": [
"/translations/document_de.docx",
"/translations/document_fr.docx",
"/translations/document_es.docx"
],
"word_count": 1500
},
"error": null
}
Cancel a job
This endpoint allows you to cancel a job if it's still running.
Request
curl -X DELETE https://api.elanlanguages.ai/v1/jobs/job_abc123def456 \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}"
Create a post-editing job
This endpoint allows you to create a new AI Post-Editing (AIPE) background job. Post-editing jobs take machine-translated content and improve it using AI to achieve human-like quality.
Required attributes
- Name
mode- Type
- string
- Description
The translation mode. Possible values:
ai,human. Currently onlyaiis supported.
- Name
tms- Type
- object
- Description
TMS configuration object. Contains
name(memoq, phrase, or xtm) andproject_identifier.
Optional attributes
- Name
domain- Type
- string
- Description
Content domain for the post-editing (e.g., "technical", "legal", "marketing").
- Name
glossaries- Type
- array of integers
- Description
List of glossary IDs to use for terminology consistency.
- Name
context_stores- Type
- array of strings
- Description
List of context store keys to provide reference materials.
- Name
segmentation- Type
- string
- Description
Segmentation mode:
default,sentence,paragraph, ordocument.
- Name
instructions- Type
- string
- Description
Additional instructions for the AI post-editor.
Request
curl -X POST https://api.elanlanguages.ai/v1/jobs/post-editing \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}" \
-H "Content-Type: application/json" \
-d '{
"mode": "ai",
"domain": "marketing",
"tms": {
"name": "memoq",
"project_identifier": "my-project-123"
},
"glossaries": [1],
"instructions": "Improve fluency while maintaining accuracy"
}'
Response
{
"job_id": "job_pe_abc123def456",
"status": "queued",
"message": "Post-editing job created successfully",
"created_at": "2025-12-21T10:34:41.135Z"
}
Create a quality estimation job
This endpoint allows you to create a new AI Quality Estimation (AIQE) background job. Quality estimation jobs analyze translated content and provide quality scores without requiring reference translations.
Required attributes
- Name
tms- Type
- object
- Description
TMS configuration object. Contains
name(memoq, phrase, or xtm) andproject_identifier.
Request
curl -X POST https://api.elanlanguages.ai/v1/jobs/quality-estimation \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}" \
-H "Content-Type: application/json" \
-d '{
"tms": {
"name": "memoq",
"project_identifier": "my-project-123"
}
}'
Response
{
"job_id": "job_qe_abc123def456",
"status": "queued",
"message": "Quality estimation job created successfully",
"created_at": "2025-12-21T10:34:41.135Z"
}
Create a term extraction job
This endpoint allows you to create a new Term Extraction background job. Term extraction jobs analyze content from a TMS project and automatically extract terminology to create a new glossary.
Required attributes
- Name
glossary_name- Type
- string
- Description
The name for the new glossary that will be created with extracted terms.
- Name
tms- Type
- object
- Description
TMS configuration object. Contains
name(memoq, phrase, or xtm) andproject_identifier.
Optional attributes
- Name
domain- Type
- string
- Description
Content domain for term extraction (e.g., "technical", "legal", "marketing").
Request
curl -X POST https://api.elanlanguages.ai/v1/jobs/term-extraction \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}" \
-H "Content-Type: application/json" \
-d '{
"glossary_name": "Product Documentation Glossary",
"domain": "technical",
"tms": {
"name": "memoq",
"project_identifier": "my-project-123"
}
}'
Response
{
"job_id": "job_te_abc123def456",
"status": "queued",
"message": "Term extraction job created successfully",
"created_at": "2025-12-21T10:34:41.135Z"
}