REST API¶
Easy8 provides a "REST-like" HTTP API that returns JSON or XML. The API reference is available in your Easy8 instance at /easy_swagger (see API reference).
Authentication¶
For authentication, use your Easy8 API key. You can obtain the API key in Easy8 user account settings.
Easy8 accepts the API key in any of these forms:
X-Redmine-API-Key: <api-key>headerX-Easy8-API-Key: <api-key>headerAuthorization: Bearer <api-key>headerkey=<api-key>query parameter
X-Easy8-API-Key is an Easy8-specific alias for the existing X-Redmine-API-Key header. The bearer form accepts an
existing Easy8 API key; JWT bearer authentication remains supported where it is available.
Examples:
Base URL¶
The API is served from the address of your Easy8 instance, for example https://demo.easy8.com/issues.json. On-premises, use the address of your server. An administrator must enable the REST API in the administration settings, otherwise requests are rejected.
When to use the REST-like API and GraphQL¶
Use the REST-like API for server-to-server integrations, where data moves from your system to Easy8 and back.
GraphQL serves the Easy8 front end. Use it if you build your own front-end plugin; see GraphQL API.
Rate limits¶
Rate limits apply in production and are counted per client IP address:
- API read requests (JSON or XML format): 150 per minute
- API write requests: 50 per minute
- Exports (atom, pdf, csv, doc, xlsx, ics): 10 per 5 minutes
A throttled request receives HTTP status 429 with the headers RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. RateLimit-Reset is the Unix time when the current window ends; retry after it.
On-premises administrators can change the limits with the environment variables EASY_RACK_ATTACK_API_READ_LIMIT, EASY_RACK_ATTACK_API_WRITE_LIMIT and EASY_RACK_ATTACK_EXPORTS_LIMIT. Set the matching *_DISABLED variable, or EASY_RACK_ATTACK_DISABLED, to switch throttling off.
Request and response formats¶
The API sends and receives JSON and XML. Specify the format in the path of every call:
- JSON:
/easy_contacts.json - XML:
/easy_contacts.xml
For POST and PUT requests, send the request body in the same format.
Status and error codes¶
The API returns standard HTTP status codes:
401UNAUTHORIZED: the credentials are missing or incorrect403FORBIDDEN: you do not have access to the resource404NOT FOUND: the resource does not exist406NOT ACCEPTABLE: the requested format is not supported422UNPROCESSABLE ENTITY: the request is well-formed but cannot be processed, for example due to validation errors429TOO MANY REQUESTS: you exceeded the rate limit