---
title: "Import a TMX file into a translation memory"
method: POST
path: "/tm-tmx-api/v2/accounts/{accountUid}/tmx/file"
tags: ["Translation Memory"]
---

# Import a TMX file into a translation memory

`POST /tm-tmx-api/v2/accounts/{accountUid}/tmx/file`

## Request

- Base URL: `https://api.smartling.com`
- URL: `https://api.smartling.com/tm-tmx-api/v2/accounts/{accountUid}/tmx/file`
- Auth: HTTP bearer

Uploads a TMX file and imports its translation units into the target translation memory
(`tmUid`). The TM must belong to the account identified by `accountUid` and must not have a
machine-generated translation quality type; machine-generated TMs cannot receive TMX imports.
See [Import a TMX File](https://help.smartling.com/hc/en-us/articles/14320823952539-Import-a-TMX-File)
for more detail on this process.

TMX imports do not preserve plural information: once imported, plural form data for the
translations is lost. Files must follow the
[TMX standard](https://help.smartling.com/hc/en-us/articles/115003184114-TMX), including a
`<header>` tag with matching `srclang` and a supported `datatype`. Re-importing a file with
the same `fileUri` overwrites the previous import for that name.

The import runs asynchronously. Use the returned `jobUid` to correlate with TMX Import
History. Files up to 1648 MB are accepted.

## Path parameters

- `accountUid` string, required

## Request body `multipart/form-data`

- TmxImportRequest: Multipart form fields for a TMX import.
  - `file` string, binary, required: The TMX file to import. Must be a well-formed TMX/XML document, up to 1648 MB.
  - `fileUri` string, required: Path or URI identifying this content within the target TM. Re-importing with the same `fileUri` overwrites the previous import of that name.
  - `tmUid` string, required: Unique identifier (UID) of a translation memory - 12 lowercase alphanumeric characters.
  - `description` string: Optional free-text description of this import.
  - `translatorNameLocation` string: Location of the translator-name metadata within the TMX file, expressed as a `@tu.<attribute>` or `@prop.type.<property>` reference (see the TMX file's `<tu>` and `<prop>` elements, for example `@tu.changeid`).
  - `translationDateLocation` string: Location of the translation-date metadata within the TMX file. Recommended whenever available; if omitted, imported units show the import date as their last-updated date.
  - `variantLocation` string: Location of the string-variant metadata within the TMX file.
  - `fileUriLocation` string: Location of the source file/URL metadata within the TMX file.
  - `escapeSmpUnicodeParserDirective` 'on' | 'off': Whether to escape supplementary-multilingual-plane Unicode characters while parsing the file.

## Response `200`

TMX file accepted and import started.

- TmxImportSuccessResponse
  - `response` object, required
    - `code` 'SUCCESS', required: Indicates whether the response was successful or what error has occurred.
    - `data` TmxImportSummary: Result of a TMX import request.
      - `message` string, nullable: Additional human-readable status message, when present.
      - `wordCount` integer: Total word count submitted for import.
      - `stringCount` integer: Total number of translation units submitted for import.
      - `translationMemoryImportErrors` TmxParsingError[], nullable: Errors that blocked specific units from being imported into the translation memory. Null when there are none.
        - `messages` string[]: Human-readable descriptions of the problem, for example a placeholder mismatch between source and translation.
        - `line` integer: 1-based line number in the TMX file where the problem occurs.
        - `column` integer: 1-based column number in the TMX file where the problem occurs.
      - `parsingErrors` TmxParsingError[], nullable: Errors encountered while parsing the TMX file itself. Null when there are none.
        - `messages` string[]: Human-readable descriptions of the problem, for example a placeholder mismatch between source and translation.
        - `line` integer: 1-based line number in the TMX file where the problem occurs.
        - `column` integer: 1-based column number in the TMX file where the problem occurs.
      - `jobUid` string: Identifier for this import, used to correlate with TMX Import History.
      - `tmxUid` string: Identifier assigned to this TMX upload.

## Other responses

- `400`: The request failed validation. <details> <summary>Common causes</summary> - A missing required field. - `tmUid` does not belong to `accountUid`, or belongs to a machine-generated-quality TM. - A TMX metadata location field exceeds the maximum length. - `escapeSmpUnicodeParserDirective` is not a recognized value. - The uploaded file is not a TMX/XML document. - The uploaded file exceeds the maximum upload size. </details>
- `401`: Provided credentials are not valid.
- `403`: Caller does not have access to the requested resource.
- `423`: Another TMX import, move, or export for the same TM (or the same `tmUid` and `fileUri` pair) is already in progress. Retry after the in-progress operation completes.
- `429`: The account has reached its limit of concurrent TMX imports.
- `500`: Unexpected error

## Changes

- **2026-10-17** `2cd7a8215799`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/changes/tm-tmx-api/v2/accounts/:accountUid/tmx/file/post.md)

---

[API](https://skmtc.dev/smartling/apis/smartling-rest-api-reference.md) - [All operations](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/smartling/apis/smartling-rest-api-reference/revisions/e63066e7f5e9?raw)
