Authentication
All API requests must be authenticated using a JWT (JSON Web Token) signed with the private key we provide for your API key.
Each client is issued:
- An API key name — this identifies your integration.
- An ES256 private key — used to sign JWTs.
- One or more
systemvalues — depending on which systems your API key is authorized to act on.
Your service should generate a short-lived JWT in the Authorization header of every request:
Requests without a valid JWT will be rejected with 401 Unauthorized.
JWT Requirements
The JWT must satisfy all of the following:
Signing Algorithm
-
Must be signed using ES256
-
Must be signed using the private key associated with your API key.
The server will use the stored public key to verify signatures.
Headers
Claims
When to include sub
If your API key is associated with multiple systems, you can explicitly set:
If your API key is associated with only one system, you should omit sub. In that case, the server will automatically assign the only system linked to your API key.
Examples
Here is a code snippet in Typescript. Alternatively, you can use our client SDK which handles signing JWT token.

