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.

POST/v1/jobs/translation

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 only ai is 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, or document.

  • 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_files is provided.

  • Name
    target_languages
    Type
    array of strings
    Description

    Target language codes (e.g., ["de", "fr"]). Required if source_files is provided.

  • Name
    tms
    Type
    object
    Description

    TMS configuration object. Required if source_files is not provided. Contains name (memoq, phrase, or xtm) and project_identifier.

Request

POST
/v1/jobs/translation
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"
}

GET/v1/jobs

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

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

Get job status

This endpoint allows you to retrieve the status of a specific job, including results if completed.

Request

GET
/v1/jobs/job_abc123def456
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
}

DELETE/v1/jobs/:job_id

Cancel a job

This endpoint allows you to cancel a job if it's still running.

Request

DELETE
/v1/jobs/job_abc123def456
curl -X DELETE https://api.elanlanguages.ai/v1/jobs/job_abc123def456 \
  -H "Authorization: Bearer {token}" \
  -H "X-Org-Id: {orgId}"

POST/v1/jobs/post-editing

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 only ai is supported.

  • Name
    tms
    Type
    object
    Description

    TMS configuration object. Contains name (memoq, phrase, or xtm) and project_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, or document.

  • Name
    instructions
    Type
    string
    Description

    Additional instructions for the AI post-editor.

Request

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

POST/v1/jobs/quality-estimation

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) and project_identifier.

Request

POST
/v1/jobs/quality-estimation
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"
}

POST/v1/jobs/term-extraction

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) and project_identifier.

Optional attributes

  • Name
    domain
    Type
    string
    Description

    Content domain for term extraction (e.g., "technical", "legal", "marketing").

Request

POST
/v1/jobs/term-extraction
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"
}

Was this page helpful?