Memsource Legacy API

Memsource Legacy API—Technology

Important:

Memsource Legacy API will be deprecated in 2020. It is disabled for all new organization accounts created after May 7th 2019.
Please use Memsource REST API instead.

Memsource APIs are all client-server based, where Memsource is the server and third-party software or an editor is the client. HTTPS protocol is used as a transport media for communication between the client and the server, using either the GET or POST method.

The API parameters are encoded using multipart/form-data or application/x-www-form-urlencoded when submitting parameters in an HTTP body. This is a preferred way of passing parameters due to security reasons. Alternatively, you can pass parameters in a query string, but it is not recommended. Please note that files cannot be uploaded by passing parameters in a query string.

Memsource accepts only UTF-8 encoded characters in the API calls, and search/filter is not case sensitive.

The server responses are sent to the client as JSON data structures. Both HTTPS and JSON are plain, but robust and straightforward protocols. HTTPS/JSON are well-supported on a variety of environments including command-line programs written in C, enterprise systems written in Java, and modern web sites written in Python, Ruby, or Groovy.

API Example

The complete API reference can be found below. This is only an example of how to read the reference.

action: project/create    
token string  
name string  
sourceLang lang  
targetLang list(lang)  
client string O
domain string O
due  datetime O
machineTranslationType enum(MachineTranslationType) O(Google)
response: JSON    
{    
 "id": 238  // id of the project  
}    

When making an HTTP request, you have to append the action name to the base URL which has the form of https://cloud.memsource.com/web/api/VERSION_NUMBER, where VERSION_NUMBER is replaced with v2v3, etc. The table below the action name describes the list of parameters for the action. The first column contains the names of the parameters. The second column specifies data types, and the third column may contain additional flags describing a parameter:

  • M(value) - only for lists, the maximum number of items that can be passed in the list
  • N - "null" can be used to explicitly set the data to null (useful in edit API calls)
  • O - optional parameter
  • O(value) - an optional parameter with the default value

The URL and parameters may look like the following:

https://cloud.memsource.com/web/api/v2/project/create
token=30-d987eb187ecf4282049dd7e830c14f57&name=My%20Project&sourceLang
=en&targetLang=de&targetLang=ru&client=My%20Client

When all the parameters are correct and the user is authorized to make the call, the 200 code is returned in the HTTP status code, and some additional data are usually returned. In this case, it will be a JSON structure. In other API calls, it may be the binary data of a downloaded file.

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 200. The status code is 400 for wrong or missing parameters, and 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 API endpoint
  • parameters
  • time (and timezone)
  • the response
  • the Memsource-Action-Id of the response

Memsource also has a REST API. To find out more, see our Introduction to Memsource REST API and Memsource REST API - Authentication.