Smartling
Smartling is an enterprise translation management platform combining a cloud-based TMS, LinguisticAI, and neural machine translation. The Smartling REST API at api.smartling.com exposes authentication, accounts, projects, source files, strings, translations, jobs, glossary, issues, quality checks, MT, and reports. Authentication uses an OAuth-style userIdentifier + secret pair that returns a short-lived bearer access token (~5-10 minute TTL) with a refresh token.
APIs
Smartling REST API
Smartling's REST API for the translation management platform. Resource groups include Authentication, Accounts, Projects, Source Files, Strings, Translations, Jobs, Glossary, Is...
Collections
GraphQL
Smartling GraphQL API
Smartling is a translation management system for global content. The API covers project management, file upload and download, translation jobs, glossary management, visual conte...
GRAPHQLPricing Plans
Rate Limits
FinOps
Smartling Finops
FINOPSResources
Sources
opencollection: 1.0.0
info:
name: Smartling REST API Reference
version: 2.0.0
items:
- info:
name: Authentication
type: folder
items:
- info:
name: Authenticate
type: http
http:
method: POST
url: https://api.smartling.com/auth-api/v2/authenticate
body:
type: json
data: '{}'
docs: Verifies the credentials of the connection attempt.
- info:
name: Refresh access token
type: http
http:
method: POST
url: https://api.smartling.com/auth-api/v2/authenticate/refresh
body:
type: json
data: '{}'
docs: A [renewed access token](https://help.smartling.com/hc/en-us/articles/1260805176849) that can be attached to the
header of any API request.
- info:
name: Account & Projects
type: folder
items:
- info:
name: List projects
type: http
http:
method: GET
url: https://api.smartling.com/accounts-api/v2/accounts/:accountUid/projects
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
- name: projectNameFilter
value: ''
type: query
description: Substring search of the name of the project. Search is case insensitive.
- name: includeArchived
value: ''
type: query
description: Indicator whether or not archived projects should be returned. Defaults to false if not specified.
- name: offset
value: ''
type: query
description: Standard Smartling limit and offset to paginate through results.
- name: limit
value: ''
type: query
description: Standard Smartling limit and offset to paginate through results. 500 projects are returned by default
if not specified.
- name: projectTypeCode
value: ''
type: query
description: Indicator for the type of the project.
- name: projectTypeCodes
value: ''
type: query
description: Indicator list for the type of the projects.
docs: 'Returns the list of projects for the account.
'
- info:
name: Get project details
type: http
http:
method: GET
url: https://api.smartling.com/projects-api/v2/projects/:projectId
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: includeDisabledLocales
value: ''
type: query
description: Indicator whether or not disabled locales configured for the project should be returned as part of the
targetLocales. By default disabled target locales are not returned.
docs: 'Returns the details of a project.
'
- info:
name: Add a new target locale
type: http
http:
method: POST
url: https://api.smartling.com/projects-api/v2/projects/:projectId/targetLocales
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: json
data: '{}'
docs: 'Add a new target locale to the project.
'
- info:
name: Copy an existing project
type: http
http:
method: POST
url: https://api.smartling.com/projects-api/v2/projects/:projectId/copy
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: json
data: '{}'
docs: 'Make a copy of an existing project, thereby creating a new one with a new name
'
- info:
name: Get the status of the project copy request
type: http
http:
method: GET
url: https://api.smartling.com/projects-api/v2/projects/:projectId/copy/:processUid
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: processUid
value: ''
type: path
description: The uid of the process to check for
docs: 'Used to check if the copy project request is complete and to retrieve the new projectId
'
- info:
name: Locales
type: folder
items:
- info:
name: List locales
type: http
http:
method: GET
url: https://api.smartling.com/locales-api/v2/dictionary/locales
params:
- name: localeIds
value: ''
type: query
description: Optional parameter to filter to the specified list of locales.
- name: supportedOnly
value: ''
type: query
description: Fetch only supported locales. Otherwise fetch all locales. Default value is "true".
docs: 'The list of available locales within Smartling.
To find out the `localedID` for a specific project, refer to [Get project
details](/#operation/getProjectDetails).
'
- info:
name: People
type: folder
items:
- info:
name: Get list of user information
type: http
http:
method: POST
url: https://api.smartling.com/people-api/v2/users
body:
type: json
data: '{}'
docs: 'Smartling users, who process and translate content with the Smartling platform.
'
- info:
name: Workflow Assignment
type: folder
items:
- info:
name: Assignments removal status
type: http
http:
method: GET
url: https://api.smartling.com/people-api/v3/accounts/:accountUid/processes/:processUid
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
- name: processUid
value: ''
type: path
description: The process unique identifier.
docs: 'Checking state of workflow assignments removal process
'
- info:
name: Create Steps Assignment
type: http
http:
method: POST
url: https://api.smartling.com/people-api/v3/accounts/:accountUid/users/:userUid/workflow-steps/assign
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
- name: userUid
value: ''
type: path
description: User identifier.
body:
type: json
data: '{}'
docs: Create new workflow steps assignment
- info:
name: Remove Step Assignments
type: http
http:
method: POST
url: https://api.smartling.com/people-api/v3/accounts/:accountUid/users/:userUid/workflow-steps/remove
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
- name: userUid
value: ''
type: path
description: User identifier.
body:
type: json
data: '{}'
docs: Schedule workflow steps assignment removal and returns process uid for status check.
- info:
name: Search For Account Assignments
type: http
http:
method: POST
url: https://api.smartling.com/people-api/v3/accounts/:accountUid/users/workflow-steps
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
body:
type: json
data: '{}'
docs: Search for workflow step assignments within account
- info:
name: Search For User Assignments
type: http
http:
method: POST
url: https://api.smartling.com/people-api/v3/accounts/:accountUid/users/:userUid/workflow-steps
params:
- name: accountUid
value: ''
type: path
description: The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings
> API.
- name: userUid
value: ''
type: path
description: User identifier.
body:
type: json
data: '{}'
docs: Search for workflow step assignments for single user
- info:
name: Files
type: folder
items:
- info:
name: Download source file
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/file
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: fileUri
value: ''
type: query
description: Value that uniquely identifies the downloaded file.
docs: 'This downloads the original version of the requested file from
Smartling.
It is important to check the HTTP response status code. If Smartling
finds and returns the file normally, you will receive a `200` SUCCESS
response. If you receive a response status code other than `200`, the
requested file will not be part of the response.
When you upload a UTF-16 character encoded file, then /file/get requests
for that file will have a character encoding of UTF-16. All other
uploaded files will return '
- info:
name: Upload file
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/file
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: multipart-form
data:
- name: file
type: text
value: ''
- name: fileUri
type: text
value: ''
- name: fileType
type: text
value: ''
- name: smartling.namespace
type: text
value: ''
- name: smartling.file_charset
type: text
value: ''
- name: smartling.[command]
type: text
value: ''
- name: callbackUrl
type: text
value: ''
docs: 'This uploads original source content to Smartling.
The curl example provided will upload your Java properties file directly
into the Smartling project identified by the `projectId`. Smartling will
ingest this file, parse out the keys and text as strings for
translation. At this point, content is ready for translation.
'
- info:
name: Status of file for each locale
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/file/status
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: fileUri
value: ''
type: query
description: Smartling value that uniquely identifies a file in Smartling
docs: "Returns information on a specific file.\n\n**Example:**\n```bash\n curl -X GET -H \"Authorization: Bearer {token}\"\
\ 'https://api.smartling.com/files-api/v2/projects/{projectId}/file/status?fileUri=file.properties'\n```\n"
- info:
name: Status of file for a single locale
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/:localeId/file/status
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: localeId
value: ''
type: path
description: Identifier for a locale.
- name: fileUri
value: ''
type: query
description: Smartling value that uniquely identifies a file in Smartling
docs: 'Returns detailed status information on a specific file.
**Example:**
```bash
curl -X GET -H "Authorization: Bearer {token}" ''https://api.smartling.com/files-api/v2/projects/{projectId}/locales/{localeId}/file/status?fileUri=file.properties''
```
'
- info:
name: Download translated file (single locale or multi-locale)
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/:localeIds/file
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: localeIds
value: ''
type: path
description: "One of:\n- A **single locale ID**, e.g. `fr-FR` → single-locale mode \n- A **comma-separated list**\
\ of locale IDs, e.g. `fr-FR,de-DE` → multi-locale mode \n- `all` → download translations for all available locales\n"
- name: fileUri
value: ''
type: query
description: Value that uniquely identifies the downloaded file
- name: retrievalType
value: ''
type: query
description: 'Determines the desired format for the download. Applies to translated files only.
| retrievalType | Description |
|---------------|-------------|
| pending | Smartling returns any translations (including non-published translations)|
| published | Smartling returns only published/pre-published translations.|
| pseudo | Smartling returns a modified version of the original text with certain characters transformed and the
text expanded. For example, the uploaded string "This is a sample string", will return as "T~hís ~ís á s~ámpl~é
str~íñg". Pseudo translations enable you to test how a longer string integrates into your application.|
| contextMatchingInstrumented | Smartling returns a modified version of the original file with strings wrapped in
a specific set of Unicode symbols that can later be recognized and matched by the Chrome Context Capture Extension.|
'
- name: includeOriginalStrings
value: ''
type: query
description: 'Specifies whether Smartling will return the original string or an
empty string where no translation is available. This parameter is
only supported for ANDROID, ARB, GETTEXT, IDML, IOS, JAVA Properties, JSON, QT, STRINGSDICT,
XLIFF, XML, and YAML files. If unset, the default is <code>true</code>.
| Value | Description |
|-------|-------------|
| true | If there is no translation, Smartling returns the original string. |
| false | If there is no translation, Smartling returns an empty string. |
'
docs: "Downloads the requested translated file from Smartling. \n\nThis endpoint supports two modes depending on the\
\ value of `localeIds`:\n\n### **Single-locale mode**\n- Provide a **single locale ID**, e.g. `fr-FR`\n- Smartling returns\
\ a file containing translations only for that locale\n- Supported for **all file types**.\n\n### **Multi-locale mode**\n\
- Provide a **comma-separated list of locale IDs**, e.g. `fr-FR,de-DE,es-ES`\n- Or specify `all` to include all available\
\ locales\n- Smartling returns a **combin"
- info:
name: Download all translations of file
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/all/file/zip
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: fileUri
value: ''
type: query
description: Smartling value that uniquely identifies a file in Smartling
- name: retrievalType
value: ''
type: query
description: 'Determines the desired format for the download. Applies to translated files only.
| retrievalType | Description |
|---------------|-------------|
| pending | Smartling returns any translations (including non-published translations).|
| published | Smartling returns only published/pre-published translations.|
| pseudo | Smartling returns a modified version of the original text with certain characters transformed, and the
text expanded. For example, the uploaded string "This is a sample string", will return as "T~hís ~ís á s~ámpl~é
str~íñg". Pseudo translations enable you to test how a longer string integrates into your application.|
| contextMatchingInstrumented | Smartling returns a modified version of the original file with strings wrapped in
a specific set of Unicode symbols that can later be recognized and matched by the Chrome Context Capture Extension.|
'
- name: includeOriginalStrings
value: ''
type: query
description: 'Specifies whether Smartling will return the original string or an
empty string where no translation is available. This parameter is
only supported for ANDROID, ARB, GETTEXT, IDML, IOS, JAVA Properties, JSON, QT, STRINGSDICT,
XLIFF, XML, and YAML files. If unset, the default is <code>true</code>.
| Value | Description |
|-------|-------------|
| true | If there is no translation, Smartling returns the original string. |
| false | If there is no translation, Smartling returns an empty string. |
'
- name: zipFileName
value: ''
type: query
description: Name for the downloaded zip file. If unset, the default is ```translations.zip```
docs: 'Download a ZIP archive with all translations for the requested file.
Unlike the "Download translated file" endpoint, you get a ZIP archive
with all translations of a specific file.
It is important to check the HTTP response status code. If Smartling
finds and returns the file normally, you will receive a `200` SUCCESS
response. If you receive any other response status code than `200`, the
requested files will not be part of the response.
When you upload a UTF-16 character encoded file, then /'
- info:
name: Download multiple translated files (DEPRECATED)
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/files/zip
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: fileUris[]
value: ''
type: query
description: Smartling values that each uniquely identify a file. The limit is 300 files.
- name: localeIds[]
value: ''
type: query
description: List of locales to download.
- name: retrievalType
value: ''
type: query
description: 'Determines the desired format for the download. Applies only to
translated files.
| retrievalType | Description |
|---------------|-------------|
| pending | Smartling returns any translations (including non-published translations)|
| published | Smartling returns only published/pre-published translations.|
| pseudo | Smartling returns a modified version of the original text with certain characters transformed and the
text expanded. For example, the uploaded string "This is a sample string", will return as "T~hís ~ís á s~ámpl~é
str~íñg". Pseudo translations enable you to test how a longer string integrates into your application.|
| contextMatchingInstrumented | Smartling returns a modified version of the original file with strings wrapped in
a specific set of Unicode symbols that can later be recognized and matched by the Chrome Context Capture Extension.|
'
- name: includeOriginalStrings
value: ''
type: query
description: 'Specifies whether Smartling will return the original string or an
empty string where no translation is available. This parameter is
only supported for ANDROID, ARB, GETTEXT, IDML, IOS, JAVA Properties, JSON, QT, STRINGSDICT,
XLIFF, XML, and YAML files. If unset, the default is <code>true</code>.
| Value | Description |
|-------|-------------|
| true | If there is no translation, Smartling returns the original string. |
| false | If there is no translation, Smartling returns an empty string. |
'
- name: fileNameMode
value: ''
type: query
description: 'Determines how files in the ZIP file will be named. If not set, the
full original file path will be used as the filename.
| fileNameMode | Description |
|--------------|-------------|
| UNCHANGED | Full original file path is used |
| TRIM_LEADING | Remove all except the last path segment. e.g. ```/en/strings/nav.properties``` becomes ```nav.properties```|
| LOCALE_LAST | Adds a locale folder to the file path directly before the filename. e.g. ```/strings/nav.properties```
becomes ```/strings/en/nav.properties``` |
'
- name: localeMode
value: ''
type: query
description: 'Determines how locales will be handled in the downloaded zip
| localeMode | Description |
|------------|-------------|
| LOCALE_IN_PATH | Locale code is added to the end of the file path. e.g. ```/strings/es-ES/nav.properties```. |
| LOCALE_IN_NAME | Locale code is added to the end of the file name e.g. ```/strings/nav_es-ES.properties```. |
| LOCALE_IN_NAME_AND_PATH | Locale code is added to both the path and the filename. e.g. ```/strings/es-ES/nav_es-ES.properties```.
|
'
- name: zipFileName
value: ''
type: query
description: Name for the downloaded ZIP file. If unset, default is ```translations.zip```
docs: 'Download ZIP archive with the requested translated files.
Unlike "Download all translations of the file" you can specify multiple
file URIs (limit is 300 files) and locale IDs to select which files and languages you want to download.
It is important to check the HTTP response status code. If Smartling
finds and returns the file normally, you will receive a `200` SUCCESS
response. If you receive any other response status code than `200`, the
requested files will not be part of the response.
Wh'
- info:
name: Download multiple translated files
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/files/zip
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: json
data: '{}'
docs: 'Download ZIP archive with the requested translated files.
This endpoint allows you to specify multiple files and locales in the
request body (limit is 500 file-locale combinations) to select which files
and languages you want to download.
It is important to check the HTTP response status code. If Smartling
finds and returns the file normally, you will receive a `200` SUCCESS
response. If you receive a `204` response, no files were included because
the requested files were not fully published a'
- info:
name: List recently uploaded files
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/files/list
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: uriMask
value: ''
type: query
description: 'Returns only files with a URI containing the given substring. Case is ignored. For example, the value
```.json``` will match ```strings.json``` and ```STRINGS.JSON``` but not ```json.strings```
'
- name: fileTypes[]
value: ''
type: query
- name: lastUploadedAfter
value: ''
type: query
description: Returns all files uploaded after the specified date.
- name: lastUploadedBefore
value: ''
type: query
description: Returns all files uploaded before the specified date.
- name: orderBy
value: ''
type: query
description: 'Sets the name and direction of the parameter to order results by. If ascending or descending is not
specified, the default is ascending
'
- name: limit
value: ''
type: query
description: 'In order to get consistent pagination, make sure to specify the ```orderBy``` parameter.
'
- name: offset
value: ''
type: query
description: Standard Smartling limit and offset to paginate through results.
docs: This lists recently uploaded files, and returns a maximum of 100 files.
- info:
name: List all file types
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/file-types
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
docs: 'This returns a list of all file types currently represented in the project.
'
- info:
name: Rename file
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/file/rename
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: multipart-form
data:
- name: fileUri
type: text
value: ''
- name: newFileUri
type: text
value: ''
docs: 'This renames an uploaded file by changing the `fileUri`. After renaming the file, it will only be identified by
the new `fileUri` that you provide.
'
- info:
name: Delete file
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/file/delete
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
body:
type: multipart-form
data:
- name: fileUri
type: text
value: ''
docs: 'This removes the file from Smartling. The file will no longer be available for download. Any complete translations
for the file remain available for use within the system.
Smartling deletes files asynchronously and it typically takes a few minutes to complete. While deleting a file, you
can not upload a file with the same `fileUri`.
'
- info:
name: Last modified date (single locale)
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/:localeId/file/last-modified
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: localeId
value: ''
type: path
description: Identifier for a locale.
- name: fileUri
value: ''
type: query
description: A unique identifier for a file in Smartling.
- name: lastModifiedAfter
value: ''
type: query
description: Limits the return to only those file and locale combinations that have a ```lastModified``` date after
the ```lastModifiedAfter```parameter . The items array will be empty if the file has not been modified in any of
the locales since the `lastModifiedAfter` date specified.
docs: 'This returns the date that a file was last modified in a specified locale.
'
- info:
name: Last modified date (all locales)
type: http
http:
method: GET
url: https://api.smartling.com/files-api/v2/projects/:projectId/file/last-modified
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: fileUri
value: ''
type: query
description: A unique identifier for a file in Smartling.
- name: lastModifiedAfter
value: ''
type: query
description: Limits the return to only those file and locale combinations that have a ```lastModified``` date after
the parameter ```lastModifiedAfter```. The items array will be empty if the file has not been modified in any of
the locales since the `lastModifiedAfter` date specified.
docs: 'This returns the date that a file was last modified in each locale.
'
- info:
name: Import translations
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/:localeId/file/import
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: localeId
value: ''
type: path
description: Identifier for a locale.
body:
type: multipart-form
data:
- name: file
type: text
value: ''
- name: fileUri
type: text
value: ''
- name: fileType
type: text
value: ''
- name: translationState
type: text
value: ''
- name: overwrite
type: text
value: ''
docs: Import translations
- info:
name: Export translations
type: http
http:
method: POST
url: https://api.smartling.com/files-api/v2/projects/:projectId/locales/:localeId/file/get-translations
params:
- name: projectId
value: ''
type: path
description: A unique project identifier. This can be found in the Smartling Dashboard under Account Settings > API.
- name: localeId
value: ''
type: path
description: Identifier for a locale.
body:
type: multipart-form
data:
- name: file
type: text
value: ''
- name: fileUri
type: text
value: ''
- name: retrievalType
type: text
value: ''
- name: includeOriginalStrings
type: text
value: ''
docs: 'Temporarily uploads a file, then returns a translated version for requested locales.
This call can be used instead of a standard upload/download if you keep different versions of a file in multiple branches
or are triggering rebuilds, and don’t want your files in Smartling to be overwritten by out-of-date versions of a file.
To use the call, you upload a file and identify the Smartling URI where the main version of that file is saved. Smartling
will match strings shared between the uploaded fi'
- info:
name: List recently published files
type: http
http:
meth
# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/smartling/refs/heads/main/apis.yml