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 integers
- Description
List of context store IDs to provide reference materials (styleguide content).
- 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"
}
Create a post-editing job
This endpoint allows you to create a new AI post-editing (AIPE) job. Post-editing jobs revise machine-translated content to improve quality.
Required attributes
- Name
mode- Type
- string
- Description
The post-editing 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 integers
- Description
List of context store IDs to provide reference materials (styleguide content).
- 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": "technical",
"tms": {
"name": "memoq",
"project_identifier": "project-123"
},
"glossaries": [1],
"instructions": "Ensure formal tone"
}'
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) job. Quality estimation jobs assess the quality of translations without a reference translation.
Required attributes
- Name
mode- Type
- string
- Description
The quality estimation mode. Possible values:
ai,human. Currently onlyaiis supported.
Optional attributes
- Name
tms- Type
- object
- Description
TMS configuration object. Contains
name(memoq, phrase, or xtm) andproject_identifier. Required ifsource_filesis not provided.
- Name
source_files- Type
- array of strings
- Description
List of source file paths for AIQE processing. 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
domain- Type
- string
- Description
Content domain for the quality estimation (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 integers
- Description
List of context store IDs to provide reference materials (styleguide content).
- Name
instructions- Type
- string
- Description
Additional instructions for the quality estimation.
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 '{
"mode": "ai",
"tms": {
"name": "phrase",
"project_identifier": "project-456"
}
}'
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 job. Term extraction jobs identify and extract terminology from translated content for glossary building.
Required attributes
- Name
mode- Type
- string
- Description
The term extraction mode. Possible values:
ai,human. Currently onlyaiis supported.
- Name
glossary_name- Type
- string
- Description
The name of the glossary to create or populate with extracted terms.
- Name
tms- Type
- object
- Description
TMS configuration object. Contains
name(memoq, phrase, or xtm) andproject_identifier.
Optional attributes
- Name
glossary_description- Type
- string
- Description
Optional description for the glossary.
- Name
source_language- Type
- string
- Description
Source language code (e.g., "en").
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 '{
"mode": "ai",
"glossary_name": "Technical Terms Q1",
"tms": {
"name": "memoq",
"project_identifier": "project-123"
}
}'
Response
{
"job_id": "job_te_abc123def456",
"status": "queued",
"message": "Term extraction job created successfully",
"created_at": "2025-12-21T10:34:41.135Z"
}
Get QA report
This endpoint allows you to retrieve the QA report for a completed quality estimation job. The response is an HTML document containing the quality assessment results.
Request
curl https://api.elanlanguages.ai/v1/jobs/qa-reports/job_qe_abc123def456 \
-H "Authorization: Bearer {token}" \
-H "X-Org-Id: {orgId}"
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",
"job_type": "translation",
"source_language": "en",
"target_languages": ["de", "fr", "es"],
"tms": null,
"project_identifier": null,
"source_files": ["/translations/document.docx"],
"target_files": [
"/translations/document_de.docx",
"/translations/document_fr.docx",
"/translations/document_es.docx"
],
"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}"