Skip to main content
The KODE API uses OAuth 2.0 client credentials with a signed JSON Web Token (JWT) client assertion. Your service proves its identity with a private key instead of sending a reusable secret.

How authentication works

  1. Sign a short-lived JWT client assertion with the private key registered for your client ID.
  2. Exchange the assertion for an access token at the token endpoint.
  3. Send the access token in the Authorization header of each API request.
  4. Request a new token before the current one expires.
Keep private keys in an approved secrets manager. Never place private keys or access tokens in browser code, mobile apps, logs, or source control.

Get your credentials

You receive a client ID with your KODE project delivery. Contact your KODE project team if you have a client ID but cannot locate the matching private key.
The exact client assertion claims and credential retrieval steps are being finalized. Until then, follow the instructions supplied with your project delivery.

Create a client assertion

Sign the assertion with your private key, following the JWT bearer profile in RFC 7523. Create a new, short-lived assertion for each token request. To confirm supported signing algorithms, call Get authorization server metadata. This endpoint does not require authentication.

Request an access token

Send the assertion to Create an access token as form data:
The response includes access_token and expires_in. Use the returned lifetime instead of assuming a fixed value.

Use the token

Send the token as a Bearer token:
To try endpoints in the browser, paste the token into the Authorization field of any API reference page.

Renew and revoke tokens

Cache the token and reuse it until it nears expiration, then request a new one. When multiple service instances share one client ID, coordinate renewals so each instance does not request its own token. If a token is exposed, call Revoke an access token with a new client assertion.

Resolve authentication errors

Last modified on November 10, 2026