Skip to main content
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

POST /v1/jobs/translation This endpoint allows you to create a new translation job. You can either provide source files directly or configure a TMS connection.

Required attributes

mode
string
required
The translation mode. Possible values: ai, human. Currently only ai is supported.

Optional attributes

domain
string
Content domain for the translation (e.g., “technical”, “legal”, “marketing”).
glossaries
array of integers
List of glossary IDs to use for terminology consistency.
context_stores
array of integers
List of context store IDs to provide reference materials (styleguide content).
segmentation
string
Segmentation mode: default, sentence, paragraph, or document.
instructions
string
Additional instructions for the AI translator.
source_files
array of strings
List of source file paths to translate. Required if no TMS is configured.
source_language
string
Source language code (e.g., “en”). Required if source_files is provided.
target_languages
array of strings
Target language codes (e.g., [“de”, “fr”]). Required if source_files is provided.
tms
object
TMS configuration object. Required if source_files is not provided. Contains name (memoq, phrase, or xtm) and project_identifier.
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

POST /v1/jobs/post-editing 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

mode
string
required
The post-editing mode. Possible values: ai, human. Currently only ai is supported.
tms
object
required
TMS configuration object. Contains name (memoq, phrase, or xtm) and project_identifier.

Optional attributes

domain
string
Content domain for the post-editing (e.g., “technical”, “legal”, “marketing”).
glossaries
array of integers
List of glossary IDs to use for terminology consistency.
context_stores
array of integers
List of context store IDs to provide reference materials (styleguide content).
segmentation
string
Segmentation mode: default, sentence, paragraph, or document.
instructions
string
Additional instructions for the AI post-editor.
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

POST /v1/jobs/quality-estimation 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. The job runs against a TMS project configured via the tms object.

Optional attributes

tms
object
TMS configuration object. Contains name (memoq, phrase, or xtm) and project_identifier.
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": "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

POST /v1/jobs/term-extraction This endpoint allows you to create a new term extraction job. Term extraction jobs extract terminology from a TMS project and create a new glossary with the extracted terms. Currently only memoQ is supported.

Required attributes

glossary_name
string
required
The name for the new glossary to be created with the extracted terms.

Optional attributes

domain
string
Content domain for the term extraction (e.g., “technical”, “legal”, “marketing”).
tms
object
TMS configuration object. Contains name (memoq, phrase, or xtm) and project_identifier.
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": "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"
}

Create a language rewrite job

POST /v1/jobs/language-rewrite This endpoint allows you to create a new language rewrite job. Language rewrite jobs transform content according to the selected rewrite type. You can either provide source files directly or configure a TMS connection.

Required attributes

mode
string
required
The rewrite mode. Possible values: ai, human. Currently only ai is supported.
type
string
required
The rewrite type. Possible values: simplify, summarize, elaborate, continue, align.

Optional attributes

domain
string
Content domain for the rewriting (e.g., “technical”, “legal”, “marketing”).
context_stores
array of integers
List of context store IDs to provide reference materials (styleguide content).
segmentation
string
Segmentation mode: default, sentence, paragraph, or document (default: default).
instructions
string
Additional instructions for the rewriting.
glossaries
array of integers
List of glossary IDs to use for terminology consistency.
template
integer
Explicit prompt template ID override. If not specified, falls back to the organization default or system default for the given rewrite type.
source_files
array of strings
List of source files to rewrite. Required if no TMS is configured.
source_language
string
Source language code (e.g., “en”). Required if source_files is provided.
tms
object
TMS configuration object. Contains name (memoq, phrase, or xtm) and project_identifier. Required if source_files is not provided.
curl -X POST https://api.elanlanguages.ai/v1/jobs/language-rewrite \
  -H "Authorization: Bearer {token}" \
  -H "X-Org-Id: {orgId}" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "ai",
    "type": "simplify",
    "domain": "technical",
    "source_files": ["/rewrites/document.docx"],
    "source_language": "en",
    "instructions": "Use plain language"
  }'
Response
{
  "job_id": "job_lr_abc123def456",
  "status": "queued",
  "message": "Language rewrite job created successfully",
  "created_at": "2025-12-21T10:34:41.135Z"
}

Create a quality assurance job

POST /v1/jobs/quality-assurance This endpoint allows you to create a new quality assurance (QA) job for a TMS project. Once the job has completed, you can retrieve the results as an HTML report via the Get QA report endpoint.

Required attributes

mode
string
required
The quality assurance mode. Possible values: ai, human. Currently only ai is supported.
tms
object
required
TMS configuration object. Contains name (memoq, phrase, or xtm) and project_identifier.

Optional attributes

domain
string
Content domain for the quality assurance (e.g., “technical”, “legal”, “marketing”).
context_stores
array of integers
List of context store IDs to provide reference materials (styleguide content).
glossaries
array of integers
List of glossary IDs to use for terminology consistency.
curl -X POST https://api.elanlanguages.ai/v1/jobs/quality-assurance \
  -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]
  }'
Response
{
  "job_id": "job_qa_abc123def456",
  "status": "queued",
  "message": "QA job created successfully",
  "created_at": "2025-12-21T10:34:41.135Z"
}

Get QA report

GET /v1/jobs/qa-reports/:job_id 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.

Optional parameters

api_key
string
API key for authentication (alternative to the Authorization header, useful for browser access).
curl -G https://api.elanlanguages.ai/v1/jobs/qa-reports/job_qe_abc123def456 \
  -H "Authorization: Bearer {token}" \
  -H "X-Org-Id: {orgId}"

List translation jobs

GET /v1/jobs This endpoint allows you to list recent jobs for your organization.

Optional parameters

limit
integer
Maximum number of jobs to return (default: 50).
category
string
Filter by UI category (one of video, audio, document, tms, system, human_task, other).
job_type
string
Filter by exact workflow handler name (e.g. dub_video, aimt, ppt_translation).
curl -G 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

GET /v1/jobs/:job_id This endpoint allows you to retrieve the status of a specific job, including results if completed.
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

DELETE /v1/jobs/:job_id This endpoint allows you to cancel a job if it’s still running.
curl -X DELETE https://api.elanlanguages.ai/v1/jobs/job_abc123def456 \
  -H "Authorization: Bearer {token}" \
  -H "X-Org-Id: {orgId}"