Memsource REST API

Memsource REST API—Technology

Our REST API sees application entities (projects, jobs, settings) as resources that can be retrieved, created, modified, and deleted. Every HTTP method represents an action:

  • GET: retrieves a resource, never changing the resource
  • POST: creates a resource. POST is also used for operations that don’t fit into any of the four operations or have long or complex input—like searching translation memories or creating jobs.
  • PUT: updates the resource. Please note that the whole entity is required with all of its fields, not only those changed; not including it means it should be set to null.
  • DELETE: deletes the resource.


Important: The input and output data are usually in JSON format, UTF-8 encoded. For a file as request body content type application/octet-stream or multipart/form-data is used.

In order to keep the API simple and responding quickly, the entities use a flat structure when possible. Instead of including whole child objects in answers, we only contain references that contain the ID, UID, and a few attributes. In requests, we expect either IDReference or UidReference objects to refer to related entities.

All response lists are paged. Use the parameters pageNumber and pageSize to retrieve the requested data. The maximum page size is 50.

OpenAPI 3.0 Documentation

We use OpanAPI 3.0 for API documentation. For client development, we recommend Swagger code generators.

For more information, please see our Human-readable documentation

Raw documentation file:
https://cloud.memsource.com/web/api/docs/json
https://cloud.memsource.com/web/api/docs/yaml

API Example

Get list of all translation memories

GET /web/api2/v1/transMemories
Response: 200

{
    "pageNumber": 0,
    "content": [
        {
            "internalId": 1,
            "createdBy": {
                "userName": "admin",
                "id": "3",
                "firstName": "Jan",
                "lastName": "Janocko",
                "role": "ADMIN",
                "email": "jan.janocko@memsource.com"
            },
            "client": null,
            "note": "not necessary to use in TM",
            "dateCreated": "2018-01-09T14:07:46+0000",
            "id": "1",
            "targetLangs": [
                "es",
                "it"
            ],
            "subDomain": null,
            "businessUnit": {
                "id": "1",
                "name": "First BU"
            },
            "sourceLang": "en",
            "domain": null,
            "name": "My new TM"
        }
    ],
    "numberOfElements": 1,
    "totalElements": 1,
    "pageSize": 50,
    "totalPages": 1
}

Create new a translation memory

POST /web/api2/v1/transMemories

{{
"name": "My new TM",
"sourceLang": "en",
"targetLangs": [
"es", "it-IT"
],
"businessUnit": {
"id": "1"
},
"note": "not necessary to use in TM"
}

Response: 201

{
    "internalId": 1,
    "createdBy": {
        "userName": "admin",
        "id": "3",
        "firstName": "J",
        "lastName": "Jan",
        "role": "ADMIN",
        "email": "jan.j@memsource.com"
    },
    "client": null,
    "note": "not necessary to use in TM",
    "dateCreated": "2018-01-09T14:07:46+0000",
    "id": "1",
    "targetLangs": [
        "es",
        "it"
    ],
    "subDomain": null,
    "businessUnit": {
        "id": "1",
        "name": "First BU"
    },
    "sourceLang": "en",
    "domain": null,
    "name": "My new TM"
}

Error Handling

If there is a problem when handling an API request, the following JSON structure will be returned. The error code will always be present; the detailed description may be null.

{
 "errorCode": "InvalidArguments",
"errorDescription": "Required argument \"password\" of type \"string\" is missing."
}

An error response can be detected by reading the HTTP status code of the response. If an error occurs, it will never be set to 2xx. The status code is 400 bad request, 401 or 403 for authentication or authorization problems. See the list of error codes for more details.

Reporting problems to Memsource support

When reporting problem to Memsource support, please make sure your report includes the following:

  • API endpoint
  • Request
  • Time (and timezone)
  • Response
  • Memsource-Action-ID of the response

For an overview of the Memsource REST API, see this introductory article.