Smartling REST API Reference (2.0.0)

Download OpenAPI specification:Download

Before you begin using the Smartling APIs, we recommend going through our Developer documentation.

Authentication

Smartling uses OAuth2 for authentication. To access the Smartling APIs, you'll first need to authenticate with your user identifier and user secret. An access token is returned that can be attached to the header of any API request. A refresh token is also returned.

To obtain your user identifier and user secret, log in to Smartling.com and go to API > Create Token. Authenticating is as simple as calling the /api.smartling.com/auth-api/v2/authenticate with your userIdentifier and userSecret. The access token returned is valid for 5-minutes, and is used in the header of all subsequent requests.

Example for generating your access token:

curl -X POST https://api.smartling.com/auth-api/v2/authenticate  -H 'content-type: application/json' -d '{"userIdentifier": "userIdasdklj4348dk34!", "userSecret": "userSecret34i34kkd5634f"}'
{
    "response": {
        "code": "SUCCESS",
        "data": {
                "accessToken": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOasdlkjn",
                "refreshToken": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJkMTdkMmEw",
                "expiresIn": 480,
                "refreshExpiresIn": 3660,
                "tokenType": "Bearer"
        }
    }
}

Example of using your access token to list all projects for your account:

curl -X GET -H "Authorization: Bearer {accessToken}" https://api.smartling.com/accounts-api/v2/accounts/{accountUid}/projects
{
    "response": {
        "code": "SUCCESS",
        "data": {
            "totalCount": 1,
            "items": [{
                         "projectId": "df324sdf5",
                         "projectName": "iOS Strings files",
                         "accountUid": "ab5f1939",
                         "archived": false,
                         "projectTypeCode": "APPLICATION_RESOURCES",
                         "sourceLocaleId": "en",
                         "sourceLocaleDescription": "English"
                     }
            ]
        }
    }
}

Authenticate

Verifies the credentials of the connection attempt.

Authorizations:
BearerAuth
Request Body schema: application/json
required

Authentication Request

userIdentifier
required
string

Unique integer used to identify a user.

userSecret
required
string

A personal code that identifies an authorized user of the API endpoint.

Responses

Request samples

Content type
application/json
{
  • "userIdentifier": "Qw**********",
  • "userSecret": "Zj**********"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Refresh access token

A renewed access token that can be attached to the header of any API request.

Authorizations:
BearerAuth
Request Body schema: application/json
required

Refresh token request

refreshToken
required
string

The refresh token returned from a previous authentication request.

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Account & Projects

Each client within Smartling is given their own account with a designated accountUid. Within each account is any number of projects. All files, content, and jobs are tied to a particular project. The Accounts & Projects API will allow you to programmatically find and use the projects within your account.

You may wish to reference the Key Concepts for Developers article to better understand how content is organized within Smartling.

List projects

Returns the list of projects for the account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

query Parameters
projectNameFilter
string

Substring search of the name of the project. Search is case insensitive.

includeArchived
boolean

Indicator whether or not archived projects should be returned. Defaults to false if not specified.

offset
integer

Standard Smartling limit and offset to paginate through results.

limit
integer

Standard Smartling limit and offset to paginate through results. 500 projects are returned by default if not specified.

projectTypeCode
string

Indicator for the type of the project.

projectTypeCodes
Array of strings

Indicator list for the type of the projects.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/accounts-api/v2/accounts/$smartlingAccountId/projects

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get project details

Returns the details of a project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
includeDisabledLocales
boolean

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.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/projects-api/v2/projects/$smartlingProjectId

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add a new target locale

Add a new target locale to the project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
defaultWorkflowUid
string

The default workflow that should be used when content is authorized. If not specified, the default workflow configured for the project will be used.

localeId
string

The locale identifier (localeId) of the locale to be added to the project.

Responses

Request samples

Content type
application/json
{
  • "defaultWorkflowUid": "ac48ht4qy",
  • "localeId": "ru-RU"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Copy an existing project

Make a copy of an existing project, thereby creating a new one with a new name

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
projectName
string

The name of the new project to create.

targetLocaleIds
Array of strings

The list of target locales the new project should be created for. Note, each target locale specified must valid within the source project you are copying, i.e. you can copy all or a subset of locales from the source project to the target project.

Responses

Request samples

Content type
application/json
{
  • "projectName": "New Android Project",
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get the status of the project copy request

Used to check if the copy project request is complete and to retrieve the new projectId

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

processUid
required
string

The uid of the process to check for

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Locales

Locales are the language and country pairs that are used to identify the source content and the desired target locale for your translated content.

List locales

The list of available locales within Smartling.

To find out the localedID for a specific project, refer to Get project details.

Authorizations:
BearerAuth
query Parameters
localeIds
Array of strings

Optional parameter to filter to the specified list of locales.

supportedOnly
boolean

Fetch only supported locales. Otherwise fetch all locales. Default value is "true".

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

People

Smartling users, who process and translate content with the Smartling platform.

Get list of user information

Smartling users, who process and translate content with the Smartling platform.

Authorizations:
BearerAuth
Request Body schema: application/json
userUids
Array of strings

List of user uids.

excludeProfileImage
boolean

As a performance optimization, exclude the user's profile image.

Responses

Request samples

Content type
application/json
{
  • "userUids": [
    ],
  • "excludeProfileImage": false
}

Response samples

Content type
application/json
{}

Files

Files are typically how you can exchange your content with Smartling to get translations. Smartling supports a wide variety of file types. When you upload a file to Smartling, it gets parsed into strings, which will then be sent into the translation queue.

The complete list of supported file types is available here. For information on file directives, please refer to the documentation for each specific file type.

Upload file

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.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

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

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

A value that uniquely identifies the uploaded file. This ID can be used to request the file back. We recommend that you use file path and file name, similar to how version control systems identify the file.

Example: /myproject/i18n/ui.properties

fileType
required
string (FileType)
Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"

A unique identifier for the file type.

smartling.namespace
string

This is only for accounts created after July 31st, 2015. Define a custom namespace for the file.

Note: While this parameter shares the format of other file directives, it will not work as an inline directive and must be specified in the API call.

smartling.file_charset
string

Specifies a custom charset for text-format files. The value should be the name of the character set. See a full list of supported character sets here.

If this directive is not used, Smartling will use the Content-Type request header to determine if the content is encoded with UTF-16, UTF-16B or UTF-16LE. If there is no Content-Type header, Smartling will examine the file for UTF-16 characters. If none are detected, UTF-8 encoding will be used.

Note: Once this property has been set for a file, it cannot be changed. If you reupload the file, it will use the original charset, even if you change the directive. An error will be returned if this directive is used when uploading binary-format file types, such as Office or IDML files.

smartling.[command]
string

Provides custom parser configuration for supported file types. See Supported File Types for more details.

callbackUrl
string <url> <= 255 characters

A GET request that creates a callback to a URL when all authorized strings from a file are 100% published for a locale.* The callback gives the fileUri and locale with the format http[/s]://your.url?locale=xx-XX&fileUri=your.file. If you upload the file again, without a callbackUrl, it will remove any previous callbackUrl for that file. The RequestBin (http://requestb.in) service is a convenient way to test a callback. RequestBin generates a short-lived disposable URL that displays all posted requests.

If a callback fails, Smartling will make multiple attempts to reach the designated URL. However, we do not keep retrying a failed callback indefinitely. Try to make sure your callback URL is as stable as possible and be aware that callbacks are not a 100% reliable way of being notified that a file is published.

If the upload has begun but is taking more than a minute to complete, it responds with a 202 status.

*This is the default behavior. There are cases when the callback could be triggered even when not all authorized strings are published, depending on your project configuration. Contact your Smartling Representative if you have questions about your project’s callback configuration.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "file=@$uploadFilePath;type=text/plain" -F "fileUri=$uploadFileSmartlingUri" -F "fileType=$uploadFileSmartlingType" "https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download source file

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 with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding.

The filename is based on the fileUri associated with the requested file. In most cases, the filename is exactly the fileUri provided. The only exception to this is with .pot gettext files. When a .pot file is specified as the fileUri, Smartling returns a .po file.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
fileUri
required
string

Value that uniquely identifies the downloaded file.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -G --data-urlencode "fileUri=$smartlingFileUri" "https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Status of file for each locale

Returns information on a specific file.

Example:

  curl -X GET -H "Authorization: Bearer {token}" 'https://api.smartling.com/files-api/v2/projects/{projectId}/file/status?fileUri=file.properties'
Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
fileUri
required
string

Smartling value that uniquely identifies a file in Smartling

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Status of file for a single locale

Returns detailed status information on a specific file.

Example:

curl -X GET -H "Authorization: Bearer {token}" 'https://api.smartling.com/files-api/v2/projects/{projectId}/locales/{localeId}/file/status?fileUri=file.properties'
Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

Identifier for a locale.

query Parameters
fileUri
required
string

Smartling value that uniquely identifies a file in Smartling

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download translated file (single locale)

This downloads 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 any other 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 with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding.

Note: The filename in the response header is based on the fileUri associated with the requested file. In most cases, the filename is exactly the fileUri provided. The only exception to this is with .pot gettext files. When a .pot file is specified as the fileUri, Smartling returns a .po file.`

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

Identifier for a locale.

query Parameters
fileUri
required
string

Value that uniquely identifies the downloaded file

retrievalType
string
Enum: "pending" "published" "pseudo" "contextMatchingInstrumented"

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 "Thí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.
includeOriginalStrings
boolean

Specifies whether Smartling will return the original string or an empty string where no translation is available. This parameter is only supported for Android XML, gettext, Java properties, custom XML, JSON, and XLIFF files.

Value Description
true If there is no translation, Smartling returns the original string.
false If there is no translation, Smartling returns an empty string.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -o $smartlingLocaleId$smartlingFileUri -G --data-urlencode "fileUri=$smartlingFileUri" "https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/locales/$smartlingLocaleId/file"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download all translations of file

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 /file/get requests for that file will have a character encoding of UTF-16. All other uploaded files will return with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
fileUri
required
string

Smartling value that uniquely identifies a file in Smartling

retrievalType
string
Enum: "pending" "published" "pseudo" "contextMatchingInstrumented"

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 "Thí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.
includeOriginalStrings
boolean

Specifies whether Smartling will return the original string or an empty string where no translation is available. This parameter is only supported for Android XML, gettext, Java properties, custom XML, and JSON files.

Value Description
true If there is no translation, Smartling returns the original string.
false If there is no translation, Smartling returns an empty string.
zipFileName
string

Name for the downloaded zip file. If unset, the default is translations.zip

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" 'https://api.smartling.com/files-api/v2/projects/{projectId}/locales/all/file/zip?fileUri=yourfile.json&retrievalType=published'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download multiple translated files

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.

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 with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding.

Example:

  curl -X GET -H "Authorization: Bearer {token}" 'https://api.smartling.com/files-api/v2/projects/{projectId}/files/zip?localeIds[]=de-DE&fileUris[]=yourfile.json'
Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
fileUris[]
required
Array of strings

Smartling values that each uniquely identify a file. The limit is 300 files.

localeIds[]
required
Array of strings

List of locales to download.

retrievalType
string
Enum: "pending" "published" "pseudo" "contextMatchingInstrumented"

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 "Thí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.
includeOriginalStrings
boolean

Specifies whether Smartling will return the original string or an empty string where no translation is available. This parameter is only supported for Android XML, gettext, Java properties, custom XML, and JSON files.

Value Description
true If there is no translation, Smartling returns the original string.
false If there is no translation, Smartling returns an empty string.
fileNameMode
string
Enum: "UNCHANGED" "TRIM_LEADING" "LOCALE_LAST"

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
localeMode
string
Enum: "LOCALE_IN_PATH" "LOCALE_IN_NAME" "LOCALE_IN_NAME_AND_PATH"

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.
zipFileName
string

Name for the downloaded ZIP file. If unset, default is translations.zip

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

List recently uploaded files

This lists recently uploaded files, and returns a maximum of 100 files.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
uriMask
string

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

fileTypes[]
Array of strings (FileType)
Items Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"
lastUploadedAfter
string <YYYY-MM-DDThh:mm:ssZ>

Returns all files uploaded after the specified date.

lastUploadedBefore
string <YYYY-MM-DDThh:mm:ssZ>

Returns all files uploaded before the specified date.

orderBy
string
Enum: "created" "fileUri" "lastUploaded" "created_asc" "created_desc" "fileUri_asc" "fileUri_desc" "lastUploaded_asc" "lastUploaded_desc"

Sets the name and direction of the parameter to order results by. If ascending or descending is not specified, the default is ascending

limit
integer
Default: 100

In order to get consistent pagination, make sure to specify the orderBy parameter.

offset
integer
Default: 0

Standard Smartling limit and offset to paginate through results.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" "https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/files/list?fileTypes[]=json&uriMask=strings"

Response samples

Content type
application/json
{
  • "response": {
    }
}

List all file types

This returns a list of all file types currently represented in the project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" "https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file-types"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Rename file

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.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: multipart/form-data
fileUri
required
string

Current value that uniquely identifies the file

newFileUri
required
string

The new value for fileUri. We recommend that you use file path and file name, similar to how version control systems identify the file. Example: /myproject/i18n/ui.properties. This must be a fileUri that does not exist in the current Smartling project.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "fileUri=filename.properties" -F "newFileUri=filename2.properties" 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file/rename'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete file

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.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: multipart/form-data
fileUri
required
string

Smartling value that uniquely identifies a file in Smartling

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "fileUri=filename.properties" 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file/delete'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Last modified date (single locale)

This returns the date that a file was last modified in a specified locale.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

Identifier for a locale.

query Parameters
fileUri
required
string

A unique identifier for a file in Smartling.

lastModifiedAfter
string <YYYY-MM-DDThh:mm:ssZ>

Limits the return to only those file and locale combinations that have a lastModified date after the lastModifiedAfterparameter . The items array will be empty if the file has not been modified in any of the locales since the lastModifiedAfter date specified.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/locales/$smartlingLocaleId/file/last-modified?fileUri=filename.properties'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Last modified date (all locales)

This returns the date that a file was last modified in each locale.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
fileUri
required
string

A unique identifier for a file in Smartling.

lastModifiedAfter
string <YYYY-MM-DDThh:mm:ssZ>

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.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/file/last-modified?fileUri=filename.properties'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Import translations

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

Identifier for a locale.

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

The Smartling URI for a file that contains the original language strings that are already uploaded to Smartling.

fileType
required
string
Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"

A unique identifier for the file type. To allow translation imports, XML and JSON files must be uploaded with source_key_paths defined.

translationState
required
string
Enum: "PUBLISHED" "POST_TRANSLATION"

Value indicating the workflow state to import the translations into. Content will be imported into the language's default workflow.

Value Description
PUBLISHED The translated content is published.
POST_TRANSLATION The translated content is imported into the first step after translation - if there is none, it will be published.
overwrite
boolean

Whether or not to overwrite existing translations.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -F "file=@filename.properties" -F "fileUri=filename.properties" -F "fileType=javaProperties" -F "translationState=PUBLISHED" 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/locales/$smartlingLocaleId/file/import'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Export translations

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 file and the main file and return any available translations.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

Identifier for a locale.

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

The Smartling URI for a file that contains the original language strings that are already uploaded to Smartling

retrievalType
string
Enum: "pending" "published" "pseudo" "contextMatchingInstrumented"

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 "Thí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.
includeOriginalStrings
boolean

Specifies whether Smartling will return the original string or an empty string where no translation is available. This parameter is only supported for Android XML, gettext, Java properties, custom XML, and JSON files.

Value Description
true If there is no translation, Smartling returns the original string.
false If there is no translation, Smartling returns an empty string.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -F "file=@filename.properties" -F 'fileUri=filename.properties' 'https://api.smartling.com/files-api/v2/projects/$smartlingProjectId/locales/$smartlingLocaleId/file/get-translations'

Response samples

Content type
application/json
{
  • "response": {
    }
}

List recently published files

Response is limited to files published after 14 days from the time called.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

query Parameters
publishedAfter
required
string <YYYY-MM-DDThh:mm:ssZ>

Limits the response to only those files that have a publishDate date after the publishedAfter parameter. The items array can be empty if no files match this criteria.

fileUris[]
Array of strings

A list of fileUris to filter the response list by. Value must be exact match. Up to 20 fileUris can be specified. See getRecentlyUploadedSourceFilesList to get a project's fileUris.

localeIds[]
Array of strings

A list of locale identifiers to filter the response list by. Up to 50 localeIds can be specified. See getProjectDetails to get a project's localeIds.

offset
integer

Standard Smartling limit and offset to paginate through results. Default value is 0.

limit
integer

Standard Smartling limit and offset to paginate through results. Limit is not applied if this parameter is not specified.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" 'https://api.smartling.com/published-files-api/v2/projects/$smartlingProjectId/files/list/recently-published?publishedAfter=2019-11-21T11:51:17Z&fileUris[]=files/example1.json&localeIds[]=fr-CA&limit=10&offset=100'

Response samples

Content type
application/json
{
  • "response": {
    }
}

Machine Translation (MT)

The Smartling platform offers state-of-the-art Machine Translation capabilities through its synchronous account-level Machine Translation API. This API enables seamless translation of content without the need for it to be processed through Smartling Workflows. The API offers access to all MT Profiles, including the highly efficient MT Autoselect feature, providing unparalleled flexibility and control over your translation needs.

Machine Translation (MT) using preconfigured MT Profile

Machine Translation (MT) using preconfigured MT Profile. Input and output text format is HTML.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
sourceLocaleId
required
string

Locale ID of the original text

targetLocaleId
required
string

Locale ID of the requested translation

required
Array of objects (MTTranslateItemRequest) <= 1000 items

Responses

Request samples

Content type
application/json
{
  • "sourceLocaleId": "en-US",
  • "targetLocaleId": "de-DE",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

File Machine Translations (MT)

The File Translations API offers a simple way to upload files and execute actions on them without any complex setup required. All resource-intensive actions are performed asynchronously and return an actionUid. By polling the API with the provided actionUid, you can easily monitor the progress of your file-based tasks in real time.

Upload file

Upload a file to use for asynchronous tasks like language detection or machine translation. Maximum file size is 200MB.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: multipart/form-data
required
required
object
file
required
string <binary>

The file contents to upload.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken"  -H "Content-Type:multipart/form-data" -F "request={\"fileType\":\"PLAIN_TEXT\"};type=application/json" -F "file=@/Users/smartling/Downloads/test.txt;type=application/octet-stream" https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files

Response samples

Content type
application/json
{
  • "response": {
    }
}

Translate file

Perform translation for a previously uploaded file given a source locale and a set of target locales.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

Request Body schema: application/json
required
sourceLocaleId
required
string

Source locale of the uploaded file.

targetLocaleIds
required
Array of strings

List of target locales that the file needs to be translated into.

Responses

Request samples

Content type
application/json
{
  • "sourceLocaleId": "en-US",
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get translation progress

Get progress for an ongoing file translation action. Progress is reported on a per locale basis, but will also include an aggregate state for all locales.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

mtUid
required
string

Unique identifier of machine translation action triggered on a file.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken"  https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/mt/$smartlingMtUid/status

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download translated file (single locale)

Download translated file for a specific locale. The download is allowed only if translation to the requested locale has been fully completed.

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 /file/get requests for that file will have a character encoding of UTF-16. All other uploaded files will return with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding. The output filename is based on the original file name, that was provided during initial upload call.

Note: for GETTEXT files we're going to return file extension as .po even if during the initial file upload it was uploaded with .pot file extension.

Authorizations:
BearerAuth
path Parameters
localeId
required
string

One of translation requested with prior call to File MT end point.

accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

mtUid
required
string

Unique identifier of machine translation action triggered on a file.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken"  https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/mt/$smartlingMtUid/locales/{$smartlingLocaleId}/file

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download translated files (all locales)

Download a ZIP archive of translated files for all requested locales.

Unlike the "Download translated file (single locale)" 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 /file/get requests for that file will have a character encoding of UTF-16. All other uploaded files will return with a character encoding of UTF-8.

You can always use the content-type header in the response of a file/get request to determine the character encoding.

Zip archive can only be downloaded if translation to all locales has completed (overall state has to be in COMPLETED or CANCELLED states) and if there is at least one locale which has COMPLETED state.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

mtUid
required
string

Unique identifier of machine translation action triggered on a file.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken"  https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/mt/$smartlingMtUid/locales/{$smartlingLocaleId}/file

Response samples

Content type
application/json
{
  • "response": {
    }
}

Cancel file translation

Cancel an ongoing file translation at any point during the translation process. If file translation is complete or has already been cancelled, calling this endpoint will have no effect.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

mtUid
required
string

Unique identifier of machine translation action triggered on a file.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -H "Content-Type:application/json" https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/mt/$smartlingMtUid/cancel

Response samples

Content type
application/json
{
  • "response": {
    }
}

Detect file language

Request source language detection for an existing file.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken"  https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/language-detection

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get language detection progress

Get progress for an ongoing source language detection action. Result of language detection is propagated to response as soon as state changes to COMPLETED.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

fileUid
required
string

Unique identifier of the uploaded file.

languageDetectionUid
required
string

Unique identifier of language detection action triggered on a file.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken"  https://api.smartling.com/file-translations-api/v2/accounts/$smartlingAccountId/files/$smartlingFtsFileUid/language-detection/$smartlingLanguageDetectionUid/status

Response samples

Content type
application/json
{
  • "response": {
    }
}

Jobs

A Smartling project (such as a mobile, web, files, or connector project) may contain one or more jobs. You may have multiple projects, each containing multiple jobs. Each job contains strings, consisting of words or phrases.

The Jobs feature allows you to group and prioritize your content by name, due date, description, and reference number (optional). It also enables you to monitor the progress of your translations throughout completion.

The Jobs API allows you to create a job, add a file to a job, authorize a job, and cancel a job, among many other actions. You have full control via the API to manage your job(s).

List jobs within an account

List / search the jobs within an account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

query Parameters
jobName
string

Used for searching jobs by jobName. Any entry is treated as a LIKE query on the name of the job.

projectIds
Array of strings

Used for searching jobs by projectId. Supports up to 500 projectIds.

translationJobStatus
Array of strings
Items Enum: "DRAFT" "AWAITING_AUTHORIZATION" "IN_PROGRESS" "COMPLETED" "CANCELLED" "CLOSED" "DELETED"

Used for searching jobs by their status.

withPriority
boolean

If set to true, returns jobs only with priority.

limit
integer

The limit on the number of jobs returned.

offset
integer

The offset to use when searching for jobs.

sortBy
string
Enum: "createdDate" "priority"

The field to sort by.

sortDirection
string
Enum: "ASC" "DESC"

The direction to sort.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/jobs-api/v3/accounts/$smartlingAccountId/jobs

Response samples

Content type
application/json
{
  • "response": {
    }
}

List jobs within a project

List / search the jobs within a project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
jobName
string

Used for searching jobs by jobName. Any entry is treated as a LIKE query on the name of the job.

jobNumber
string
Example: jobNumber=SMTL-123

Used for searching jobs by jobNumber. Search works by exact comparison.

translationJobUids
Array of strings

Used for searching jobs by translationJobUid. Supports up to 500 translationJobUids.

translationJobStatus
Array of strings
Items Enum: "DRAFT" "AWAITING_AUTHORIZATION" "IN_PROGRESS" "COMPLETED" "CANCELLED" "CLOSED" "DELETED"

Used for searching jobs by their status.

limit
integer

The limit on the number of jobs returned.

offset
integer

The offset to use when searching for jobs.

sortBy
string
Enum: "createdDate" "dueDate" "jobName"

The field to sort by.

sortDirection
string
Enum: "ASC" "DESC"

The direction to sort.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/jobs-api/v3/projects/$smartlingProjectId/jobs

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create job

Creates a job within Smartling.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
jobName
string <= 170 characters

The name of the job to create. It must be unique within the Smartling project. jobName is required.

targetLocaleIds
Array of strings

The array of localeIds to be used when creating the job. The locales specified must be valid within the Smartling project.

description
string

The description of the job. The description is limited to 2,000 characters.

dueDate
string <date-time>

The date the job is requested to be completed by.

referenceNumber
string

Customer specific number/identifier for the job.

callbackUrl
string <= 8192 characters

The URL for Smartling to invoke when the job is completed.

callbackMethod
string

The HTTP method to call (GET|POST) when invoking the callbackUrl.

Array of objects (CustomFieldBasicRequest)

Custom fields assigned to the project which job is created in. Validation on custom fields is done in scope of that request.

Responses

Request samples

Content type
application/json
{
  • "jobName": "This is my job name.",
  • "targetLocaleIds": [
    ],
  • "description": "This is my job description.",
  • "dueDate": "2020-11-21T01:51:17Z",
  • "referenceNumber": "referenceNumb1",
  • "callbackUrl": "https://myDomain.com",
  • "callbackMethod": "GET",
  • "customFields": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Search Jobs By Hashcodes And Locales

Search Job(s), based on locales and hashcodes. We allow total 20000 records to be passed. Means it could be 10 locales * 2000 hashcodes or 1 locale * 20000 hashcodes or no locales and just 20000 hashcodes, etc

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
hashcodes
Array of strings

The array of hashcodes to search a job containing given hashcodes. If empty, response will also be empty list.

localeIds
Array of strings

List of localeIds to search jobs associated with provided hashcodes and locales. If empty, search will be performed only by hashcodes.

Responses

Request samples

Content type
application/json
{
  • "hashcodes": [
    ],
  • "localeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get translation job strings.

This gets translation job string hashcodes with locales

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
query Parameters
targetLocaleId
string

Target / translation locale id.

limit
integer
Default: 1000

Max amount of result items.

offset
integer
Default: 0

Amount of items to skip.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add strings to job

Adding strings to a job is useful if you don't manage strings / content through files, but instead need to add strings by some other means other than files.

When strings are successfully added to a job, a 200 status is returned. When the system can't quickly add strings to the job, a 202 response status is returned. The response contains a link and processUid to check the progress of the request. When a 202 is received, the process of adding the content to the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required
hashcodes
Array of strings <= 1000 items

The array of hashcodes to use to add to the job. The hashcodes must exist within Smartling, for the project, in order to be added to a job. Hashcodes are required when adding strings to a job. Hashcodes are limited to 1000 per API call.

moveEnabled
boolean
Default: false

(Optional), default is false. A string for a locale can only be in one job. If the string identified in the request is already in a job for a locale then it won't be added. However, moveEnabled=true can be specified, and in this case, the string will be moved into the specified job.

targetLocaleIds
Array of strings

The array of localeIds that strings should be added to. If it's not specified, the strings will be added to all locales within that job. If it's specified, the strings will only be added for the locales provided. If the locales were not already part of the job, the job will be extended to contain the additional locales.

Responses

Request samples

Content type
application/json
{
  • "hashcodes": [
    ],
  • "moveEnabled": false,
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove strings from job

Remove strings from a job. Any strings removed from the job will also be unauthorized within Smartling.

If strings are successfully removed from a job, a 200 status will be returned. When the system can't quickly add the strings to the job, a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of removing the content from the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required
hashcodes
Array of strings

The hashcodes (string identifiers) that should be removed from the job.

localeIds
Array of strings

(Optional) The array of localeIds that the strings should be removed from. If not specified, the strings will be removed from all locales within that job.

Responses

Request samples

Content type
application/json
{
  • "hashcodes": [
    ],
  • "localeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Close job

This closes a completed job. In order for a job to be closed, it must be in a completed state. All content from the job will be removed when it is closed. Closing a job guarantees that no additional work will be done against the job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Cancel job

This cancels a job. All content within the job will be removed from the job and the content will be unauthorized.

If a job is successfully cancelled, a 200 response status will be returned. When the system can't quickly cancel the job, a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of canceling and removing the content from the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
reason
string

Optional field that can be used to indicate the reason the job was cancelled.

Responses

Request samples

Content type
application/json
{
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Authorize job

This authorizes all content within a job. A job can only be authorized when it has content and is in an AWAITING_AUTHORIZATION state.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required

The payload to use when authorizing a job. If no target locales and workflows are provided, the empty body {} should be provided. Smartling will authorize the job for the default workflows for the given project.

Array of objects (AuthorizeJobItemRequest)

Responses

Request samples

Content type
application/json
{
  • "localeWorkflows": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get details of job

This gets the details of a job such as job name, description, due date, and reference number.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update job

This updates the attributes of the job, such as job name, description, due date, and reference number. The API works in a replace-all fashion. Fields, that are not passed, will be overwritten with empty values.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required
jobName
string <= 170 characters

The name of the job. It must be unique within the Smartling project. jobName is required.

description
string

The description of the job.

dueDate
string <date-time>

The date by which the job is requested to be completed.

referenceNumber
string

Customer specific number/identifier for the job.

callbackUrl
string <= 8192 characters

The URL for Smartling to invoke when the job is completed.

callbackMethod
string

The HTTP method to call (GET|POST) when invoking the callbackUrl.

Array of objects (CustomFieldBasicRequest)

Responses

Request samples

Content type
application/json
{
  • "jobName": "string",
  • "description": "string",
  • "dueDate": "2020-11-21T01:51:17Z",
  • "referenceNumber": "CustomerReferenceNum1",
  • "callbackUrl": "https://myDomain.com",
  • "callbackMethod": "GET",
  • "customFields": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete job

This deletes a job. Only job that is in CANCELLED status can be deleted. If a job is successfully deleted, a 200 response status will be returned.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Search for job

This searches for jobs based on hashcodes (string identifiers), fileUris, and translationJobUids. Will return max of 100 translation job list items.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required

The filters to use when searching for jobs within the project. Requirements: One of the parameters should non be an empty collection (fileUris or hashcodes or translationJobUids).

fileUris
Array of strings

(Optional) The fileUris (file identifiers) used to search for jobs. Any job containing the specified fileUri will be returned.

hashcodes
Array of strings

(Optional) The hashcodes (string identifiers) used to search for jobs. Any job containing specified hashcodes will be returned.

translationJobUids
Array of strings

(Optional) The translationJobUids (translation job identifiers) used to search for jobs. Any job containing the specified fileUri will be returned.

Responses

Request samples

Content type
application/json
{
  • "fileUris": [
    ],
  • "hashcodes": [
    ],
  • "translationJobUids": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Check for an async process for job

This checks for an asynchronous process for a job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
processUid
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add file to job

This adds all non-published strings from a file to a job. By default, the file will be added for all locales of the job, but you can change this by specifying targetLocaleIds for the job you wish to add the file into.

Validation rules:

  • A job can contain a maximum of 5000 files.
  • Content can't be added to the job if the job doesn't contain any locales, and the request to add a file doesn't specify any locales.
  • The file (specified by the fileUri) can't be in the process of being uploaded / modified within Smartling. It should complete its upload process before being added to a job.
  • Any targetLocales specified must be valid within the project the job has been created for.

When the system can quickly add the file and its content to the job, it synchronously responds with status 200. When the system cannot quickly add the file and its content to the job, then a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of adding the content to the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required

The fileUri (unique URI of the file). The file should not currently be in the process of being uploaded to Smartling before being added to a job. To check this, you can invoke the file-api /file/status API on the file and verify a 200 response before requesting the file be added to the job.

fileUri
string

The URI of the file that has been uploaded to Smartling. fileUri is required.

targetLocaleIds
Array of strings

The array of localeIds that the file should be added to. If not specified, the file will be added to all locales. If specified, the file will only be added for the locales provided. If the locales were not already part of the job, then the job will be extended to contain the additional locales.

Responses

Request samples

Content type
application/json
{
  • "fileUri": "string",
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove file from job

Removes a file from a job. All content that is part of the file contained within that job will be removed from the job and will become unauthorized content.

When the system can quickly remove the file and its content from the job synchronously, it responds with a 200 status. When the system cannot quickly remove the file and its content from the job, a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of removing the file and its content from the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
Request Body schema: application/json
required

The fileUri (unique URI of the file) that is to be removed from the job.

fileUri
string

The URI of the file that is to be removed from the job.

Responses

Request samples

Content type
application/json
{
  • "fileUri": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List files within job

This lists all files within a job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
query Parameters
limit
integer
Default: 1000

The limit on the number of files returned.

offset
integer
Default: 0

The offset to use when searching for files.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add locale to job

This adds a locale to a job. When the system can quickly add the locale and any content to the job, it synchronously responds with status 200. When the system can't quickly add the locale and any content to the job, a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of adding the content to the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
targetLocaleId
required
string
Request Body schema: application/json
required

syncContent is default to true. When a new locale is being added to a job, by default all content in the job will be added to the job for the new locale. If set to false, then no content will be added to the job, and only a locale placeholder will be added to the job.

syncContent
boolean
Default: true

When a new locale is being added to a job, by default all content in the job will be added to the job for the new locale. If set to false, then no content will be added to the job, and only a locale placeholder will be added to the job.

Responses

Request samples

Content type
application/json
{
  • "syncContent": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove locale from job

This removes a locale from a job. When removing a locale from a job (and thus any content within that job for that locale), the content being removed will be unauthorized.

When the system can quickly remove the locale and any content from the job, it synchronously responds with status 200. When the system cannot quickly remove the locale and any content from the job, then a 202 response is returned. The response contains a link to check the progress of the request. When a 202 is received, the process of removing the content from the job will not be complete until the returned process has completed.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
targetLocaleId
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get progress of file within job

This shows the progress of a file within a job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
query Parameters
fileUri
required
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get progress of job

This gets the progress of a job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string
query Parameters
targetLocaleId
string

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get last completion dates per locale of job

Returns the last completion date for any locale completed within the job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

A unique identifier for a job.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Find schedule for translation job

Get all schedule items for a specific job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

A unique identifier for a job.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Modify schedule items for translation job

This modifies translation job schedule for provided items

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

translationJobUid
required
string

A unique identifier for a job.

Request Body schema: application/json
Array of objects (JobScheduleEditItemCommand)

Array of translation job schedule edit items.

Responses

Request samples

Content type
application/json
{
  • "schedules": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Find custom fields for specified project

Returns custom fields assigned to the project. Order is the one that was specified during assignment operation.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Assign new custom fields to project

Accepts new values for assignment. If empty list is passed - all assignments are deleted. Order of the fields in the request is preserved during saving.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
Array
fieldUid
any

Custom field unique identifier.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "response": {
    }
}

Find custom fields for specified account

Gets all custom fields for specified account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

query Parameters
searchableOnly
boolean

Get only searchable custom fields.

enabledOnly
boolean

Get only enabled custom fields.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create new custom field in account

Creates new custom field in account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
type
string

custom field type.

fieldName
boolean

custom field name.

enabled
boolean

is custom field enabled.

required
boolean

is custom field required during job creation.

searchable
boolean

can search be performed by the custom field.

displayToTranslators
boolean

is displayed to translators.

options
Array of strings
defaultValue
string

default value for custom field.

description
string

custom field description.

Responses

Request samples

Content type
application/json
{
  • "type": "SHORT_TEXT | LONG_TEXT | SELECTBOX | CHECKBOX",
  • "fieldName": "field-name",
  • "enabled": true,
  • "required": true,
  • "searchable": true,
  • "displayToTranslators": true,
  • "options": [
    ],
  • "defaultValue": "default field value",
  • "description": "Custom field example"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update custom field in account

Updates custom field in account using field UID specified.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

fieldUid
required
string

A unique identifier for a custom field.

Request Body schema: application/json
fieldName
boolean

custom field name.

enabled
boolean

is custom field enabled.

required
boolean

is custom field required during job creation.

searchable
boolean

can search be performed by the custom field.

displayToTranslators
boolean

is displayed to translators.

options
Array of strings
defaultValue
string

default value for custom field.

description
string

custom field description.

Responses

Request samples

Content type
application/json
{
  • "fieldName": "field-name",
  • "enabled": true,
  • "required": true,
  • "searchable": true,
  • "displayToTranslators": true,
  • "options": [
    ],
  • "defaultValue": "default field value",
  • "description": "Custom field example"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Job Batches V1

Job batches take care of asynchronous processes when uploading files and attaching them to jobs.

Generally, adding multiple files to a job is associated with polling - file is parsed asynchronously and can't be added to a job until it is completed, adding file to a job is also asynchronous, and job can't be authorized until all background tasks completed.

This forces third-party integration poll every file after every step.

Batches hide these asynchronous processes from 3rd party integration - after it accepted file from client it conducts this file through all steps up to the Job authorization. As Job Batches Service utilizes internal Smartling events it gets more effective than just polling files and jobs.

From the client side flow consists of simple steps:

  1. Client creates Job (or uses existing one, which isn't currently processed with another Batch)

  2. Client Creates a new Batch for this Job

  3. Client adds (uploads) files into the batch giving target locales list

  4. When all files are uploaded, client triggers "execute" for the batch.

  5. Batch execution process waiting until all files are uploaded and added to the Job and then, if was requested, authorizes the Job.

  6. Clients can check batch status and see if all files uploaded and attached successfully, what errors happened for each file, and statistics for added/skipped strings.

After Batch is completed it can't be reused.

Job batches Limitations

  • The service doesn't guarantee the correct processing of multiple batches for the same job in parallel. Adding files to a new batch should only be done after the previous batch has reached the "completed" status.

  • If the Job or Files are modified in the UI or through another integration, the service cannot guarantee that the Batch will be processed correctly.

  • The service retains data for 6 months before permanently deleting it.

Create batch

Creates a new batch for the given Job. If authorize is set to true, then Job authorize will be triggered on the batch execute step. When the batch is created, it has the status: NEW.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

A unique identifier for a project.

Request Body schema: application/json

Create Batch Request

authorize
boolean

if the set is true then the job will be authorized when uploaded and attach processes completed for all files in the batch.

translationJobUid
string

The UID of the previously created translation job.

Responses

Request samples

Content type
application/json
{
  • "authorize": true,
  • "translationJobUid": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List batches

List existing batches for the project, filtered by the given criteria.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

query Parameters
translationJobUid
string <uid>

A unique identifier for a translationJob.

status
string (BatchStatus)
Enum: "DRAFT" "ADDING_FILES" "EXECUTING" "COMPLETED"

The status of the Batch

sortBy
string
Default: "createdDate"
Enum: "createdDate" "status"

The field to sort by

orderBy
string
Default: "desc"
Enum: "asc" "desc"

Sorting direction

offset
integer
Default: 0

Standard Smartling limit and offset to paginate through results. 0 if not specified.

limit
integer [ 1 .. 100 ]
Default: 20

Standard Smartling limit and offset to paginate through results. 20 batches are returned by default if not specified.

Responses

Request samples

curl -X GET \
'https://api.smartling.com/job-batches-api/v1/projects/$smartlingProjectId/batches?translationJobUid={translationJobUid}&status={status}&sortBy=createdDate&orderBy=desc&offset=0&limit=20' \
-H "Authorization: Bearer $smartlingToken"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get batch status

Returns batch status with detailed statuses of all batch items and their locales.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

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

batchUid
required
string <uid>

A unique identifier for a batch.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Execute batch

Triggers asynchronous execution of a batch.

In the execution flow, the batch waits until upload and attach processes are completed successfully (or failed for any reason). When all of these asynchronous processes are completed, job authorize is triggered if it was requested, and the batch becomes a status of COMPLETED.

Batch execution is allowed only if the batch is in ADDING_FILES status.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

A unique identifier for a project.

batchUid
required
string <uid>

A unique identifier for a batch.

Request Body schema: application/json
action
string
Value: "execute"
Array of objects (LocaleWorkflow)

Responses

Request samples

Content type
application/json
{
  • "action": "execute",
  • "localeWorkflows": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add file to a batch

This endpoint is actually a proxy for Upload File in the Files API, and it works with these two differences:

  1. It additionally gets batchUid as a path parameter.
  2. It doesn't relay localeIdsToAuthorize to Files Api, therefore the file stays unauthorized. Instead, localeIdsToAuthorize are saved just for this batch session and are used when a file is being attached to a job.

When the first file is added to the new batch, it becomes an ADDING_FILES status. Adds original source content to a Job batch in Smartling.

The curl example provided will upload your Java properties file directly to a Smartling project, identified by the projectId, and attaches it to a Job linked to batchUid. The response is returned right after the content of a file is accepted by the Files API. After that, the Batch service controls whether the file upload finished. Content is parsed, all strings are ingested, and the file is then attached to the Job which is linked to the batch for locales, described in localeIdsToAuthorize.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

A unique identifier for a project.

batchUid
required
string <uid>

A unique identifier for a batch.

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

A value that uniquely identifies the uploaded file. This ID can be used to request the file back. We recommend that you use file path and file name, similar to how version control systems identify the file.

Example: /myproject/i18n/ui.properties

fileType
required
string (FileType)
Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"

A unique identifier for the file type.

authorize
boolean
Default: false

Ignored Endpoint accepts this field to be consistent with File Upload but it doesn't relay it to File Api

localeIdsToAuthorize[]
required
Array of strings

This value declares locales list which should be used when file is attached to a job.

Note: File will not be authorized for these locales once it is uploaded. Authorization is happened only when job is authorized.

smartling.namespace
string

This is only for accounts created after July 31st, 2015. Define a custom namespace for the file.

Note: While this parameter shares the format of other file directives, it will not work as an inline directive and must be specified in the API call.

smartling.file_charset
string

Specifies a custom charset for text-format files. The value should be the name of the character set. See a full list of supported character sets here.

If this directive is not used, Smartling will use the Content-Type request header to determine if the content is encoded with UTF-16, UTF-16B or UTF-16LE. If there is no Content-Type header, Smartling will examine the file for UTF-16 characters. If none are detected, UTF-8 encoding will be used.

Note: Once this property has been set for a file, it cannot be changed. If you reupload the file, it will use the original charset, even if you change the directive. An error will be returned if this directive is used when uploading binary-format file types, such as Office or IDML files.

smartling.[command]
string

Provides custom parser configuration for supported file types. See Supported File Types for more details.

callbackUrl
string <url>

A GET request that creates a callback to a URL when a file is 100% published for a locale. The callback gives the fileUri and locale with the format http[/s]://your.url?locale=xx-XX&fileUri=your.file. If you upload the file again, without a callbackUrl, it will remove any previous callbackUrl for that file. The RequestBin (http://requestb.in) service is a convenient way to test callback. RequestBin generates a short-lived disposable URL that displays all posted requests.

If a callback fails, Smartling will make multiple attempts to reach the designated URL, however, we do not keep retrying a failed callback indefinitely. Try to make sure your callback URL is as stable as possible and be aware that callbacks are not a 100% reliable way of being notified that a file is published.

If the upload has begun but is taking more than a minute to complete, it responds with status 202.

Responses

Request samples

curl -X POST \
'https://api.smartling.com/jobs-batch-api/v1/projects/$smartlingProjectId/batches/{batchUid}/file' \
-H "Authorization: Bearer $smartlingToken" \
-F "file=@file.properties;type=text/plain" \
-F "fileUri=file.properties" \
-F "fileType=javaProperties" \
-F "localeIdsToAuthorize[]=fr-FR" \
-F "localeIdsToAuthorize[]=ru-RU"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add file to a batch asynchrounosly

This endpoint is actually a proxy for Upload File in the Files API, and it works with these two differences:

  1. It additionally gets batchUid as a path parameter.
  2. It doesn't relay localeIdsToAuthorize to Files Api, therefore the file stays unauthorized. Instead, localeIdsToAuthorize are saved just for this batch session and are used when a file is being attached to a job.

When the first file is added to the new batch, the batch changes to ADDING_FILES status. Adds original source content to a Job batch in Smartling.

The curl example provided will upload your Java properties file directly to a Smartling project, identified by the projectId, and attaches it to a Job linked to batchUid. The response is returned right after the content of a file is accepted by the Files API. After that, the Batch service controls whether the file upload finished. Content is parsed, all strings are ingested, and the file is then attached to the Job which is linked to the batch for locales, described in localeIdsToAuthorize. Endpoint returns response as soon as a file is uploaded to jobs batch server. File is uploaded to FILE API in separate thread.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

A unique identifier for a project.

batchUid
required
string <uid>

A unique identifier for a batch.

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

A value that uniquely identifies the uploaded file. This ID can be used to request the file back. We recommend that you use file path and file name, similar to how version control systems identify the file.

Example: /myproject/i18n/ui.properties

fileType
required
string (FileType)
Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"

A unique identifier for the file type.

authorize
boolean
Default: false

Ignored Endpoint accepts this field to be consistent with File Upload but it doesn't relay it to File Api

localeIdsToAuthorize[]
required
Array of strings

This value declares locales list which should be used when file is attached to a job.

Note: File will not be authorized for these locales once it is uploaded. Authorization happens only when a job is authorized.

smartling.namespace
string

This is only for accounts created after July 31st, 2015. Define a custom namespace for the file.

Note: While this parameter shares the format of other file directives, it will not work as an inline directive and must be specified in the API call.

smartling.file_charset
string

Specifies a custom charset for text-format files. The value should be the name of the character set. See a full list of supported character sets here.

If this directive is not used, Smartling will use the Content-Type request header to determine if the content is encoded with UTF-16, UTF-16B or UTF-16LE. If there is no Content-Type header, Smartling will examine the file for UTF-16 characters. If none are detected, UTF-8 encoding will be used.

Note: Once this property has been set for a file, it cannot be changed. If you reupload the file, it will use the original charset, even if you change the directive. An error will be returned if this directive is used when uploading binary-format file types, such as Office or IDML files.

smartling.[command]
string

Provides custom parser configuration for supported file types. See Supported File Types for more details.

callbackUrl
string <url>

A GET request that creates a callback to a URL when a file is 100% published for a locale. The callback gives the fileUri and locale with the format http[/s]://your.url?locale=xx-XX&fileUri=your.file. If you upload the file again, without a callbackUrl, it will remove any previous callbackUrl for that file. The RequestBin (http://requestb.in) service is a convenient way to test callback. RequestBin generates a short-lived disposable URL that displays all posted requests.

If a callback fails, Smartling will make multiple attempts to reach the designated URL, however, we do not keep retrying a failed callback indefinitely. Try to make sure your callback URL is as stable as possible and be aware that callbacks are not a 100% reliable way of being notified that a file is published.

If the upload has begun but is taking more than a minute to complete, it responds with status 202.

Responses

Request samples

curl -X POST \
'https://api.smartling.com/jobs-batch-api/v2/projects/$smartlingProjectId/batches/{batchUid}/file' \
-H "Authorization: Bearer $smartlingToken" \
-F "file=@file.properties;type=text/plain" \
-F "fileUri=file.properties" \
-F "fileType=javaProperties" \
-F "localeIdsToAuthorize[]=fr-FR" \
-F "localeIdsToAuthorize[]=ru-RU"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Job Batches V2

Job batches take care of asynchronous processes when uploading files and attaching them to jobs.

Generally, adding multiple files to a job is associated with polling - file is parsed asynchronously and can't be added to a job until it is completed. Adding file to a job is also asynchronous, and job can't be authorized until all background tasks completed.

This forces a third-party integration poll for every file after every step.

Batches hide these asynchronous processes from 3rd party integration - after it accepts the file from the Smartling User, it processes this file through all steps up to the Job authorization. As Job Batches Service utilizes internal Smartling events it gets more effective than just polling files and jobs.

From the Smartling user's perspective, the flow consists of the following simple steps:

  1. Create a Job (or uses existing one, which isn't currently processed with another Batch)

  2. Create a new Batch for this Job with the declared list of files to be uploaded into the Job

  3. Upload the files into the batch giving target locales list for each file

  4. You can cancel some of the declared files if there is no reason in uploading (no translatable content etc.)

  5. When all files are uploaded or canceled, "execute" is automatically triggered for the batch.

  6. Batch execution process waits until all asynchronous processes are complete and then, if requested, authorizes the Job for translation.

  7. You can check batch status and see if all files have been uploaded and attached successfully. You can also see if any errors occurred for each file upload and the statistics for ingested/excluded strings.

After Batch is completed it can't be reused.

Job batches Limitations

  • The service doesn't guarantee the correct processing of multiple batches for the same job in parallel. Adding files to a new batch should only be done after the previous batch has reached the "completed" status.

  • If the Job or Files are modified in the UI or through another integration, the service cannot guarantee that the Batch will be processed correctly.

  • The service retains data for 6 months before permanently deleting it.

Create batch

Creates a new batch for the given Job with a list of file names to be uploaded. File names can be added while files are uploading to the batch, but only before the batch will start executing. The batch is executed as soon as the last file in the initial list or added files are uploaded or cancelled

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

Unique identifier of the project within an account.

Request Body schema: application/json

Create Batch Request

authorize
required
boolean

if the set is true then the job will be authorized when uploaded and attach processes completed for all files in the batch.

translationJobUid
required
string

The UID of the previously created translation job.

fileUris
required
Array of strings

A list of File URI's to be uploaded later

Array of objects (LocaleWorkflow)

Responses

Request samples

Content type
application/json
{
  • "authorize": true,
  • "translationJobUid": "string",
  • "fileUris": [
    ],
  • "localeWorkflows": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List batches

List existing batches for the project, filtered by the given criteria.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

Unique identifier of the project within an account.

query Parameters
translationJobUid
string <uid>

A unique identifier for a translationJob.

status
string (BatchStatus)
Enum: "DRAFT" "ADDING_FILES" "EXECUTING" "COMPLETED"

The status of the Batch

sortBy
string
Default: "createdDate"
Enum: "createdDate" "status"

The field to sort by

orderBy
string
Default: "desc"
Enum: "asc" "desc"

Sorting direction

offset
integer
Default: 0

Standard Smartling limit and offset to paginate through results. 0 if not specified.

limit
integer [ 1 .. 100 ]
Default: 20

Standard Smartling limit and offset to paginate through results. 20 batches are returned by default if not specified.

Responses

Request samples

curl -X GET \
'https://api.smartling.com/job-batches-api/v2/projects/$smartlingProjectId/batches?translationJobUid={translationJobUid}&status={status}&sortBy=createdDate&orderBy=desc&offset=0&limit=20' \
-H "Authorization: Bearer $smartlingToken"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get batch status

Returns batch status with detailed statuses of all batch items and their locales.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

Unique identifier of the project within an account.

batchUid
required
string <uid>

A unique identifier for a batch.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Process batch action

Supports two actions now: REGISTER_FILE - adds given file uri to the initial file name list for uploading. Creates a new batchItem if the batch is in ADDING_FILES status. CANCEL_FILE - tells that file will not be uploaded Changes batchItem status to CANCELED and writes reason to "errors" column

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

Unique identifier of the project within an account.

batchUid
required
string <uid>

A unique identifier for a batch.

Request Body schema: application/json
action
required
string
Enum: "CANCEL_FILE" "REGISTER_FILE"
fileUri
required
string

fileUri to be cancelled or registred

reason
string

any text to describe the reason the file is canceled

Responses

Request samples

Content type
application/json
{
  • "action": "CANCEL_FILE",
  • "fileUri": "string",
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Upload file to a batch

This endpoint is actually a proxy for Upload File in the Files API, and it works with these two differences:

  1. It additionally gets batchUid as a path parameter.
  2. It doesn't relay localeIdsToAuthorize to Files Api, therefore the file stays unauthorized. Instead, localeIdsToAuthorize are saved just for this batch session and are used when a file is being attached to a job.

Upload is only possible if the file was declared in the Create Batch request or added with REGISTER_FILE action. When the first file is uploaded to the new batch, the batch status changes to ADDING_FILES. Adds original source content to a Job batch in Smartling.

The provided curl example will upload your Java properties file directly to a Smartling project, identified by the projectId, and attaches it to a Job linked to batchUid. The response is returned right after the content of a file is accepted by the Files API. After that, the Batch service controls whether the file upload finished. Content is parsed, all strings are ingested, and the file is then attached to the Job which is linked to the batch for locales, described in localeIdsToAuthorize.

Endpoint returns response as soon as a file is uploaded to job batches server. File is uploaded to FILE API asynchronously.

Common issues:

  • Each file must include the fileUri registered with the batch, upon upload. For example, if you have created a batch with the single file URI test1.xml and you attempt to upload this with the file URI test2.xml it will fail, and you will get an error. But you can always use REGISTER_FILE action.
  • File URI's must be unique per batch, even if you want to authorize it to two or more locales. For example, if you have file test1.xml that should be authorized for es and de, and you attempt to upload it twice (fileUri=test1.xml + localeIdsToAuthorize[]=es and fileUri=test1.xml + localeIdsToAuthorize[]=de), it will fail and you will get an error. The second upload will be rejected and file will be authorized only for es locale. You must always pass all desired locales with the registered fileUri (fileUri=test1.xml + localeIdsToAuthorize[]=es,de).
Authorizations:
BearerAuth
path Parameters
projectId
required
string <uid>

Unique identifier of the project within an account.

batchUid
required
string <uid>

A unique identifier for a batch.

Request Body schema: multipart/form-data
required
file
required
string <binary>

The file contents to upload.

fileUri
required
string

A value that uniquely identifies the uploaded file. This ID can be used to request the file back. We recommend that you use file path and file name, similar to how version control systems identify the file.

Example: /myproject/i18n/ui.properties

fileType
required
string (FileType)
Enum: "android" "ios" "gettext" "html" "java_properties" "xliff" "xml" "json" "docx" "pptx" "xlsx" "idml" "qt" "resx" "plain_text" "csv" "srt" "stringsdict" "xls" "doc" "ppt" "pres" "madcap" "yaml" "markdown"

A unique identifier for the file type.

authorize
boolean
Default: false

Ignored Endpoint accepts this field to be consistent with File Upload but it doesn't relay it to File Api

localeIdsToAuthorize[]
required
Array of strings

This value declares locales list which should be used when file is attached to a job.

Note: File will not be authorized for these locales once it is uploaded. Authorization happens only when a job is authorized.

smartling.namespace
string

This is only for accounts created after July 31st, 2015. Define a custom namespace for the file.

Note: While this parameter shares the format of other file directives, it will not work as an inline directive and must be specified in the API call.

smartling.file_charset
string

Specifies a custom charset for text-format files. The value should be the name of the character set. See a full list of supported character sets here.

If this directive is not used, Smartling will use the Content-Type request header to determine if the content is encoded with UTF-16, UTF-16B or UTF-16LE. If there is no Content-Type header, Smartling will examine the file for UTF-16 characters. If none are detected, UTF-8 encoding will be used.

Note: Once this property has been set for a file, it cannot be changed. If you reupload the file, it will use the original charset, even if you change the directive. An error will be returned if this directive is used when uploading binary-format file types, such as Office or IDML files.

smartling.[command]
string

Provides custom parser configuration for supported file types. See Supported File Types for more details.

callbackUrl
string <url>

A GET request that creates a callback to a URL when a file is 100% published for a locale. The callback gives the fileUri and locale with the format http[/s]://your.url?locale=xx-XX&fileUri=your.file. If you upload the file again, without a callbackUrl, it will remove any previous callbackUrl for that file. The RequestBin (http://requestb.in) service is a convenient way to test callback. RequestBin generates a short-lived disposable URL that displays all posted requests.

If a callback fails, Smartling will make multiple attempts to reach the designated URL, however, we do not keep retrying a failed callback indefinitely. Try to make sure your callback URL is as stable as possible and be aware that callbacks are not a 100% reliable way of being notified that a file is published.

If the upload has begun but is taking more than a minute to complete, it responds with status 202.

Responses

Request samples

curl -X POST \
'https://api.smartling.com/job-batches-api/v2/projects/$smartlingProjectId/batches/{batchUid}/file' \
-H "Authorization: Bearer $smartlingToken" \
-F "file=@file.properties;type=text/plain" \
-F "fileUri=file.properties" \
-F "fileType=javaProperties" \
-F "localeIdsToAuthorize[]=fr-FR" \
-F "localeIdsToAuthorize[]=ru-RU"

Response samples

Content type
application/json
{
  • "response": {
    }
}

Context

Visual context helps Translators make linguistic, layout, and spacing decisions based on where strings appear in your mobile or desktop application. The Context API supports uploading various forms of context (images and HTML), and associate the context with content in Smartling.

Upload new context

Visual Context provides a visual representation of the source content to Translators and Editors as they are performing their work, and is a very effective way to ensure high-quality translations. Visual Context is displayed in the Smartling CAT Tool - the environment in which translations are performed.

The following context types are supported via the Smartling API:

  • HTML: HTML files or files with content type text/html
  • IMAGE: Image files
  • VIDEO:
    • Video file
    • Link to video, such as:
      • YouTube link
      • Vimeo link
      • Direct link to an .mp4 file

Context type is not specified directly, but rather, inferred via analyzing the request body.

This endpoint accepts multipart/form-data request body.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

Request Body schema: multipart/form-data
name
string

Context name. Overwrites the content's file name if specified. Parameter meanings for different context types:

Context Type Meaning
HTML Context URL or file name. If a valid URL is used, all relative links to resources within the context file will be resolved based on this URL. If the file name is used, the context file should have the <base /> tag specified with the valid URL to resolve all relative links to resources. In all other cases, links to resources will not be resolved and the context might not show correctly. Defaults to context file name if not specified.
IMAGE Image file name.
VIDEO Link to a publicly available video in case content field is empty. The parameter is required for this particular case. Otherwise, video file name.
content
string <binary>

The context file to upload.

It should be one of the supported content types(user should insert content type instead of the *. E.g. image/jpeg.):

  • image/*
  • text/html
  • video/*

Maximum file upload size is:

  • 20MB – for HTML and image files.
  • 500MB – for video files.

Note: Exclude this parameter if you choose to upload a video context pointing to external MP4 file, youtube or vimeo.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "content=@context1.png;type=image/png" -F "name=context1.png" "https://api.smartling.com/context-api/v2/projects/$smartlingProjectId/contexts"

Response samples

Content type
application/json
{
  • "response": {
    }
}

List contexts for the project

Returns a paginated list of metadata for all contexts in a project.

Response is limited to 100 items, to retrieve all items the request should be repeated with offset parameter specified.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

query Parameters
nameFilter
string

Context name (or url) filter.

offset
string

If your original request returns an offset value, the set of results is incomplete. Run the request again, with the given offset value to see more results. When offset is null, there are no more results to return.

type
string
Enum: "IMAGE" "HTML" "VIDEO"

Context type filter.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get context info

Retrieves basic information about the context.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

contextUid
required
string <uuid>

Unique identifier of a context

Responses

Response samples

Content type
application/json
{}

Delete the context

Deletes the context metadata and the content. All linked context resources (e.g. CSS, images, and fonts) will also eventually be cleaned up if no other context has them linked. As well, bindings of this context to strings are removed, and strings are marked as having no context.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

contextUid
required
string <uuid>

Unique identifier of a context

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete contexts

Initiates an asynchronous process to delete the contexts. All linked context resources (e.g. CSS, images, and fonts) will also eventually be cleaned up if no other context has them linked. As well, bindings of these contexts to strings are removed, and strings are marked as having no context.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

Request Body schema: application/json
contextUids
Array of strings

List of contexts UIDs to delete. List size is limited to 100 items.

Responses

Request samples

Content type
application/json
{
  • "contextUids": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Download context file content

Returns the context content:

Context Type Content
HTML HTML document enriched with data-sl-anchor attributes for most of the elements, also known as binding anchors.
IMAGE Binary image data. Response is accompanied with appropriate Content-Type header.
VIDEO Empty response.
Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

contextUid
required
string <uuid>

Unique identifier of a context

Responses

Response samples

Content type
No sample

Run automatic context matching

Automatically matches context against strings in the project and creates corresponding bindings. Optionally, you can restrict matching to only a set of strings that you specify to ensure that no unwanted bindings are created.

The following endpoint does not support video contexts pointing to Youtube or Vimeo videos.

Optical Character Recognition (OCR) is used for IMAGE and VIDEO contexts, while HTML context uses an approximate string matching algorithm.

This is a convenient method provided to save time and complexity in your integration. Although that our OCR functionality is advanced, it cannot match 100% of strings. If you need complete context coverage, use either Create string to context bindings endpoint to bind strings manually or check your image contexts in the Smartling Dashboard after running this request to fill in any blanks. Note that OCR quality may be lower if you are using an unusual or script-like font.

Applying this operation to a video context, keep in mind the original context will be removed and image contexts will be created instead for each frame that has one matched string at least. A string can't be bound to multiple frames simultaneously.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

contextUid
required
string <uuid>

Unique identifier of a context

Request Body schema: application/json

To ensure context is mapped to the correct string, stringHashcodes, contentFileUri or translationJobUids must be specified. If none of stringHashcodes, contentFileUri, translationJobUids are specified, all strings from the project will be included in the match.
If overrideContextOlderThanDays is not specified, strings with context will not be bound to this context.

contentFileUri
string

File URI containing strings to perform matching with the context:
Example: "contentFileUri": "example.properties"
Can't be used along with the stringHashcodes or translationJobUids parameter.

stringHashcodes
Array of strings <hash> [ items <hash > ]

An array of string hashcodes to perform matching with the context:
Example: "stringHashcodes": ["hashcode1", "hashcode2"]
Can't be used along with the contentFileUri or translationJobUids parameter.

translationJobUids
Array of strings <hash> [ items <hash > ]

A translation job UID to perform matching with the context. Only one UID can be specified:
Example: "translationJobUids": ["translationJobUid"]
Can't be used along with the contentFileUri or stringHashcodes parameter.

overrideContextOlderThanDays
integer >= 1

Specifies whether to override context for strings that were already bound to other context, and that context is at least as "overrideContextOlderThanDays" old.

videoMatchingMode
string
Enum: "SUBTITLES" "OCR_WITH_SPLITTING" "OCR"

Specifies the behavior of string matching for video contexts.

videoMatchingMode Description
SUBTITLES In this mode you should provide the property contentFileUri that points to the subtitles content file. Strings will be bound by the subtitle's timestamps.
OCR_WITH_SPLITTING Detects key frames and checks each frame for text using OCR. If string matches, an image context is created for that frame. Frames without matches and the original video are deleted.
OCR Detects key frames and checks each frame for text using OCR. If string matches, we bind the string to the original video using the key frame's timestamp and text coordinates.

Responses

Request samples

Content type
application/json
{
  • "contentFileUri": "string",
  • "stringHashcodes": [
    ],
  • "translationJobUids": [
    ],
  • "overrideContextOlderThanDays": 1,
  • "videoMatchingMode": "SUBTITLES"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Upload new context and run automatic context matching

Combines two endpoints:

The following context types are supported via the Smartling API:

  • HTML: HTML files or files with content type text/html
  • IMAGE: Image files
  • VIDEO:
    • Video file
    • Link to video, such as:
      • YouTube link
      • Vimeo link
      • Direct link to an .mp4 file

Strings to match are retrieved from the project specified by the projectId and can be filtered further by the optional matchParams parameter.

If the uploaded file doesn't match any string, the context may not be created.

Example of the raw request accepted by this API:

Content-Type: multipart/form-data; boundary
----------------------------293641908835402749402839
Content-Disposition: form-data; name="content"; filename="example.html"
Content-Type: text/html
<html>
  <body>
    <div> bla</div>
  </body>
</html>
----------------------------293641908835402749402839
Content-Disposition: form-data; name="name"
https://your.domain.com/path/example.html
----------------------------293641908835402749402839
Content-Disposition: form-data; name="matchParams"
Content-Type: application/json
{
  "contentFileUri":"example.properties",
  "stringHashcodes": [],
  "overrideContextOlderThanDays": 1
}
Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

Request Body schema: multipart/form-data
required
name
string

Context name. Will overwrites the content's file name if specified. Parameter meanings for different context types:

Context Type Meaning
HTML Context URL or file name. If a valid URL is used, all relative links to resources within the context file will be resolved based on this URL. If the file name is used, the context file should have the <base /> tag specified with the valid URL to resolve all relative links to resources. In all other cases, links to resources will not be resolved and the context might not show correctly. Defaults to context file name if not specified.
IMAGE Image file name.
VIDEO Link to a publicly available video in case content field is empty. The parameter is required for this particular case. Otherwise, video file name.
object (MatchParams)

Uncollapse this block to get the detailed description of matchParams.

If none of stringHashcodes, contentFileUri, translationJobUids are specified, all strings from the project will be included in the match.
If overrideContextOlderThanDays is not specified, strings with context will not be bound to this context.

content
required
string <binary>

The context file to upload.

It should be one of the supported content types(user should insert content type instead of the *. E.g. image/jpeg.):

  • image/*
  • text/html
  • video/*

Maximum file upload size is:

  • 20MB – for HTML and image files.
  • 500MB – for video files.

Note: Exclude this parameter if you choose to upload a video context pointing to external MP4 file, youtube or vimeo.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Retrieve asynchronous match results Deprecated

Check the status of the match request and get results once the match is completed. When the match has been completed, any newly created bindings are also returned in the response. This endpoint is deprecated and will be deleted. We recommend to use Retrieve asynchronous process results endpoint

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

matchId
required
string <uuid>

Identifier of the match request obtained when running asynchronous match request.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Retrieve asynchronous process results

Check the status of the asynchronous process and get the results once the process is completed

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

processUid
required
string <uuid>

Identifier of the asynchronous process obtained when running asynchronous request.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create string to context bindings

Link context files with the strings they contain.

The binding tells Smartling to show Translators which context images for which strings.

A basic bindings request should contain an object with a bindings JSON array, with at least one element (binding) featuring contextUid and stringHashcode properties:

{
  "bindings": [
    {
       "contextUid": "25137b65-e075-4341-8362-14b1a3e558f5",
       "stringHashcode": "bd603147d945h3ec74d6874422ebe4e0"
    }
  ]
}

For IMAGE context, each binding may have additional coordinates data that specifies a rectangular area where the string is located in the image. If not specified, binding will still be created with coordinates [0,0,0,0]:

{
  "bindings": [
    {
       "contextUid": "25137b65-e075-4341-8362-14b1a3e558f5",
       "stringHashcode": "bd603147d945h3ec74d6874422ebe4e0",
       "coordinates": {
          "top": 50,
          "left": 50,
          "width": 400,
          "height": 400
       }
    }
  ]
}

For HTML context, each binding may have the selector element with anchors array, specifying the enclosing the string HTML elements with the corresponding value of the data-sl-anchor attribute. Each anchor value can have up to 20 characters and consist of the following characters: 0-9 (more preferably), A-Z, a-z, .-_. If not specified, binding will still be created with the empty anchors array, effectively making it not anchored to a particular element and thus invisible in CAT Tool:

{
  "bindings": [
    {
       "contextUid": "25137b65-e075-4341-8362-14b1a3e558f5",
       "stringHashcode": "bd603147d945h3ec74d6874422ebe4e0",
       "selector": {
          "anchors": ["11", "22", "aa-33"]
       }
    }
  ]
}

For VIDEO context, each binding has the timecode data, specifying the start and end time of the string appearance in the video:

{
  "bindings": [
    {
        "contextUid": "25137b65-e075-4341-8362-14b1a3e558f5",
        "stringHashcode": "bd603147d945h3ec74d6874422ebe4e0",
        "timecode": {
           "startTime": 1203,
           "endTime": 1450
        }
    }
  ]
}
Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

Request Body schema: application/json
required

String-to-context bindings

Array of objects

List of strings-to-context bindings. List size is limited to 150 items.

Responses

Request samples

Content type
application/json
{
  • "bindings": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List string to context bindings

Returns a paginated list of bindings according to specified parameters.

Response is limited to 5000 items, to retrieve all items the request should be repeated with offset parameter specified.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

query Parameters
offset
string

If your original request returns an offset value, the set of results is incomplete. Run the request again, with the given offset value to see more results. When offset is null, there are no more results to return.

Request Body schema: application/json
required

Search bindings parameters. Only on of them should be specified.

stringHashcodes
Array of strings

List of the hashcodes for the strings to get bindings for.

contentFileUri
string

Content file name to get bindings for.

contextUid
string <uuid>

ContextUID to get bindings for.

bindingUids
Array of strings

List of unique binding identifiers.

Responses

Request samples

Content type
application/json
{
  • "stringHashcodes": [
    ],
  • "contentFileUri": "string",
  • "contextUid": "1d201c18-e0b1-4701-b187-3cd8db0c5c9d",
  • "bindingUids": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete string to context bindings

Delete bindings for specified parameters.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>

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

Request Body schema: application/json
required

Bindings delete parameter. Only on of them should be specified.

stringHashcodes
Array of strings

List of the hashcodes for the strings to delete bindings for.

contentFileUri
string

Content file name to delete bindings for.

contextUid
string <uuid>

ContextUID to delete bindings for.

bindingUids
Array of strings

Unique binding identifier to delete.

Responses

Request samples

Content type
application/json
{
  • "stringHashcodes": [
    ],
  • "contentFileUri": "string",
  • "contextUid": "1d201c18-e0b1-4701-b187-3cd8db0c5c9d",
  • "bindingUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Issues

The Issues feature is a way for users who are working on a translation workflow to communicate with other users about source content and translations. For example, a Translator might create an issue to ask a question about terminology in a particular string.

By using Issues, you can record any communication about a string, and this can be seen by anyone working on it. Issues streamline the translation workflow. Translators get answers to their questions about the original content so they can translate it quickly and correctly. Translation resources can review and provide feedback about translations collaboratively.

The Issues API provides methods for creating issues, changing the state of an issue, commenting on an issue, requesting detailed information, as well as creating reports on issues and comments.

Get issue states

This request returns all current allowed states. Currently, the only allowed issue states are OPENED and RESOLVED. However, in the future, Smartling may introduce additional states.

Authorizations:
BearerAuth

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/dictionary/issue-states

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get issue severity levels

Returns a list of issue severity levels.

Authorizations:
BearerAuth

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/dictionary/issue-severity-levels

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get account issue types

This request returns all current issue types for a specific account. Smartling may occasionally add or change the list of allowed issue types.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/issue-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create issue

Creates a new issue for a string. Issue text is treated as plain text. Smartling will save the text as provided, and will not attempt to render this text with any special formatting in its UIs. It will not be rendered as HTML or markdown. Users of the Issues API should be aware, and escape the text as needed before attempting to render it. Maximum length is 4000 characters.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required

New issue for a string

issueText
required
string

Free text field explaining an issue.

issueTypeCode
required
string
Enum: "SOURCE" "TRANSLATION"

Identifies the issue type. issueTypeCode is either SOURCE or TRANSLATION. Each have their own set of issueSubType values.

issueSubTypeCode
required
string
Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"

For issueTypeCode=SOURCE - CLARIFICATION | MISSPELLING, For issueTypeCode=TRANSLATION - POOR_TRANSLATION | DOES_NOT_FIT_SPACE | PLACEHOLDER_ISSUE | REVIEW_TRANSLATION | MT_ERROR

required
object
assigneeUserUid
string

User identifier who is assigned to issue

issueSeverityLevelCode
string
Enum: "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "issueText": "This translation is incorrect. Please fix.",
  • "issueTypeCode": "SOURCE",
  • "issueSubTypeCode": "CLARIFICATION",
  • "string": {
    },
  • "assigneeUserUid": "7c9ff09e71b3",
  • "issueSeverityLevelCode": "LOW"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Edit issue

Replaces the text of an issue with new text.

Note: Only the author of the issue can perform this action. The issueTextModifiedDate property of an issue object shows when it was last updated.

Issue text is treated as plain text. Smartling will save the text as provided and will not attempt to render this text with any special formatting in its UIs; it will not be rendered as HTML or markdown. When using the Issues API, you should escape the text as needed before attempting to render it. Maximum length is 4000 characters.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
issueText
required
string

Free text field explaining an issue.

Responses

Request samples

Content type
application/json
{
  • "issueText": "Edited issue text."
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Open or close issue

The state of an issue. Accepted values are OPENED or RESOLVED.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
issueStateCode
required
string
Enum: "OPENED" "RESOLVED"

The state of the issue. Accepted values are OPENED or RESOLVED.

Responses

Request samples

Content type
application/json
{
  • "issueStateCode": "OPENED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get issue details

Returns detailed information of a single issue.

Note: The resolvedByUserUid and reportedByUserUid values are not currently usable for identifying the users who created or resolved issues. In the future, a People API will be exposed for looking up user details.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/projects/$smartlingProjectId/issues/$issueUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update issue attribute (answered)

Update issue attribute (answered). "Answered" is a boolean; (true/false).

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
answered
required
boolean

Issue flag "answered"

Responses

Request samples

Content type
application/json
{
  • "answered": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update issue attribute (assigneeUserUid)

Update issue attribute (assigneeUserUid). "assigneeUserUid" is a string.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
assigneeUserUid
required
string

User identifier who is assigned to issue

Responses

Request samples

Content type
application/json
{
  • "assigneeUserUid": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete issue attribute (assigneeUserUid)

Delete issue attribute (assigneeUserUid). "assigneeUserUid" is a string.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update issue attribute (severity level)

Update issue attribute (severity level) (LOW / MEDIUM / HIGH)

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
issueSeverityLevelCode
required
string
Enum: "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "issueSeverityLevelCode": "LOW"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update issue attribute (issue type)

Update issue attribute (issue type) (SOURCE / TRANSLATION)

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

Request Body schema: application/json
required
issueTypeCode
required
string
Enum: "SOURCE" "TRANSLATION"

Identifies the issue type. issueTypeCode is either SOURCE or TRANSLATION. Each have their own set of issueSubType values.

issueSubTypeCode
required
string
Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"

For issueTypeCode=SOURCE - CLARIFICATION | MISSPELLING, For issueTypeCode=TRANSLATION - POOR_TRANSLATION | DOES_NOT_FIT_SPACE | PLACEHOLDER_ISSUE | REVIEW_TRANSLATION | MT_ERROR

localeId
string

An identifying code for a target language in Smartling.

Responses

Request samples

Content type
application/json
{
  • "issueTypeCode": "SOURCE",
  • "issueSubTypeCode": "CLARIFICATION",
  • "localeId": "ru-RU"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get comments

Returns all comments on an issue.

Note: The createdByUserUid value is not currently usable for identifying the users who created comments. In the future, a People API will be exposed for looking up user details.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/projects/$smartlingProjectId/issues/$issueUid/comments

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create comment

Create a comment for an issue. Comment text is treated as plain text. Smartling will save the text as provided, and will not attempt to render this text with any special formatting in its UIs. It will not be rendered as HTML or markdown. If you're using the Issues API, escape the text as needed before attempting to render it. Maximum length is 4000 characters.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

Request Body schema: application/json
required
commentText
required
string

Text of the comment you want to make.

Responses

Request samples

Content type
application/json
{
  • "commentText": "Hey, are you sure this is what you want?"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Edit comment text

Replaces the text of an issue with new text.

Note: Only the author of an issue can perform this action. The commentTextModifiedDate property of an issue object shows when it was last updated.

Comment text is treated as plain text. Smartling will save the text as provided and will not attempt to render this text with any special formatting in its UIs. It will not be rendered as HTML or markdown. If you're using the Issues API, escape the text as needed before attempting to render it. Maximum length is 4000 characters.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

issueCommentUid
required
string

Unique identifier of corresponding issue commment.

Request Body schema: application/json
required
commentText
required
string

Text of the comment you want to make.

Responses

Request samples

Content type
application/json
{
  • "commentText": "Hey, are you sure this is what you want?"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get comment details

Returns detailed information on a single issue comment.

Note: The createdByUserUid value is not currently usable for identifying the users who created comments. In the future, a People API will be exposed for looking up user details.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

issueCommentUid
required
string

Unique identifier of corresponding issue comment.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/projects/$smartlingProjectId/issues/$issueUid/comments/$issueCommentUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete comment

Delete comment.

Note: The author of the issue comment, account owner and project manager can perform this action.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue.

issueCommentUid
required
string

Unique identifier of corresponding issue commment.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/projects/$smartlingProjectId/issues/$issueUid/comments/$issueCommentUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Find project issues

Returns a list of issues matching specified filter options. You can filter based on the date issues were created, target languages, strings, issue types, states, issue numbers, job unique ids, issues not associated with strings in a job, issue assignee, and which user opened the issue. Unless otherwise specified, the request will return a maximum of 30 results. All parameters are optional.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
createdDateBefore
string

Filter issues which were created before this date.

createdDateAfter
string

Filter issues which were created after this date.

resolvedDateBefore
string

Filter issues which were resolved before this date.

resolvedDateAfter
string

Filter issues which were resolved after this date.

answered
boolean

Issue flag "answered".

reopened
boolean

Issue flag "reopened".

issueSeverityLevelCodes
Array of strings
Items Enum: "LOW" "MEDIUM" "HIGH"
issueStateCodes
Array of strings
Items Enum: "OPENED" "RESOLVED"
issueSubTypeCodes
Array of strings
Items Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"
issueTypeCodes
Array of strings
Items Enum: "SOURCE" "TRANSLATION"
issueWatchingStateCode
string
Enum: "WATCHING" "NOT_WATCHING"

Issue Watching State identifier.

reportedByUserUid
string

User identifier who created the issue.

assigneeUserUid
string

User identifier who is assigned to issue.

hasComments
boolean

Does the issue have any comments? True for issues that have comments. False for issues that have only the original description but no comments.

issueNumbers
Array of integers <= 1000 items
object
object
limit
integer >= 0
Default: 30

limit

offset
integer >= 0
Default: 0

offset

object

Sort result by fields

Responses

Request samples

Content type
application/json
{
  • "createdDateBefore": "2015-12-23T18:14:09Z",
  • "createdDateAfter": "2015-11-10T15:14:09Z",
  • "resolvedDateBefore": "2015-12-23T18:14:09Z",
  • "resolvedDateAfter": "2015-11-10T15:14:09Z",
  • "answered": false,
  • "reopened": true,
  • "issueSeverityLevelCodes": [
    ],
  • "issueStateCodes": [
    ],
  • "issueSubTypeCodes": [
    ],
  • "issueTypeCodes": [
    ],
  • "issueWatchingStateCode": "WATCHING",
  • "reportedByUserUid": "661801f19693",
  • "assigneeUserUid": "661801f19693",
  • "hasComments": true,
  • "issueNumbers": [
    ],
  • "jobFilter": {
    },
  • "stringFilter": {
    },
  • "limit": 30,
  • "offset": 0,
  • "sortBy": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Count project issues

Returns a count of issues matching specified filter options. You can filter based on the date issues were created, strings, target languages, issue types, states, issue numbers, job unique ids, issues not associated with strings in a job, issue assignee, and which user opened the issue. All parameters are optional.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
createdDateBefore
string

Filter issues which created before this date

createdDateAfter
string

Filter issues which created after this date

resolvedDateBefore
string

Filter issues which resolved before this date

resolvedDateAfter
string

Filter issues which resolved after this date

answered
boolean

Issue flag "answered"

reopened
boolean

Issue flag "reopened".

issueSeverityLevelCodes
Array of strings
Items Enum: "LOW" "MEDIUM" "HIGH"
issueStateCodes
Array of strings
Items Enum: "OPENED" "RESOLVED"
issueSubTypeCodes
Array of strings
Items Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"
issueTypeCodes
Array of strings
Items Enum: "SOURCE" "TRANSLATION"
issueWatchingStateCode
string
Enum: "WATCHING" "NOT_WATCHING"

Issue Watching State identifier.

reportedByUserUid
string

User identifier who created issue

assigneeUserUid
string

User identifier who is assigned to issue

hasComments
boolean

Does the issue have any comments? True for issues that have comments. False for issues that have only the original description but no comments.

issueNumbers
Array of integers <= 1000 items
object
object

Responses

Request samples

Content type
application/json
{
  • "createdDateBefore": "string",
  • "createdDateAfter": "2015-11-10T15:14:09Z",
  • "resolvedDateBefore": "2015-12-23T18:14:09Z",
  • "resolvedDateAfter": "2015-11-10T15:14:09Z",
  • "answered": true,
  • "reopened": true,
  • "issueSeverityLevelCodes": [
    ],
  • "issueStateCodes": [
    ],
  • "issueSubTypeCodes": [
    ],
  • "issueTypeCodes": [
    ],
  • "issueWatchingStateCode": "WATCHING",
  • "reportedByUserUid": "661801f19693",
  • "assigneeUserUid": "661801f19693",
  • "hasComments": true,
  • "issueNumbers": [
    ],
  • "jobFilter": {
    },
  • "stringFilter": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Find account issues

Returns a list of issues matching specified filter options. You can filter based on the date issues were created, target languages, strings, issue types, states, issue numbers, project ids, job unique ids, issues not associated with strings in a job, issue assignee, and which user opened the issue. Unless otherwise specified, the request will return a maximum of 30 results. All parameters are optional.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
projectIds
Array of strings

UOptional array of unique project identifiers. This can be found in the Smartling Dashboard under Account Settings > API.

createdDateBefore
string

Filter issues which were created before this date.

createdDateAfter
string

Filter issues which were created after this date.

resolvedDateBefore
string

Filter issues which were resolved before this date.

resolvedDateAfter
string

Filter issues which were resolved after this date.

answered
boolean

Issue flag "answered".

reopened
boolean

Issue flag "reopened".

issueSeverityLevelCodes
Array of strings
Items Enum: "LOW" "MEDIUM" "HIGH"
issueStateCodes
Array of strings
Items Enum: "OPENED" "RESOLVED"
issueSubTypeCodes
Array of strings
Items Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"
issueTypeCodes
Array of strings
Items Enum: "SOURCE" "TRANSLATION"
issueWatchingStateCode
string
Enum: "WATCHING" "NOT_WATCHING"

Issue Watching State identifier.

reportedByUserUid
string

User identifier who created the issue.

assigneeUserUid
string

User identifier who is assigned to issue.

hasComments
boolean

Does the issue have any comments? True for issues that have comments. False for issues that have only the original description but no comments.

issueNumbers
Array of integers <= 1000 items
object
object
limit
integer >= 0
Default: 30

limit

offset
integer >= 0
Default: 0

offset

object

Sort result by fields

Responses

Request samples

Content type
application/json
{
  • "projectIds": [
    ],
  • "createdDateBefore": "2015-12-23T18:14:09Z",
  • "createdDateAfter": "2015-11-10T15:14:09Z",
  • "resolvedDateBefore": "2015-12-23T18:14:09Z",
  • "resolvedDateAfter": "2015-11-10T15:14:09Z",
  • "answered": false,
  • "reopened": true,
  • "issueSeverityLevelCodes": [
    ],
  • "issueStateCodes": [
    ],
  • "issueSubTypeCodes": [
    ],
  • "issueTypeCodes": [
    ],
  • "issueWatchingStateCode": "WATCHING",
  • "reportedByUserUid": "661801f19693",
  • "assigneeUserUid": "661801f19693",
  • "hasComments": true,
  • "issueNumbers": [
    ],
  • "jobFilter": {
    },
  • "stringFilter": {
    },
  • "limit": 30,
  • "offset": 0,
  • "sortBy": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Count account issues

Returns a count of issues matching specified filter options. You can filter based on the date issues were created, target languages, strings, issue types, states, issue numbers, project ids, job unique ids, issues not associated with strings in a job, issue assignee, and which user opened the issue. All parameters are optional.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
projectIds
Array of strings

UOptional array of unique project identifiers. This can be found in the Smartling Dashboard under Account Settings > API.

createdDateBefore
string

Filter issues which created before this date

createdDateAfter
string

Filter issues which created after this date

resolvedDateBefore
string

Filter issues which resolved before this date

resolvedDateAfter
string

Filter issues which resolved after this date

answered
boolean

Issue flag "answered"

reopened
boolean

Issue flag "reopened".

issueSeverityLevelCodes
Array of strings
Items Enum: "LOW" "MEDIUM" "HIGH"
issueStateCodes
Array of strings
Items Enum: "OPENED" "RESOLVED"
issueSubTypeCodes
Array of strings
Items Enum: "CLARIFICATION" "MISSPELLING" "POOR_TRANSLATION" "DOES_NOT_FIT_SPACE" "PLACEHOLDER_ISSUE" "REVIEW_TRANSLATION" "CUSTOM" "MT_ERROR"
issueTypeCodes
Array of strings
Items Enum: "SOURCE" "TRANSLATION"
issueWatchingStateCode
string
Enum: "WATCHING" "NOT_WATCHING"

Issue Watching State identifier.

reportedByUserUid
string

User identifier who created issue

assigneeUserUid
string

User identifier who is assigned to issue

hasComments
boolean

Does the issue have any comments? True for issues that have comments. False for issues that have only the original description but no comments.

issueNumbers
Array of integers <= 1000 items
object
object

Responses

Request samples

Content type
application/json
{
  • "projectIds": [
    ],
  • "createdDateBefore": "string",
  • "createdDateAfter": "2015-11-10T15:14:09Z",
  • "resolvedDateBefore": "2015-12-23T18:14:09Z",
  • "resolvedDateAfter": "2015-11-10T15:14:09Z",
  • "answered": true,
  • "reopened": true,
  • "issueSeverityLevelCodes": [
    ],
  • "issueStateCodes": [
    ],
  • "issueSubTypeCodes": [
    ],
  • "issueTypeCodes": [
    ],
  • "issueWatchingStateCode": "WATCHING",
  • "reportedByUserUid": "661801f19693",
  • "assigneeUserUid": "661801f19693",
  • "hasComments": true,
  • "issueNumbers": [
    ],
  • "jobFilter": {
    },
  • "stringFilter": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List account watchers

Get a list of all issue watchers for the entire account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

query Parameters
email
string

Watcher email

limit
number
Default: 100

limit

offset
number
Default: 0

offset

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/watchers

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create watcher

Create a new watcher.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
email
required
string

watcher email

enabled
boolean

Should send email notification to this email.

name
required
string

watcher name

Responses

Request samples

Content type
application/json
{
  • "email": "my@maul.com",
  • "enabled": true,
  • "name": "Alonso"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update watcher

Update the attributes of a watcher.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

watcherUid
required
string

Unique identifier of the corresponding watcher.

Request Body schema: application/json
required
email
required
string

watcher email

enabled
boolean

Should send email notification to this email.

name
required
string

watcher name

Responses

Request samples

Content type
application/json
{
  • "email": "my@maul.com",
  • "enabled": true,
  • "name": "Alonso"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Link watcher to issue

Associate or assign the watcher to an issue. The watcher will then begin receiving email notifications. Emails do not have to have access to the Smartling account to be added as a Watcher. If they have access to the account the emails include links to view the issue in the dashboard.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

watcherUid
required
string

Responses

Request samples

curl -X PUT -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/projects/$smartlingProjectId/issues/$issueUid/watchers/$issueWatcherUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove watcher from issue

An update to an issue is sent to the associated/linked watcher. Once watchers are removed from an issue, email notifications will no longer be received by them.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

watcherUid
required
string

Unique identifier of corresponding watcher

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/projects/$smartlingProjectId/issues/$issueUid/watchers/$issueWatcherUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

List watchers linked to issue

Get a list of watchers that are linked to the issue.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectId
required
string

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

issueUid
required
string

Unique identifier of corresponding issue

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/projects/$smartlingProjectId/issues/$issueUid/watchers

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create account issue subtype

Create account issue subtype.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

issueType
required
Request Body schema: application/json
required
issueSubTypeCode
string <= 80 characters ^[a-zA-Z0-9_]+$

Unique identifier code of issue subtype

description
string

Description of issue subtype that is shown in the Smartling Dashboard UI and can be used for custom integrations to show a user friendly description of the subtype.

Responses

Request samples

Content type
application/json
{
  • "issueSubTypeCode": "TEST_CODE",
  • "description": "issue subtype code description"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update account issue subtype description

Update account issue subtype description that is shown in the Smartling Dashboard UI and can be used for custom integrations to show a user friendly description of the subtype.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

issueType
required
issueSubTypeCode
required
string

Unique identifier of issue subtype

Request Body schema: application/json
required
description
string

Description of issue subtype that is shown in the Smartling Dashboard UI and can be used for custom integrations to show a user friendly description of the subtype.

Responses

Request samples

Content type
application/json
{
  • "description": "issue subtype code description"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete account issue subtype

Delete account issue subtype.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

issueType
required
string

Unique identifier of issue type

issueSubTypeCode
required
string

Unique identifier of issue subtype

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/issue-types/$smartlingIssueType/sub-types/$smartlingIssueSubTypeCode

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Update account issue subtype state

Default for new subtypes is 'true'. If a subtype is updated with enabled = 'false' the subtype cannot be used for new issues. Existing issues will not be affected.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

issueType
required
issueSubTypeCode
required
string

Unique identifier of issue subtype

Request Body schema: application/json
required
enabled
boolean

Default for new subtypes is 'true'. If a subtype is updated with enabled = 'false' the subtype cannot be used for new issues. Existing issues will not be affected.

Responses

Request samples

Content type
application/json
{
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get issue types Deprecated

This is deprecated. Instead, use this endpoint: /issues-api/v2/accounts/{accountUid}/issue-types. This request returns all current issue types. Smartling may occasionally add or change the list of allowed issue types.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Strings

A string is a piece of translation. Based on the source content, strings can be parsed differently. A string is then broken down further, into one or more segments.

The Strings API allows you to directly upload strings to a Smartling project and fetch original strings or translations.

For each string in a Smartling project, there is a unique identifier created by hashing together the parsed string text, variant metadata, and in some cases, namespace. When adding strings via the Strings API, each string will be unique. If you try to create a string with identical variant metadata and string text to a string that already exists in the project, the string will be overwritten.

Add strings

Uploads an array of strings to a Smartling project. A maximum of 100 strings can be created per request. A request with more than 100 items will return an error. Each string has a character limit of 10,000.

Note: You cannot authorize a string via API. Once you have created the strings, they will need to be authorized by a content owner in the Smartling Dashboard.

Smartling creates a unique hashcode for each string based on the parsed string text and any variant or namespace metadata provided. If you upload a string with the same text, variant and namespace, and therefore the same hashcode, the existng string will be overwritten. This will not change the text of the string, but may update other metadata, such as placeholder and callback values. If the string is currently inactive, overwriting it will cause it to be reactivated. Overwritten strings return "overWritten": "true" in the response object.

Most uploads will return a 200 response indicating success. If processing the request takes longer than 60 seconds, a 202 request will be returned, including a processUid value that can be used to check on the progress of the request.

If you set up a POST callback for the string, you can automatically receive the translation for a string as soon as it is complete. See Callbacks for more details.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>
Request Body schema: application/json
Array of objects non-empty
placeholderFormat
string

Specifies a standard placeholder format. Accepted values are none, c, ios, python, java, yaml, qt, resx. See Placeholders in Resource Files for more detail.

placeholderFormatCustom
string

Specifies a custom placeholder with a Java Regular Expression. For example \[.+?\] would capture all values surrounded by square brackets as placeholders. See Placeholders in Resource Files for more detail.

namespace
string

Used to generate the unique hashcode for all strings in the request. If you want to have two versions of a string with the same text and variant metadata, you can keep them unique by assigning a different namespace to each string. If not provided, default value is smartling.strings-api.default.namespace. A NULL value is permitted.

Responses

Request samples

Content type
application/json
{
  • "strings (Required)": [
    ],
  • "placeholderFormat": "string",
  • "placeholderFormatCustom": "string",
  • "namespace": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Check string status

If an Add strings request takes longer than 60 seconds to process, a 202 response will be returned, indicating that the process of creating strings is continuing but not yet complete. This response will include a proccessUid value which can be used to check the progress of the request.

This request can return:

  • "processState": "OPEN" which indicates that the request is still continuing.
  • "processState": "CLOSED" indicates the request has successfully completed.
  • "processState": "FAILED" means the request could not be completed.

Processes have a limited lifespan after they are complete. This request will fail if you specify an expired processUid.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>
processUid
required
string <uuid>

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -G https://api.smartling.com/strings-api/v2/projects/$smartlingProjectId/processes/$processUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

List all source strings

Returns source strings from Smartling. You can get strings by specifying a file you want strings for, or you can specify individual strings by hashcode.

If you do not specify at least one of these parameters (hashcodes or fileUri) no results will be returned.

Note: If you use this call to get strings that are not added via the Strings API, you may see differences in the response.

You may see a value for parsedStringText but a null value for stringText. The stringText records the raw input received by the Strings API, and therefore will only appear for strings uploaded via the Strings API. If you are getting a GDN string, the original placeholder values you used will not be returned as these are not saved by Smartling. GDN strings will have placeholders in the format {0}, {1}, etc.

Authorizations:
BearerAuth
path Parameters
projectId
required
string <uuid>
query Parameters
hashcodes
Array of strings

Hashcodes for each string you want to get source strings for.

fileUri
string

URI of a file you want to get strings for.

limit
number

By default, responses will be limited to 500 per request. This is also the maximum allowed value.

offset
number

Pagination setting. Default is 0.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -G -d "fileUri=$smartlingFileUri" https://api.smartling.com/strings-api/v2/projects/$smartlingProjectId/source-strings

Response samples

Content type
application/json
{
  • "response": {
    }
}

List all translations

Returns translated strings from Smartling. You can get translations by specifying a file you want strings for, or you can specify individual strings by hashcode.

If you do not specify at least one of these parameters (hashcodes or fileUri) no results will be returned.

Note: If you use this call to get strings that were not created via the Strings API, you may see differences in the response.

Only authorized and active strings will be returned. Excluded, unauthorized, and inactive strings will not be returned.

You may see a value for parsedStringText but a null value for stringText. The stringText records the raw input received by the Strings API, and therefore will only appear for strings uploaded via the Strings API. If you are getting a GDN string, the original placeholder values you used will not be returned as these are not saved by Smartling. GDN strings will have placeholders in the format {0}, {1}, etc.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
hashcodes
Array of strings

Hashcodes for each string you want to get translations for.

targetLocaleId
required
string

Smartling ID for the language you want to get translations for.

retrievalType
string
Enum: "pending" "published"

Sets the types of translations you want returned. published will only return translations that have completed their workflows and been published. pending will return any saved translations.

fileUri
string

URI of a file you want to get translations for.

limit
number

Pagination setting. By default, responses will be limited to 500 per request. This is also the maximum allowed value.

offset
number

Pagination setting. Default is 0.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -G https://api.smartling.com/strings-api/v2/projects/$smartlingProjectId/translations

Response samples

Content type
application/json
{
  • "response": {
    }
}

Tags

Tags can help you manage your strings. The Tags API allows you to add/remove string tags, and search for tags in a project.

List tags within a account

List / search tags within an account.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
projectIds
Array of strings <= 1000 items

Optional array of unique project identifiers. This can be found in the Smartling Dashboard under Account Settings > API.

tagMask
string

Search filter. Will return tags with partial match and is case insensitive.

limit
integer [ 1 .. 1500 ]
Default: 1500

The limit on the number of tags returned.

offset
integer >= 0
Default: 0

The offset to use when searching for tags.

Responses

Request samples

Content type
application/json
{
  • "projectIds": [
    ],
  • "tagMask": "string",
  • "limit": 30,
  • "offset": 30
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

List tags within a project

List / search tags within a project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

query Parameters
tagMask
string
Default: ""

Tag mask for search.

limit
number [ 0 .. 100 ]
Default: 100

The limit on the number of tags returned.

offset
number >= 0
Default: 0

The offset to use when searching for tags.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/tags-api/v2/projects/$smartlingProjectId/tags

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get all tags for strings

Retrieve all tags linked to strings.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required

List of string hashcodes

stringHashcodes
required
Array of strings <= 1000 items

Responses

Request samples

Content type
application/json
{
  • "stringHashcodes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add tags to strings

Add a list of tags to a list of strings.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
tags
required
Array of strings [ 1 .. 100 ] items

List of tags. Maximum length is 128 characters.

stringHashcodes
required
Array of strings <= 1000 items

List of string hashcodes

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ],
  • "stringHashcodes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove tags from strings

Remove a list of tags from a list of strings.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
tags
required
Array of strings [ 1 .. 100 ] items

List of tags. Maximum length is 128 characters.

stringHashcodes
required
Array of strings <= 1000 items

List of string hashcodes

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ],
  • "stringHashcodes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove all tags from strings

Remove all tags from a list of strings.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
stringHashcodes
required
Array of strings <= 1000 items

List of string hashcodes

Responses

Request samples

Content type
application/json
{
  • "stringHashcodes": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Vendors

The Vendors API is for Language Service Providers to view work that's available in Smartling.

List available jobs

Returns the list of jobs available for the agency.

Authorizations:
BearerAuth
path Parameters
agencyUid
required
string

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" \
https://api.smartling.com/vendors-api/v2/agencies/{agencyUid}/jobs

Response samples

Content type
application/json
{
  • "response": {
    }
}

Reports

The Reports API allows to request various reports available on Smartling platform and specify additional filtering criteria to narrow down data returned by the reports.

Get Word Count Report

Word Count report data for the specified parameters.

Authorizations:
BearerAuth
query Parameters
startDate
required
string <YYYY-MM-DD>

A parameter to limit words processed on or after the startDate, in America/New_York timezone.

endDate
required
string <YYYY-MM-DD>

A parameter to limit words processed on or before the endDate, in America/New_York timezone.

accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectIds
Array of strings

Optional array of unique project identifiers. This can be found in the Smartling Dashboard under Account Settings > API.

jobUids
Array of strings

Optional parameter to filter to the specified list of translation jobs.

agencyUid
string

Optional parameter of unique agency identifier.

userUids
Array of strings

Optional parameter to filter to the specified list of translation resources.

targetLocaleIds
Array of strings

Optional parameter to filter to the specified list of translation locale IDs.

fields
string

Optional comma-separated list of fields names to be returned by the endpoint. If this parameter is not set then the list of fields returned is defined by include... parameters.

Both fields and include... parameters are not allowed at the same time.

The supported list of fields names is:

  • accountUid

  • accountName

  • projectId

  • projectName

  • targetLocaleId

  • targetLocale

  • jobUid

  • jobName

  • jobReferenceNumber

  • translationResourceUid

  • translationResourceName

  • agencyUid

  • agencyName

  • workflowStepType

  • workflowStepUid

  • workflowStepName

  • fuzzyProfileName

  • fuzzyTier

  • wordCount

  • weightedWordCount

  • characterCount. Please note: the column shows correct data since 2022-10-01.

includeTranslationResource
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by translation resource name.

Deprecated, use parameter fields instead.

includeJob
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by translation job name.

Deprecated, use parameter fields instead.

includeJobReferenceNumber
boolean
Deprecated
Default: false

Optional parameter to specify whether the report should group word count by translation job and include reference number in the response.

Deprecated, use parameter fields instead.

includeFuzzyMatchProfile
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by fuzzy match profile and tier.

Deprecated, use parameter fields instead.

includeWorkflowStep
boolean
Deprecated
Default: false

Optional parameter to specify whether the report should group word count by workflow step uid and name.

Deprecated, use parameter fields instead.

limit
integer [ 0 .. 10000 ]
Default: 10000

Maximum number of records to return in the report.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Export Word Count in CSV format

Export Word Count report in CSV format.

Authorizations:
BearerAuth
query Parameters
startDate
required
string <YYYY-MM-DD>

A parameter to limit words processed on or after the startDate, in America/New_York timezone.

endDate
required
string <YYYY-MM-DD>

A parameter to limit words processed on or before the endDate, in America/New_York timezone.

accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectIds
Array of strings

Optional array of unique project identifiers. This can be found in the Smartling Dashboard under Account Settings > API.

jobUids
Array of strings

Optional parameter to filter to the specified list of translation jobs.

agencyUid
string

Optional parameter of unique agency identifier.

userUids
Array of strings

Optional parameter to filter to the specified list of translation resources.

targetLocaleIds
Array of strings

Optional parameter to filter to the specified list of translation locale IDs.

fields
string

Optional comma-separated list of fields names to be returned by the endpoint. If this parameter is not set then the list of fields returned is defined by include... parameters.

Both fields and include... parameters are not allowed at the same time.

The supported list of fields names is:

  • accountUid

  • accountName

  • projectId

  • projectName

  • targetLocaleId

  • targetLocale

  • jobUid

  • jobName

  • jobReferenceNumber

  • translationResourceUid

  • translationResourceName

  • agencyUid

  • agencyName

  • workflowStepType

  • workflowStepUid

  • workflowStepName

  • fuzzyProfileName

  • fuzzyTier

  • wordCount

  • weightedWordCount

  • characterCount. Please note: the column shows correct data since 2022-10-01.

includeTranslationResource
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by translation resource name.

Deprecated, use parameter fields instead.

includeJob
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by translation job name.

Deprecated, use parameter fields instead.

includeJobReferenceNumber
boolean
Deprecated
Default: false

Optional parameter to specify whether the report should group word count by translation job and include reference number in the response.

Deprecated, use parameter fields instead.

includeFuzzyMatchProfile
boolean
Deprecated
Default: true

Optional parameter to specify whether the report should group word count by fuzzy match profile and tier.

Deprecated, use parameter fields instead.

includeWorkflowStep
boolean
Deprecated
Default: false

Optional parameter to specify whether the report should group word count by workflow step uid and name.

Deprecated, use parameter fields instead.

Responses

Response samples

Content type
text/csv
Account,Project,Job Uid,Job,Translation Resource,Agency Uid,Agency, Target Language,Workflow Step,Workflow Step Uid,Workflow Step Name, Fuzzy Profile,Fuzzy Breakdown,Word Count,Weighted Words,Character Count Test Account,Test Project,f12ad8e9,Translation Job,Translator 1, Test Agency 1 Uid, Test Agency 1,Spanish (Spain),Translation,123abc456def, Translation,Default,85 - 94.9%,1,1,1

Attachments

The Attachments API allows for file attachment upload, download and checking linked attachments for an entity. Attachment entities can be from three domains: strings, jobs or issues. Each entity is referenced by an entity UID. These UIDs have a specific form for each of the domains.

  • jobs: <jobUid>
  • issues: <accountUid>-<issueUid> or <accountUid>-<issueUid>-<commentUid>
  • strings: <projectUid>:<stringHashcode>

Attachments API Usage Limitations:

  • Maximum attachment size is 500MB.

Download binary attachment

Download attachment file

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uuid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

type
required
string
Enum: "jobs" "strings" "issues"

Attachment type

attachmentUid
required
string <uuid>

Attachment unique identifier.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get list of linked attachments

List of linked attachments with entity

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uuid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

type
required
string
Enum: "jobs" "strings" "issues"

Attachment type

entityUid
required
string <uuid>

Entity uid

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Upload binary attachment

Upload attachment file

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uuid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

type
required
string
Enum: "jobs" "strings" "issues"

Attachment type

Request Body schema: multipart/form-data
file
required
string <binary>

The attachment file contents to upload.

name
required
string

Functional name of the file uploaded. This is not a unique identifier.

entityUids
Array of strings <= 100 items

(Optional) The list of entity uids attachment will be linked with (max 100).

description
string

(Optional) Description of uploaded binary file.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Translation quality checks

The translation quality check service is an API endpoint at which you can check the quality of your translations.

Get quality check types

Get the quality check types that are available.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get quality check subtypes

Get the quality check subtypes that are available.

Authorizations:
BearerAuth
path Parameters
checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types/$checkTypeCode/sub-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get quality check severity levels

Get severity levels of a quality check that are available.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/severity-levels

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get Glossary compliance match methods

Get Glossary compliance match methods.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types/GLOSSARY_COMPLIANCE/match-methods

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get trademark consistency types

Get trademark consistency types.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types/TRADEMARK_CONSISTENCY/trademark-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get custom quality check rule types

Get custom quality check rule types that are available.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types/REGEX_CHECK/rule-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get custom quality check flavors

Get custom quality check flavors that are available.

Authorizations:
BearerAuth

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/dictionary/check-types/REGEX_CHECK/flavors

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get user custom dictionary

Get a user’s custom dictionary.

Authorizations:
BearerAuth
path Parameters
localeId
required
string

A valid Smartling Locale ID.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/users/current/settings/dictionaries/$smartlingLocaleId

Response samples

Content type
application/json
{
  • "response": {
    }
}

Add word to user custom dictionary

Add a word to a user’s custom dictionary.

Authorizations:
BearerAuth
path Parameters
localeId
required
string

A valid Smartling Locale ID.

Request Body schema: application/json
required
word
string >= 1

Responses

Request samples

Content type
application/json
{
  • "word": "universe"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove word from user custom dictionary

Remove a word from a user’s custom dictionary.

Authorizations:
BearerAuth
path Parameters
localeId
required
string

A valid Smartling Locale ID.

wordUid
required
string

Word unique identifier.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/users/current/settings/dictionaries/$smartlingLocaleId/$wordUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get profiles

Get profiles.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

query Parameters
nameMask
string
Example: nameMask=default

name mask.

limit
integer
Example: limit=100

limit size.

offset
integer
Example: offset=1

offset number.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create a profile

Create a profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
name
required
string

profile name.

Responses

Request samples

Content type
application/json
{
  • "name": "default name"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get a profile

Get a profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete profile

Delete profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Copy a profile

Copy a profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of the profile for copy creation.

Request Body schema: application/json
required
name
required
string

profile name.

Responses

Request samples

Content type
application/json
{
  • "name": "default name"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update the profile name

Update the profile name.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

Request Body schema: application/json
required
name
required
string

profile name.

Responses

Request samples

Content type
application/json
{
  • "name": "default name"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get default profile

Get default profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/default-profile

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update default profile

Update default profile.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
profileUid
required
string

Unique identifier of corresponding profile.

Responses

Request samples

Content type
application/json
{
  • "profileUid": "ce6d6b5dbc12"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get all profile settings

Get all profile settings that are available.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get profile check type setting

Get the settings for a single profile check type.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/$smartlingCheckTypeCode

Response samples

Content type
application/json
Example
{
  • "response": {
    }
}

Update profile check type settings

Update profile check type settings.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
any
Enum: "ORIGINAL_EQUALS_TARGET" "SPELLCHECK" "NUMBER_CONSISTENCY" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "EMOJI_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "GLOSSARY_COMPLIANCE" "OPEN_ISSUES"
Request Body schema: application/json
required
One of
noEmojisAllowedInTarget
required
boolean

No emoji is allowed in target

Responses

Request samples

Content type
application/json
Example
{
  • "noEmojisAllowedInTarget": false
}

Response samples

Content type
application/json
Example
{
  • "response": {
    }
}

Update severity level for quality check type

Update the severity level for a quality check type.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
Request Body schema: application/json
required
severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update severity level for quality check subtype

Update the severity level for a quality check subtype.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
any
Enum: "TAG_CONSISTENCY" "NUMBER_CONSISTENCY" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY"
checkSubTypeCode
required
any
Enum: "EMOJI_ADDED" "EMOJI_DELETED" "EMOJI_PRESENT" "INSERTABLE_ADDED" "INSERTABLE_DELETED" "PLACEABLE_ADDED" "PLACEABLE_DELETED" "SPACES_AROUND_PLACEABLE" "PLACEABLE_FORMAT" "NUMBER_ADDED" "NUMBER_DELETED" "NUMBER_INCORRECT_CONVERSION" "TARGET_IS_EMPTY" "TARGET_IS_MUCH_SHORTER_THAN_SOURCE" "TARGET_IS_MUCH_LONGER_THAN_SOURCE" "TAG_ADDED" "TAG_DELETED" "SPACES_AROUND_TAGS" "TAG_ORDER_IS_CHANGED" "OPEN_CLOSED_TAG_ORDER_IS_CHANGED" "INVALID_TAG_NESTING" "TAG_IS_CHANGED" "SAME_SOURCE_DIFFERENT_TRANSLATIONS" "SAME_TRANSLATION_DIFFERENT_SOURCES"
Request Body schema: application/json
required
severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get check type groups settings

Get check type groups settings.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string (checkTypeCodeEnum)
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/$smartlingCheckTypeCode/groups

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create check type group

Create check type group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string (checkTypeCodeEnum)
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
Request Body schema: application/json
targetLocaleIds
required
Array of strings

List of target locale IDs.

Responses

Request samples

Content type
application/json
{
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get quality check type group by group identifier

Get a quality check type group by the group identifier.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
groupUid
required
string

Unique identifier of corresponding group.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/$smartlingCheckTypeCode/groups/$smartlingGroupUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete quality check type group by group identifier

Delete a quality check type group by the group identifier.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
groupUid
required
string

Unique identifier of corresponding group.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/$smartlingCheckTypeCode/groups/$smartlingGroupUid

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Update profile check type group settings

Update profile check type group settings.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
any
Enum: "ORIGINAL_EQUALS_TARGET" "SPELLCHECK" "NUMBER_CONSISTENCY" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "EMOJI_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "GLOSSARY_COMPLIANCE" "OPEN_ISSUES"
groupUid
required
string

Unique identifier of corresponding group.

Request Body schema: application/json
required
One of
noEmojisAllowedInTarget
required
boolean

No emoji is allowed in target

Responses

Request samples

Content type
application/json
Example
{
  • "noEmojisAllowedInTarget": false
}

Response samples

Content type
application/json
Example
{
  • "response": {
    }
}

Add locale to group

Add locale to a quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
groupUid
required
string

Unique identifier of corresponding group.

Request Body schema: application/json
required
targetLocaleId
required
string

Smartling ID for the language you want to translate to.

Responses

Request samples

Content type
application/json
{
  • "targetLocaleId": "it-IT"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete locale from group

Delete locale from a quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
groupUid
required
string

Unique identifier of corresponding group.

targetLocaleId
required
string

Smartling ID for the language you want to translate to.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/$smartlingCheckTypeCode/groups/$smartlingGroupUid/locales/$smartlingTargetLocaleId

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Update severity level for quality check subtype and group

Update the severity level for a quality check subtype and group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
any (checkTypeCodeOnlyWithSubtypesEnum)
Enum: "TAG_CONSISTENCY" "NUMBER_CONSISTENCY" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY"
groupUid
required
string

Unique identifier of corresponding group.

checkSubTypeCode
required
any (checkSubtypeEnum)
Enum: "EMOJI_ADDED" "EMOJI_DELETED" "EMOJI_PRESENT" "INSERTABLE_ADDED" "INSERTABLE_DELETED" "PLACEABLE_ADDED" "PLACEABLE_DELETED" "SPACES_AROUND_PLACEABLE" "PLACEABLE_FORMAT" "NUMBER_ADDED" "NUMBER_DELETED" "NUMBER_INCORRECT_CONVERSION" "TARGET_IS_EMPTY" "TARGET_IS_MUCH_SHORTER_THAN_SOURCE" "TARGET_IS_MUCH_LONGER_THAN_SOURCE" "TAG_ADDED" "TAG_DELETED" "SPACES_AROUND_TAGS" "TAG_ORDER_IS_CHANGED" "OPEN_CLOSED_TAG_ORDER_IS_CHANGED" "INVALID_TAG_NESTING" "TAG_IS_CHANGED" "SAME_SOURCE_DIFFERENT_TRANSLATIONS" "SAME_TRANSLATION_DIFFERENT_SOURCES"
Request Body schema: application/json
required
severityLevelCode
required
any (severityLevelCodeEnumCopyForRequest)
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update severity level for group

Update the severity level for a quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

checkTypeCode
required
string
Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"
Example: LEADING_TRAILING_SPACES
groupUid
required
string

Unique identifier of corresponding group.

Request Body schema: application/json
required
severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create a custom quality check

Create a custom quality check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

Request Body schema: application/json
required
ruleName
required
string

Rule name

severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"
ruleTypeCode
required
any
Enum: "FORBIDDEN" "MISSING" "COUNT_MISMATCH"
flavorCode
required
any
Enum: "JAVA" "DOT_NET"
originalPattern
required
string

Regular expression to evaluate against the source string.

translationPattern
required
string

Regular expression to evaluate against the translation.

caseInsensitive
required
boolean

Enable case insensitive search

multiLine
required
boolean

Enables multine search. If true then search will span newlines in a string. Users can use ^ and $ characters with special meaning for beginning of line and end of line match.

description
string

Human readable description of the role; shown in the the dashboard UI.

warningMessage
string

Human readable warning message appended to the standard message that is shown in the CAT tool when the check fails.

Responses

Request samples

Content type
application/json
{
  • "ruleName": "ruleName",
  • "severityLevelCode": "DISABLED",
  • "ruleTypeCode": "FORBIDDEN",
  • "flavorCode": "JAVA",
  • "originalPattern": "@mail",
  • "translationPattern": "@gmail",
  • "caseInsensitive": true,
  • "multiLine": true,
  • "description": "rule description",
  • "warningMessage": " test warning message"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get a custom quality check

Get a custom quality check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/REGEX_CHECK/settings/rules/$smartlingCheckRuleUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Update a custom quality check

Update a custom quality check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Request Body schema: application/json
required
ruleName
required
string

Rule name

severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"
ruleTypeCode
required
any
Enum: "FORBIDDEN" "MISSING" "COUNT_MISMATCH"
flavorCode
required
any
Enum: "JAVA" "DOT_NET"
originalPattern
required
string

Regular expression to evaluate against the source string.

translationPattern
required
string

Regular expression to evaluate against the translation.

caseInsensitive
required
boolean

Enable case insensitive search

multiLine
required
boolean

Enables multine search. If true then search will span newlines in a string. Users can use ^ and $ characters with special meaning for beginning of line and end of line match.

description
string

Human readable description of the role; shown in the the dashboard UI.

warningMessage
string

Human readable warning message appended to the standard message that is shown in the CAT tool when the check fails.

Responses

Request samples

Content type
application/json
{
  • "ruleName": "ruleName",
  • "severityLevelCode": "DISABLED",
  • "ruleTypeCode": "FORBIDDEN",
  • "flavorCode": "JAVA",
  • "originalPattern": "@mail",
  • "translationPattern": "@gmail",
  • "caseInsensitive": true,
  • "multiLine": true,
  • "description": "rule description",
  • "warningMessage": " test warning message"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete a custom quality check

Delete a custom quality check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/REGEX_CHECK/settings/rules/$smartlingCheckRuleUid

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Update severity level for custom quality check

Update severity level for custom quality check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Request Body schema: application/json
required
severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create a custom quality check group

Create a custom quality check group

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Request Body schema: application/json
targetLocaleIds
required
Array of strings

List of target locale IDs.

Responses

Request samples

Content type
application/json
{
  • "targetLocaleIds": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get a custom quality check groups

Get a custom quality check groups.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get a custom quality check group

Get a custom quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

groupUid
required
string

Unique identifier of corresponding group.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete a custom quality check group

Delete a custom quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

groupUid
required
string

Unique identifier of corresponding group.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Add locale custom quality check group

Add locale to custom quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

groupUid
required
string

Unique identifier of corresponding group.

Request Body schema: application/json
required
targetLocaleId
required
string

Smartling ID for the language you want to translate to.

Responses

Request samples

Content type
application/json
{
  • "targetLocaleId": "it-IT"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete locale from custom quality check group

Delete locale from custom quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

groupUid
required
string

Unique identifier of corresponding group.

targetLocaleId
required
string

Smartling ID for the language you want to translate to.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/translation-quality-api/v2/accounts/$smartlingAccountId/profiles/$smartlingProfileUid/check-types/REGEX_CHECK/settings/rules/$smartlingCheckRuleUid/groups/$smartlingCheckRuleGroupUid/locales/{targetLocaleId}

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Update severity level for custom quality check group

Update the severity level for custom quality check group.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

profileUid
required
string

Unique identifier of corresponding profile.

ruleUid
required
string

Unique identifier of corresponding check rule.

groupUid
required
string

Unique identifier of corresponding group.

Request Body schema: application/json
required
severityLevelCode
required
any
Enum: "DISABLED" "LOW" "MEDIUM" "HIGH"

Responses

Request samples

Content type
application/json
{
  • "severityLevelCode": "DISABLED"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get project check types settings

Get project check types settings.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

localeId
required
string

A valid Smartling Locale ID.

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/translation-quality-api/v2/projects/$smartlingProjectId/locales/$smartlingLocaleId/check-types/

Response samples

Content type
application/json
{
  • "response": {
    }
}

Check string translation quality

Check string translation quality.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

projectId
required
string

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

Request Body schema: application/json
required
targetLocaleId
required
string

Smartling ID for the language you want to translate to.

sourceLocaleId
string

The locale identifier for the source locale of the project. This indicates the base locale for which content should be uploaded to the project.

skipSuggestions
boolean

skip suggestions

Array of objects
useDefaultSettings
boolean

use default settings

checkTypeCodes
Array of strings [ 1 .. 100 ] items
Items Enum: "LEADING_TRAILING_SPACES" "ORIGINAL_EQUALS_TARGET" "WHITESPACES" "SPELLCHECK" "TAG_CONSISTENCY" "TARGET_LENGTH_LIMIT" "NUMBER_CONSISTENCY" "REPEATED_WORD" "TARGET_IN_WRONG_LANGUAGE" "SOURCE_IN_WRONG_LANGUAGE" "SEGMENT_COMPLETENESS" "NON_TRANSLATABLE_TEXT" "EMOJI_CONSISTENCY" "INSERTABLE_CONSISTENCY" "TARGET_SOURCE_CONSISTENCY" "BLACKLISTED_TERMS" "GLOSSARY_COMPLIANCE" "TRADEMARK_CONSISTENCY" "GRAMMAR_CHECK" "GLOBAL_CAPITALISATION_CONSISTENCY" "PUNCTUATION_CONSISTENCY" "PLURALS_REPETITION" "REGEX_CHECK" "OPEN_ISSUES"

Responses

Request samples

Content type
application/json
{
  • "targetLocaleId": "en-US",
  • "sourceLocaleId": "fr-FR",
  • "skipSuggestions": false,
  • "strings": [
    ],
  • "useDefaultSettings": false,
  • "checkTypeCodes": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "response": {
    }
}

Glossary API

During translation process, text may contain specific words, which are very important to has consistent meaning through out the resulted translation for target language. This is usually referenced as terminology, glossary, thesaurus, etc. And one of the vital steps in high-quality translation is to extract such terms (words/phrases) in a separate set, and define correct translation to be used during work process. Imagine not correctly translated medical/legal terms - or inconsistent translation for the same terms by different translators in one document.

Current section describes glossary manipulation API, such as :

  • glossary manipulation,
  • glossary entries manipulation,
  • import / export (in multiple formats),
  • glossary labels management,
  • etc.

Create glossary

Create glossary endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
glossaryName
required
string

Name of the glossary. Character limit is equal to 170 characters.

description
string

Description of the glossary. Character limit is equal to 250 characters.

verificationMode
boolean

Verification mode.

localeIds
Array of strings unique

Supported locale ids.

Array of objects (FallbackLocaleCommandPTO)

Fallback locales configuration.

Responses

Request samples

Content type
application/json
{
  • "glossaryName": "My new glossary",
  • "description": "Glossary created for common terms in scope of 'my-project'",
  • "verificationMode": true,
  • "localeIds": [
    ],
  • "fallbackLocales": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read glossary

Read glossary endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Update glossary

Update glossary endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
glossaryName
required
string

Name of the glossary. Character limit is equal to 170 characters.

description
string

Description of the glossary. Character limit is equal to 250 characters.

verificationMode
boolean

Verification mode.

localeIds
Array of strings unique

Supported locale ids.

Array of objects (FallbackLocaleCommandPTO)

Fallback locales configuration.

Responses

Request samples

Content type
application/json
{
  • "glossaryName": "My new glossary",
  • "description": "Glossary created for common terms in scope of 'my-project'",
  • "verificationMode": true,
  • "localeIds": [
    ],
  • "fallbackLocales": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Bulk archive glossaries

Bulk archive glossaries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
glossaryUids
required
Array of strings

Glossary uids fot the archive / restore operation.

Responses

Request samples

Content type
application/json
{
  • "glossaryUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Bulk unarchive/restore glossaries.

Bulk unarchive/restore glossaries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
glossaryUids
required
Array of strings

Glossary uids fot the archive / restore operation.

Responses

Request samples

Content type
application/json
{
  • "glossaryUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Search glossaries by filter

Search glossaries by filter endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
query
string

Allow to search glossaries by query in scope of glossaryName or description properties. Also supports exact search by glossaryUid.

glossaryState
string
Enum: "ACTIVE" "ARCHIVED" "BOTH"

Glossary state.

targetLocaleId
string

Filter glossaries that have passed locale - preconfigured.

glossaryUids
Array of strings

GlossaryUids filter.

object (PaginationCommandPTO)

Pagination options.

object (SortCommandPTO)

Sorting options for the filter.

includeEntriesCount
boolean

Allow to exclude / include glossary entries count, for each glossary that was found by the criteria.

Responses

Request samples

Content type
application/json
{
  • "query": "some name",
  • "glossaryState": "BOTH",
  • "targetLocaleId": "uk-UA",
  • "glossaryUids": [
    ],
  • "paging": {
    },
  • "sorting": {
    },
  • "includeEntriesCount": true
}

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Search glossaries entries count by filter

Search glossaries entries count by filter endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
query
string

Allow to search glossaries by query in scope of glossaryName or description properties. Also supports exact search by glossaryUid.

glossaryState
string
Enum: "ACTIVE" "ARCHIVED" "BOTH"

Glossary state.

targetLocaleId
string

Filter glossaries that have passed locale - preconfigured.

glossaryUids
Array of strings

GlossaryUids filter.

object (PaginationCommandPTO)

Pagination options.

object (SortCommandPTO)

Sorting options for the filter.

Responses

Request samples

Content type
application/json
{
  • "query": "some name",
  • "glossaryState": "BOTH",
  • "targetLocaleId": "uk-UA",
  • "glossaryUids": [
    ],
  • "paging": {
    },
  • "sorting": {
    }
}

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Create glossary entry

Create glossary entry endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
definition
string

Glossary entry definition. Max definition length is equal to 1500 characters.

partOfSpeech
string
Enum: "Noun" "Verb" "Adjective" "Adverb" "Pronoun" "Preposition" "Interjection" "Conjunction" "Proper Noun"

Glossary entry part of speech.

labelUids
Array of strings unique

Glossary label uid to be associated.

Array of objects (GlossaryEntryTranslationCommandPTO)

Glossary entry translations. Please note:

  • translations that were not passed into the current array but present ( update call ) will be removed (as example we may consider search by filter which may return translations only for specified locales);
  • each translation from the array should at least has not empty term or notes field, or disabled property marked as 'true', otherwise 'validation error' ( code : 400 ) will be returned.
Array of objects (CustomFieldValuesCommandPTO)

Assigned custom field values.

Responses

Request samples

Content type
application/json
{
  • "definition": "string",
  • "partOfSpeech": "Noun",
  • "labelUids": [
    ],
  • "translations": [
    ],
  • "customFieldValues": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read glossary entry

Read glossary entry endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

entryUid
required
string <uuid>

Unique identifier of the glossary entry.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Update glossary entry

Update glossary entry endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

entryUid
required
string <uuid>

Unique identifier of the glossary entry.

Request Body schema: application/json
required
definition
string

Glossary entry definition. Max definition length is equal to 1500 characters.

partOfSpeech
string
Enum: "Noun" "Verb" "Adjective" "Adverb" "Pronoun" "Preposition" "Interjection" "Conjunction" "Proper Noun"

Glossary entry part of speech.

labelUids
Array of strings unique

Glossary label uid to be associated.

Array of objects (GlossaryEntryTranslationCommandPTO)

Glossary entry translations. Please note:

  • translations that were not passed into the current array but present ( update call ) will be removed (as example we may consider search by filter which may return translations only for specified locales);
  • each translation from the array should at least has not empty term or notes field, or disabled property marked as 'true', otherwise 'validation error' ( code : 400 ) will be returned.
Array of objects (CustomFieldValuesCommandPTO)

Assigned custom field values.

Responses

Request samples

Content type
application/json
{
  • "definition": "string",
  • "partOfSpeech": "Noun",
  • "labelUids": [
    ],
  • "translations": [
    ],
  • "customFieldValues": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Search glossary entries

Search glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
query
string

Keyword search for translation of variants.

localeIds
Array of strings

Locales list for translation filtering.

entryUids
Array of strings unique

Glossary entry uids filter.

entryState
required
string
Enum: "ACTIVE" "ARCHIVED" "BOTH"

State of the glossary entry. ACTIVE will be used in case if omitted.

missingTranslationLocaleId
string

Additional locale id filter, which allow to find missing/empty translations.

presentTranslationLocaleId
string

Additional locale id filter, which allow to find only present translations.

dntLocaleId
string

Additional locale id filter, which allow to find only DNT-marked translations.

returnFallbackTranslations
boolean

For all translations, if they are missing, appropriate fallback locales will be used.

object (FilterByLabelsPTO)

Labels filter on glossary entry level. There are 3 subTypes :

  • empty - allow to search for entries where no labels are assigned, as example - '{"type":"empty"}';
  • any - allow to search for entries where ant labels are assigned, as example - '{"type":"any"}';
  • associated - allow to search for entries where pre-selected labels are assigned, as example - '{"type":"associated", "labelUids":[""16ed66cc-accc-4bb5-9822-bc84e93429f8""]}'.
dntTermSet
boolean

Return entries where dnt term is set.

object (AuditionDateCommandPTO)

Audition date-time filter. Possible values :

  • after - after date-time filter, as example : '{ "type": "after", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }';
  • before - before date-time filter, as example : '{ "type": "before", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }';
  • date_range - date time in-range filter, as example : '{ "type": "date_range", "level":"ANY", "from":"2023-02-01T11:45:00.000Z", "to":"2023-03-01T11:45:00.000Z" }';
  • exact - exact date time filter, as example : '{ "type": "before", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }'.
object (AuditionDateCommandPTO)

Audition date-time filter. Possible values :

  • after - after date-time filter, as example : '{ "type": "after", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }';
  • before - before date-time filter, as example : '{ "type": "before", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }';
  • date_range - date time in-range filter, as example : '{ "type": "date_range", "level":"ANY", "from":"2023-02-01T11:45:00.000Z", "to":"2023-03-01T11:45:00.000Z" }';
  • exact - exact date time filter, as example : '{ "type": "before", "level":"ANY", "date":"2023-02-01T11:45:00.000Z" }'.
object (AuditorCommandPTO)

Auditor user filter.

object (AuditorCommandPTO)

Auditor user filter.

object (PaginationCommandPTO)

Pagination options.

object (GlossaryEntriesSortCommandPTO)

Sorting options.

Responses

Request samples

Content type
application/json
{
  • "query": "P&G term",
  • "localeIds": [
    ],
  • "entryUids": [
    ],
  • "entryState": "ACTIVE",
  • "missingTranslationLocaleId": "uk-UA",
  • "presentTranslationLocaleId": "uk-UA",
  • "dntLocaleId": "uk-UA",
  • "returnFallbackTranslations": false,
  • "labels": {
    },
  • "dntTermSet": false,
  • "created": {
    },
  • "lastModified": {
    },
  • "createdBy": {
    },
  • "lastModifiedBy": {
    },
  • "paging": {
    },
  • "sorting": {
    }
}

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Archive glossary entries

Archive glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    }
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Unarchive/restore glossary entries

Unarchive/restore glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    }
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Add labels to glossary entries

Add labels to glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

labelUids
required
Array of strings unique

Labels identifiers.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    },
  • "labelUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Remove labels from glossary entries

Remove labels from glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

labelUids
required
Array of strings unique

Labels identifiers.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    },
  • "labelUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Remove glossary entries

Remove glossary entries endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

Responses

Request samples

Content type
application/json
{
  • "filter": {
    }
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Export glossary entries

This request export glossary entries into file with preselected format. For now next formats are allowed:

  • CSV,
  • XLSX,
  • TBX.

For TBX files - 2 version-names / versions supported:

  • TBXcoreStructV02,
  • TBXcoreStructV03.
Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
format
required
string
Enum: "CSV" "XLSX" "TBX"

Export format.

tbxVersion
string
Enum: "TBXcoreStructV02" "TBXcoreStructV03"

TBX version-name, required when TBX format preselected.

required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

focusLocaleId
string

First locale id in the export scope.

localeIds
required
Array of strings

Locales ids for the export.

skipEntries
boolean

Skip entries export if true; exports only headers ( template ).

Responses

Request samples

Content type
application/json
{
  • "format": "CSV",
  • "tbxVersion": "TBXcoreStructV02",
  • "filter": {
    },
  • "focusLocaleId": "string",
  • "localeIds": [
    ],
  • "skipEntries": true
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Initialize glossary import process

Initialize glossary import process. Upload file, and perform validation. ( No changes will be done during this method call ). In case of success glossary import will be created with 'PENDING' status.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: multipart/form-data
required
archiveMode
boolean

In case if {@code true} passed - all entries that are not in import file will be archived.

importFile
required
string <binary>

Binary file data to upload.

importFileName
required
string

Name and extension of the import file.

importFileMediaType
required
string
Enum: "text/csv" "text/xml" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

Import file media type. One of 'text/csv | text/xml | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Read import process status

Read import process status

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

importUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique identifier of the glossary-import.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Confirm previously created glossary import

Confirm previously created glossary import. Only imports in status : 'PENDING' may be confirmed.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

importUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique identifier of the glossary-import.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "importFile=@$uploadFilePath;type=text/plain" -F "importFileName=$uploadFileSmartlingName" -F "importFileMediaType=$uploadFileSmartlingMediaType" "https://api.smartling.com//glossary-api/v3/accounts/$smartlingAccountUid/glossaries/$smartlingGlossaryUid/import"    

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Authorize glossary entries for translations.

Allow to authorize entries for translation. Creates all required strings, authorize, then and add to the JOB.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

glossaryUid
required
string <uuid>

Unique identifier of the glossary.

Request Body schema: application/json
required
sourceLocale
required
string

Source locale identifier. Basically, source locale of the project, both with localeId of the glossaryEntryTranslations to be authorized for translation.

projectId
required
string

Project id, where authorized content should be placed / where translation job will be created.

required
object (GetGlossaryEntriesByFilterCommandPTO)

Glossary entries filter command.

required
Array of objects (LocaleWorkflowPTO)

Locale / workflow pairs array for the authorization process.

Responses

Request samples

Content type
application/json
{
  • "sourceLocale": "string",
  • "projectId": "string",
  • "filter": {
    },
  • "localeWorkflows": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read account glossary labels

Read all glossary labels endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Create glossary label

Create glossary label endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
labelText
required
string

Text of the label. Text max size is 50 characters.

Responses

Request samples

Content type
application/json
{
  • "labelText": "string"
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Update glossary label

Update glossary label endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

labelUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique label identifier.

Request Body schema: application/json
required
labelText
required
string

Text of the label. Text max size is 50 characters.

Responses

Request samples

Content type
application/json
{
  • "labelText": "string"
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Delete glossary label

Delete glossary label endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

labelUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique label identifier.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Blocklist API

Defines list of terms that should not be used during the translation process. Blocklists are tied to glossary functionality.

Current section describes blocklists manipulation API, such as :

  • blocklist manipulation,
  • blocklist terms manipulation,
  • import / export (in multiple formats).

Create blocklist

Create blocklist endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
blocklistName
required
string

Name of the blocklist. Character limit is equal to 170 characters.

description
string

Description of the blocklist. Character limit is equal to 250 characters.

glossaryUids
required
Array of strings unique

Associated glossary uids.

Responses

Request samples

Content type
application/json
{
  • "blocklistName": "My new blocklist",
  • "description": "Blocklist created for common terms in scope of 'my-project'",
  • "glossaryUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read blocklist

Read blocklist endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Update blocklist

Update blocklist endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: application/json
required
blocklistName
required
string

Name of the blocklist. Character limit is equal to 170 characters.

description
string

Description of the blocklist. Character limit is equal to 250 characters.

glossaryUids
required
Array of strings unique

Associated glossary uids.

Responses

Request samples

Content type
application/json
{
  • "blocklistName": "My new blocklist",
  • "description": "Blocklist created for common terms in scope of 'my-project'",
  • "glossaryUids": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Archive blocklist

Archive blocklist endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: application/json
Schema not provided

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Unarchive/restore blocklist

Unarchive/restore blocklist endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: application/json
Schema not provided

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Search blocklists by filter

Search blocklists by filter endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

Request Body schema: application/json
required
query
string

Allow to search blocklists by query in scope of name or description property.

blocklistState
string
Enum: "ACTIVE" "ARCHIVED" "BOTH"

Blocklist state.

glossaryUids
Array of strings

Associated glossaryUids filter.

object (PaginationCommandPTO)

Pagination options.

object (BlocklistSortCommandPTO)

Sorting options for the filter.

Responses

Request samples

Content type
application/json
{
  • "query": "some name / description",
  • "blocklistState": "BOTH",
  • "glossaryUids": [
    ],
  • "paging": {
    },
  • "sorting": {
    }
}

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Create blocklist term

Create blocklist term endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: application/json
required
term
required
string

Blocklist term. Max term length is equal to 250 characters.

notes
string

Blocklist term. Max notes length is equal to 1500 characters.

caseSensitive
boolean

Term caseSensitive.

exactMatch
boolean

Term exactMatch.

variants
Array of strings

Term synonyms/variations. Max length of single variation entry is 250 characters. Max amount of variations in current array is 50.

preferredTerms
Array of strings

Possible terms to be used instead of blocked. Max length of single variation entry is 250 characters. Max amount of variations in current array is 50.

localeIds
Array of strings

Associated locale identifiers.

Responses

Request samples

Content type
application/json
{
  • "term": "some term to be blocked",
  • "notes": "string",
  • "caseSensitive": true,
  • "exactMatch": true,
  • "variants": [
    ],
  • "preferredTerms": [
    ],
  • "localeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read blocklist term

Read blocklist term endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

termUid
required
string <uuid>

Unique identifier of the blocklist term.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Update blocklist term

Update blocklist term endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

termUid
required
string <uuid>

Unique identifier of the blocklist term.

Request Body schema: application/json
required
term
required
string

Blocklist term. Max term length is equal to 250 characters.

notes
string

Blocklist term. Max notes length is equal to 1500 characters.

caseSensitive
boolean

Term caseSensitive.

exactMatch
boolean

Term exactMatch.

variants
Array of strings

Term synonyms/variations. Max length of single variation entry is 250 characters. Max amount of variations in current array is 50.

preferredTerms
Array of strings

Possible terms to be used instead of blocked. Max length of single variation entry is 250 characters. Max amount of variations in current array is 50.

localeIds
Array of strings

Associated locale identifiers.

Responses

Request samples

Content type
application/json
{
  • "term": "some term to be blocked",
  • "notes": "string",
  • "caseSensitive": true,
  • "exactMatch": true,
  • "variants": [
    ],
  • "preferredTerms": [
    ],
  • "localeIds": [
    ]
}

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Archive blocklist term

Archive blocklist term endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

termUid
required
string <uuid>

Unique identifier of the blocklist term.

Request Body schema: application/json
Schema not provided

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Unarchive/restore blocklist term

Unarchive/restore blocklist term endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

termUid
required
string <uuid>

Unique identifier of the blocklist term.

Request Body schema: application/json
Schema not provided

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS"
}

Search blocklist terms

Search blocklist terms endpoint.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: application/json
required
query
string

Allow to search blocklists by query in scope of name or notes property.

termState
string
Enum: "ACTIVE" "ARCHIVED" "BOTH"

Blocklist term state.

object (PaginationCommandPTO)

Pagination options.

object (BlocklistTermSortCommandPTO)

Sorting options for the filter.

Responses

Request samples

Content type
application/json
{
  • "query": "some name / description",
  • "termState": "BOTH",
  • "paging": {
    },
  • "sorting": {
    }
}

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "items": [
    ]
}

Export blocklist terms

This request export blocklist terms into file with preselected format. For now next formats are allowed:

  • CSV,
  • XLSX.
Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

query Parameters
format
required
string
Enum: "CSV" "XLSX"
Example: format=CSV

Export format, one of CSV, XLSX.

skipEntries
boolean

Will export template ( headers ) only in case if - value set to true.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Initialize blocklist import process

Initialize blocklist import process. Upload file, and perform validation. ( No changes will be done during this method call ). In case of success blocklist import will be created with 'PENDING' status.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

Request Body schema: multipart/form-data
required
importFile
required
string <binary>

Binary file data to upload.

importFileName
required
string

Name and extension of the import file.

importFileMediaType
required
string
Enum: "text/csv" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

Import file media type. One of 'text/csv | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Read import process status

Read import process status

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

importUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique identifier of the glossary-import.

Responses

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Confirm previously created blocklist import

Confirm previously created blocklist import. Only imports in status : 'PENDING' may be confirmed.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

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

blocklistUid
required
string <uuid>

Unique identifier of the blocklist.

importUid
required
string <uuid>
Example: 69dae398-96c2-45f6-9f0d-91470c3464bd

Unique identifier of the glossary-import.

Responses

Request samples

curl -X POST -H "Authorization: Bearer $smartlingToken" -F "importFile=@$uploadFilePath;type=text/csv" -F "importFileName=$uploadFileSmartlingName" -F "importFileMediaType=$uploadFileSmartlingMediaType" "https://api.smartling.com//glossary-api/v3/accounts/$smartlingAccountUid/blocklist/$smartlingBlocklistUid/import"    

Response samples

Content type
application/json
{
  • "code": "SUCCESS",
  • "data": {
    }
}

Workflow Assignment

The Workflow Assignment API handles workflow step assignments for non agency users.

Assignments removal status

Checking state of workflow assignments removal process

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

processUid
required
string <uuid>

The process unique identifier.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Create Steps Assignment

Create new workflow steps assignment

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

userUid
required
string <uid>

User identifier.

Request Body schema: application/json
roleValue
string
Enum: "ROLE_TRANSLATION_RESOURCE" "ROLE_TRANSLATION_RESOURCE_MANAGER"

User role name

Array of objects (WorkflowAssignmentWorkflowStep)

Responses

Request samples

Content type
application/json
{
  • "roleValue": "ROLE_TRANSLATION_RESOURCE",
  • "workflowStepAssignments": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Remove Step Assignments

Schedule workflow steps assignment removal and returns process uid for status check.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

userUid
required
string <uid>

User identifier.

Request Body schema: application/json
Array of objects (WorkflowAssignmentWorkflowStep)

Responses

Request samples

Content type
application/json
{
  • "workflowStepAssignments": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Search For Account Assignments

Search for workflow step assignments within account

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
workflowStepUids
Array of strings [ 0 .. 1000 ]

Optional workflow steps uids.

userUid
string

Optional user identifier.

offsetToken
string

Offset token for next data batch or null

limit
integer [ 1 .. 5000 ]

Size of batch for single request

Responses

Request samples

Content type
application/json
{
  • "workflowStepUids": [
    ],
  • "userUid": "ac48ht4qy",
  • "offsetToken": "d966008f-c341-4c75-a986-7e25a0135e01",
  • "limit": 1000
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Search For User Assignments

Search for workflow step assignments for single user

Authorizations:
BearerAuth
path Parameters
accountUid
required
string <uid>

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

userUid
required
string <uid>

User identifier.

Request Body schema: application/json
offsetToken
string

Offset token for next data batch or null

limit
integer [ 1 .. 5000 ]

Size of batch for single request

Responses

Request samples

Content type
application/json
{
  • "offsetToken": "67f4287b-895f-4fc6-b672-6e3f376b0cd5",
  • "limit": 1000
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Issue Webhooks

Set up issue webhooks

This URL is the Smartling API endpoint for receiving issue webhook setup requests.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Request Body schema: application/json
required
webhookUrl
string

URL where issue webhooks should be sent.

enabled
boolean

Enable or disable issue webhooks.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get issue webhook settings

This URL is the Smartling API endpoint for receiving issue webhook settings.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Responses

Request samples

curl -X GET -H "Authorization: Bearer $smartlingToken" -H "Content-Type: application/json" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/webhook

Response samples

Content type
application/json
{}

Delete issue webhook settings

This URL is the Smartling API endpoint for deleting issue webhook settings.

Authorizations:
BearerAuth
path Parameters
accountUid
required
string

The account’s unique identifier. This can be found in the Smartling Dashboard under Account Settings > API.

Responses

Request samples

curl -X DELETE -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/issues-api/v2/accounts/$smartlingAccountId/webhook

Response samples

Content type
application/json
{
  • "response": {
    }
}

Receive issue webhooks

This client-side API endpoint should be configured to receive issue webhooks.

Authorizations:
BearerAuth
Request Body schema: application/json
required
One of
type
string
Value: "issue.created"

Event type code

object

Responses

Request samples

Content type
application/json
Example
{
  • "type": "issue.created",
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Estimates

Get List of Job Fuzzy Estimate Reports

List fuzzy estimate reports.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

translationJobUid
required
string

A unique translation job identifier.

query Parameters
reportStatus
string
Enum: "NOT_FOUND" "PENDING" "PROCESSING" "COMPLETED" "FAILED" "TIMEOUT"

Status of report.

contentCoverage
string
Enum: "FULL" "PARTIAL"

Specifies level of content coverage report should have.

creatorUserUids
Array of strings

Array of report creator uids.

translationJobSchemaContents
Array of strings
Items Enum: "TRANSLATION" "ALL_CONTENT" "CLAIMING" "UNAUTHORIZED"

if report was generated for the job,.

tags
Array of strings

Search is done via or logic, i.e. if a report has any of the given tags, it will be returned.

createdFrom
string

Date filter for report.

createdTo
string

Date filter for report.

limit
integer

Paging parameter. The number of reports to return.

offset
integer

Paging parameter. The index of the repor to start with.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Generate Fuzzy Estimate Report for the Job

Generate Fuzzy report for the Job.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

translationJobUid
required
string

A unique translation job identifier.

Request Body schema: application/json
contentType
string
Default: "ALL_CONTENT"
Enum: "TRANSLATION" "ALL_CONTENT" "CLAIMING" "UNAUTHORIZED"
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "contentType": "TRANSLATION",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get List of Job Cost Estimate Reports

List cost estimate reports.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

translationJobUid
required
string

A unique translation job identifier.

query Parameters
reportStatus
string
Enum: "NOT_FOUND" "PENDING" "PROCESSING" "COMPLETED" "FAILED" "TIMEOUT"

Status of report.

contentCoverage
string
Enum: "FULL" "PARTIAL"

Specifies level of content coverage report should have.

creatorUserUids
Array of strings

Array of report creator uids.

translationJobSchemaContents
Array of strings
Items Enum: "TRANSLATION" "ALL_CONTENT" "CLAIMING" "UNAUTHORIZED"

if report was generated for the job,.

tags
Array of strings

Search is done via or logic, i.e. if a report has any of the given tags, it will be returned.

createdFrom
string

Date filter for report.

createdTo
string

Date filter for report.

limit
integer

Paging parameter. The number of reports to return.

offset
integer

Paging parameter. The index of the repor to start with.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Generate Cost Estimate Report for the Job

Generate Cost Estimate Report for the Job

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

translationJobUid
required
string

A unique translation job identifier.

Request Body schema: application/json
contentType
string
Default: "ALL_CONTENT"
Enum: "TRANSLATION" "ALL_CONTENT" "CLAIMING" "UNAUTHORIZED"
tags
Array of strings
Array of objects
fuzzyProfileUid
string

Responses

Request samples

Content type
application/json
{
  • "contentType": "TRANSLATION",
  • "tags": [
    ],
  • "localeWorkflows": [
    ],
  • "fuzzyProfileUid": "string"
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get Estimate Report Status

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

reportUid
required
string

A unique report identifier.

query Parameters
reportStatus
string
Enum: "NOT_FOUND" "PENDING" "PROCESSING" "COMPLETED" "FAILED" "TIMEOUT"

Status of report.

reportType
string
Enum: "FUZZY" "COST"

Report type.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get Estimate Report

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

reportUid
required
string

A unique report identifier.

query Parameters
reportStatus
string
Enum: "NOT_FOUND" "PENDING" "PROCESSING" "COMPLETED" "FAILED" "TIMEOUT"

Status of report.

reportType
string
Enum: "FUZZY" "COST"

Report type.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Delete Estimation Report

Delete estimate report.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

reportUid
required
string

A unique report identifier.

Responses

Response samples

Content type
application/json
{
  • "response": {
    }
}

Modify Tags of Estimation Report

The new set of tags completely replaces the old ones.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

A unique project identifier.

reportUid
required
string

A unique report identifier.

Request Body schema: application/json
tags
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Export Estimation Report as CSV

Authorizations:
BearerAuth
path Parameters
projectUid
required
string

A unique project identifier.

reportUid
required
string

A unique report identifier.

query Parameters
format
required
string

for now, only csv is supported.

Responses

GDN url management

Get list of URLs

Get list of URLs.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
domainName
string

domain name

limit
integer [ 1 .. 200 ]
Default: 100

limit

localeIds
Array of strings
offset
integer [ 0 .. 100 ]
Default: 0

offset

object

Sort result by fields

orderDirection
string
Default: "ASC"
Enum: "ASC" "DESC"

Sort direction

urlCaptureDateAfter
string <date-time>

The date after which the URL was captured.

urlCaptureDateBefore
string <date-time>

The date by which the URL was captured.

urlPath
string

url

urlPathExactMatch
boolean

Should or should not apply exact match.

Responses

Request samples

Content type
application/json
{
  • "domainName": "my.domain.com",
  • "limit": 30,
  • "localeIds": [
    ],
  • "offset": 0,
  • "orderBy": [
    ],
  • "orderDirection": "ASC",
  • "urlCaptureDateAfter": "2020-11-21T01:51:17Z",
  • "urlCaptureDateBefore": "2020-11-21T01:51:17Z",
  • "urlPath": "/home/page.htm",
  • "urlPathExactMatch": false
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get details for URLs

Retrieve details of the URLs.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Request Body schema: application/json
required
webPageUids
Array of strings [ 1 .. 200 ]

list of url identifiers

Responses

Request samples

Content type
application/json
{
  • "webPageUids": [
    ]
}

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get details for URL

Retrieve detail for the URL.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

webPageUid
required
string

Unique identifier of the URL

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/gdn-url-management-api/v2/projects/$smartlingProjectId/web-pages/$webPageUid

Response samples

Content type
application/json
{
  • "response": {
    }
}

Get domains for project

Get domains for project.

Authorizations:
BearerAuth
path Parameters
projectId
required
string

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

Responses

Request samples

curl -H "Authorization: Bearer $smartlingToken" https://api.smartling.com/gdn-url-management-api/v2/projects/$smartlingProjectId/domains

Response samples

Content type
application/json
{
  • "response": {
    }
}