Getting Started

In this guide, we’ll show you where to send your requests, how to authenticate them, how many requests you can make and what each error code means.

Base URL

Version Base URL
v2 (latest) https://publicapi.salus-suite.com/api/v2
v1 https://publicapi.salus-suite.com/api/v1

Access our Swagger documentation here: https://publicapi.salus-suite.com/index.html.

Authentication

Authenticate using an API key. Include your key in an HTTP header with every request:

X-API-KEY: YOUR_API_KEY

Create and manage your keys from Settings > Company Settings > API - see API Keys.

A request with no X-API-KEY header, or with a key that isn’t recognised, receives 401 Unauthorized. A Read Only key that attempts to create, update or delete receives 403 Forbidden.

Every API key acts as an Organisation Admin that you choose when creating the key. Changes made through the API are recorded against that user - see API Keys.

Rate limits

The API accepts 10 requests per second for each API key. Anything beyond that receives a 429 Too Many Requests response.

Paged responses

v2 collection endpoints return one page at a time. Use page (default 1) and pageSize (default 50, maximum 200):

GET /api/v2/projects?page=2&pageSize=100

The rows come back in items, alongside a pagination object holding page, pageSize, totalItems, totalPages, hasNextPage and hasPreviousPage.

Errors

The API uses conventional HTTP response codes to indicate the success or failure of a request:

  • 200 OK - the request was successful.
  • 201 Created - a create request succeeded. The response body holds the new resource and the Location header points to it.
  • 400 Bad Request - there was an issue with the request (missing parameters or invalid data). Validation failures include an errors object listing the problem fields.
  • 401 Unauthorized - your API key was missing or incorrect.
  • 403 Forbidden - your API key is Read Only and the request would have changed data, or the endpoint belongs to a module your organisation is not licensed for.
  • 404 Not Found - the requested resource does not exist.
  • 409 Conflict - the request conflicts with the current state of the data, for example an action tag name that is already in use.
  • 429 Too Many Requests - you have hit the rate limit. Try again later.
  • 500 Internal Server Error - a problem occurred on our server. Try again later.

v2 error responses use the standard problem details format (application/problem+json) with status, title and detail fields:

{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.10",
  "title": "Conflict",
  "status": 409,
  "detail": "An action tag named \"Urgent\" already exists"
}