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.
The complete API reference can be found below. This is only an example of how to read the reference.
|"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 v2, v3, 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:
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.
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.
|"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
- time (and timezone)
- the response
- the Memsource-Action-Id of the response