translations

Create a translation package

Changed on

Creates a snapshot of translatable content at a specific workflow step for offline translation with external CAT tools.

Creating a package synchronously determines which strings belong to it. The XLIFF file itself is generated on demand from the current translation state each time you call the content endpoint, so it's available for download immediately after the package is created. When generateTmx is true (the default), a TMX translation memory file is also generated asynchronously in the background. The translationMemory link in the response carries a processUid while the TMX is being prepared; once ready, processUid becomes null and the link's href is set.

Returns 202 Accepted when the TMX job is still in progress, or 200 OK when all resources are immediately available (that is, generateTmx was explicitly set to false).

Limitations

  • Only one translation package can be generated at a time for a given locale/workflow-step/job combination. A concurrent request for the same combination returns 423.
  • Limit calls to 6 requests per 60 seconds per user. Exceeding this returns 429.
post/translations-api/v2/projects/{projectId}/locales/{localeId}/translation-packages

Request

  • Base URL
    https://api.smartling.com
  • Auth
    HTTP bearer

Path parameters

projectIdstring required

Unique identifier of a Smartling project — 9 lowercase alphanumeric characters.

Example:84c012a33

A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.

localeIdstring required

Locale identifier. Either a 2-letter language code (en) or a language-region pair (en-US). The language part is always lowercase; the region part is always uppercase.

Example:fr-FR

Request body

workflowStepUidstring required

Workflow step unique identifier — 12 lowercase alphanumeric characters.

translationJobUidstring

Translation job unique identifier — 12 lowercase alphanumeric characters.

hashcodesHashcode[]

Limit package to these specific string hashcodes. Omit for all strings.

generateTmxboolean

Generate a TMX translation memory file alongside the XLIFF. If your integration doesn't need the TMX file, we recommend passing false to avoid the extra background generation work.

Example request

{
  "workflowStepUid": "7564fc097a85",
  "translationJobUid": "j45v1uvsi3tx",
  "hashcodes": [
    "d41d8cd98f00b204e9800998ecf8427e"
  ]
}

Response

Package created. All resources are immediately available (generateTmx was false).

Example response

{
  "response": {
    "data": {
      "projectId": "84c012a33",
      "localeId": "fr-FR",
      "created": "2026-01-15T10:00:00Z"
    }
  }
}

Changes