Migrate to V2

Many of Smartling’s v1 API methods are scheduled to be deprecated March 1 2017, so all users should start preparing to transition to v2 methods. Migrating your existing integrations from v1 to v2 requires four steps.

  1. Create an authentication strategy.

  2. Change your requests to use path variables.

  3. Switch your requests to v2 URLs.

  4. Update necessary parameters - especially arrays.

1. Create an authentication strategy

Where v1 requests were authorized with an API key, v2 requests use Oauth 2.0. A valid access token must be included in the header of each request. This means that you need to set up some way of passing a valid token to your API requests. See Authentication for full details. Depending on how you are using the API, there are two main approaches:

2) Change your requests to use path variables

While v1 request URLs were static, v2 APIs use path variables to identify projects and locales. To switch to v2, you’ll need to update how you assemble your requests to generate the correct request URL for the project and locale you want to access.

3) Switch over to v2 URLs

Smartling’s v2 API gives you some new options for managing your content (see New in v2 for details). Consider taking advantage of the new endpoints when you switch to v2. To maintain your current functionality, see the table below for the most direct v2 equivalent of each v1 endpoint.

4) Update necessary parameters - especially Arrays

Many v2 requests use similar parameters to their v1 equivalents, with a few key differences. Parameters that referenced ‘Approve’ in v1, now use ‘Authorize’ to match the terminology used in the Smartling Dashboard. Additionally, some requests now take Array arguments. These are marked in the documentation for each request. Array arguments must be passed in array format, even if there is only one value.

You should now be ready to start using Smartling API v2.


V1 to v2 Endpoints - Nearest Equivalent

v1 Endpoint

v2 Endpoint

/v1/file/upload

POST - /files-api/v2/projects/{projectId}/file

/v1/file/get

GET - /files-api/v2/projects/{projectId}/locales/{localeId}/file

/v1/file/list

GET - /files-api/v2/projects/{projectId}/files/list

/v1/file/status

GET - /files-api/v2/projects/{projectId}/locales/{localeId}/file/status

/v1/file/rename

POST - /files-api/v2/projects/{projectId}/file/rename

/v1/file/delete

POST - /files-api/v2/projects/{projectId}/file/delete

/v1/file/last_modified

GET - /files-api/v2/projects/{projectId}/file/last-modified

/v1/file/get-translations

POST - /files-api/v2/projects/{projectId}/locales/{localeId}/file/get-translations

/v1/file/import

POST - /files-api/v2/projects/{projectId}/locales/{localeId}/file/import

/v1/project/locale/list

GET - projects-api/v2/projects/{projectId}