Every authenticated API endpoint lives under the base URL
https://apis.cativalab.digital/tenant/api/v2. You prove who you are with the Authorization: Bearer cativa_live_... header on every call.What an API Key is
An API Key is a long-lived credential that represents your application inside a tenant. Unlike OAuth, there’s no user in the middle: the key already carries the tenant and permission context. Each key belongs to a single tenant, so you never need to manually say which community you’re calling.1
Create an API Key in the Console
In the Console, go to Developers > API Keys > Create.Give it a descriptive name (e.g. Copy it and store it in a secrets vault. You can’t view it again. If you lose it, generate a new one and revoke this one.
Sync HubSpot prod) and click Create. The key is shown only once, in this format:2
Export the key as an environment variable
So you don’t paste the key into every command, store it in an environment variable. The examples below read from
CATIVA_API_KEY.3
Make your first request
Fetch the data of the user associated with the key. This is the canonical endpoint to validate a credential: if it returns The response looks like this (authoritative schema in the API Reference):
200, your key is valid and points to the right tenant.The tenant is resolved automatically from the key, with no extra header. Each API Key belongs to a single tenant, so every authenticated call already arrives with the right context. Use
customer in the response as a sanity check that you’re on the right tenant.4
Make a real operation
With the key validated, call any authenticated endpoint the same way. For example, fetch a user by Notice the Node example already logs
id:traceId on error. Adopt that habit from your very first request. See Errors and rate limits for the full format.5
That's it
From here you call the entire authenticated catalog with the same
Authorization: Bearer cativa_live_....The public endpoint catalog is published in the API Reference tab. It includes user creation and lookup (
/admin/users), badge assignment (/admin/membership/badges), and the coin wallet (/monetization/wallet). Browse the tags to see each request’s schema.Best practices
Don't commit keys
Don't commit keys
Use environment variables (e.g.
CATIVA_API_KEY) or a secrets vault (Doppler, 1Password Secrets, AWS Secrets Manager). Never commit keys to your repo or expose them in frontend code.Name your keys
Name your keys
Use descriptive names (
Sync HubSpot prod, CI build, Migration 2026-Q2). It makes it easier to audit and revoke the right one.Rotate periodically
Rotate periodically
We recommend rotation every 90 days. If a key leaks, revoke it immediately in the Console and generate a new one.
Handle errors and retry correctly
Handle errors and retry correctly
401 Unauthorized means the credential is invalid or revoked, don’t retry without generating a new one. 403 Forbidden indicates a valid key without permission for the resource. For 429 and 5xx, apply backoff. Always log the traceId returned in the error body. Details in Errors and rate limits.Next steps
Sign in with Cativa
For interactive-user flows, use OAuth 2.0 with PKCE instead of an API Key.
Errors and rate limits
The RFC 7807 error format, the code catalog, and how to handle
429.Badges as Permissions
How assigning badges provisions access to groups and courses.
Webhooks
Receive community events without polling the API.
