Logo

Introduction

Emsisoft provides a public API for customers and partners. The Emsisoft API is built on HTTP and:

  • Uses built-in HTTP capabilities for passing parameters and authentication. It is resource-oriented and uses attribute routing.
  • Responds with standard HTTP response codes to indicate errors. Also includes respond errors in a standardized format.
  • Consumes and returns JSON.

Precondition


Before you can start using the API you need to enable API access in your user profile in MyEmsisoft. Go to the API access section and check that the API is enabled.

Authentication


Each API request must include an API-Key header and Accept header. Requests with a request body (typically PUT and POST requests) must also include a Content-Type header.

GET https://api.emsisoft.com/license?product=EAM&license=XXX-XXX-XXX-000
Api-Key: DA46E832411D45C532C5AA4979C399D2
Accept: application/json

API keys are bound to Emsisoft user accounts, which means that API access is limited to what you can do via the MyEmsisoft UI. Some APIs are only available for registered Emsisoft partners (creating licenses, adding MSP billing, partner policy- and reporting templates, etc.).

Some requests require you to additional permissions.


Errors


The API returns standard HTTP response codes. For non-success conditions the error response contains a single JSON object. This object has a name/value pair named "error" with name/value pairs with the names "code", "message" and "target".

Common error example
{
  "error": {
    "code": "LogicError",
    "target": "WorkspaceNameAlreadyInUse",
    "message": "Workspace name already in use."
  }
}

Validation error example
{
  "error": {
    "code": "ValidationFailed",
    "target": "FieldName",
    "message": "'Field Name' is not in the correct format."
  }
}