Your first request

If you have an API key that allows basic authentication then you can start using the API by simply entering the following URL in your browser:{yourkey}

Replace {yourkey} with the API key that you can request from us.

You will be asked for a username and password for which you use your normal Memonic credentials. The response to this request contains a user list. Specifically at the moment it includes just one: the logged in user. So this request should be used by your API if you want to log in a user and get her user id.

API endpoint and versioning

The main endpoint for the Memonic API is

To ensure compatibility when we change the API, the whole API is versioned using a path prefix. The currently active version is v2 so all the resources start below

Our promise is that within one API version we will never modify expected requests and responses in a backward-incompatible way. We may hovever add new tags (for XML) and properties (for JSON) to the output. So your application should gracefully handle that case.

We may deprecate and eventually remove API versions in the future. We will inform all registered developers of such actions. Additionally if an API version is deprecated, we will add the response header X-Deprecated: True to all API responses.


The API is provided in two formats: application/json and text/xml. To specify which response format you want, you have two possibilities:

  • Accept request header: Specify the media type, either application/json or text/xml
  • Use a file extension: Specify either .json or .xml after the official resource URL, right before the query string parameters. Example:{yourkey}


All error conditions are communicated using HTTP status codes. So make sure you always check the returned status code. A successfull request will have a status code below 400.

Error responses will usually contain a message explaining the error condition. These messages are not yet translated, so they are not meant for directly displaying to the user. To simulate an error, you can request a resource using an invalid API key:


Some API output is language-dependant. This applies for example to quota messages, permission values or the names of built-in Sets such as the Inbox or the Trash. To detect the language, the API uses the Accept-Language request header. You can pass in a coma-separated list of acceptable locales.

Currently the following locales are supported: de (Deutsch), en (English), es (Español), fr (Français), it (Italiano), ja (日本語), ko (한국어), ru (Русский), zh_CN (中文(简体))