YOUR_API_KEY with one of your actual keys.
1. X-JoJAPI-Key Header
Send your API key via the customX-JoJAPI-Key HTTP header.
Example:
2. Authorization Header
Pass your API key directly through theAuthorization header without any prefix.
Example:
3. Bearer Token
Use theAuthorization header with the Bearer scheme followed by your API key.
Example:
4. Basic Token
Send your API key using HTTP Basic Authentication: theAuthorization header contains the word Basic, followed by the base64 encoding of YOUR_API_KEY:YOUR_API_KEY — the key doubles as both username and password.
Example:
Note:
To encode:
echo -n "YOUR_API_KEY:YOUR_API_KEY" | base64
Which Method Should I Use?
All four methods are interchangeable and equally secure: the gateway validates your key and strips the credential header before forwarding the request, so the API provider never sees your JoJ API key — whichever method carried it.- X-JoJAPI-Key is the canonical choice. It uses a dedicated header, so it never conflicts with anything else in your request.
- Bearer is the industry-standard token scheme. Use it with anything that offers a standard “API token” or “Bearer token” field — HTTP clients, Postman collections, no-code platforms (Zapier, Make, n8n), AI agent frameworks — or when migrating existing clients that already send
Authorization: Bearer, so only the base URL and the token need to change. - Basic exists for legacy software and integrations that can only send username/password credentials; the key doubles as both.
- Authorization (raw) is a terse fallback for tools that let you set the header’s value but not its scheme.
If the API you call uses theAuthorizationheader for its own authentication, send your JoJ key viaX-JoJAPI-Key. The gateway recognizes its own keys by thejk_prefix: anAuthorizationheader that doesn’t carry ajk_key is passed through to the API untouched, so both credentials can travel in the same request. For the same reason, gateway authentication viaAuthorizationand the API’s ownAuthorizationheader can’t be combined — there is only one such header.
Projects
Every API key belongs to a project. A project groups the keys of one app, client or environment, so you can find them quickly, see their usage together and keep the list tidy as it grows. Manage them from Workspace → Projects & API Keys: the project switcher shows one project’s keys or all of them, and the menu next to it renames or deletes the selected project.- Default project. Your first key is in a project named Default, and keys created before projects existed were placed there too. You can rename it like any other project.
- Choosing a project. Create API Key asks which project the key belongs to, along with an optional name. A key stays in that project for good: keys can’t be moved, so a project’s usage history is always the history of its own keys. To reorganize, create a key in the other project and delete the old one once nothing uses it (the Last used column tells you).
- Limits. Up to 25 projects per account and 50 API keys per project. Deleted keys don’t count.
- Deleting a project. A project can be deleted once it has no keys left. Its usage stays in your analytics, marked as deleted.
Restricting a Key to Specific APIs
By default, an API key works on every API you are subscribed to. You can limit a key to a specific set of APIs from Workspace → Projects & API Keys: click API access on a key, turn off Access to all APIs, and tick the APIs the key is allowed to call. When a key is restricted, the gateway rejects any request it makes to an API outside its allowed list with a403 response. This is useful for separating environments, sharing a narrowly-scoped key with a teammate, or limiting exposure if a key is ever leaked. You can change a key’s access — or return it to all APIs — at any time.
Hiding JoJ API Headers
Every response the gateway returns carries its own response headers: usage and remaining quota per billable object, your balance on pay-as-you-go plans, and the deployment that answered. When another platform calls APIs with your key — a bridge that lists an API elsewhere, or a reseller that passes responses on to its own customers — you may not want those headers to travel on. From Workspace → Projects & API Keys, open a key’s menu, choose JoJ API headers and turn on Hide JoJ API headers. Responses to that key then carry none of the gateway’s headers:X-Jojapi-<slug>-Used,X-Jojapi-<slug>-RemainingandX-Jojapi-<slug>-Total-UsedX-Jojapi-User-BalanceandX-Jojapi-Spent-BalanceX-Jojapi-Deployment, andX-Jojapi-Gateway-Responseon gateway-generated responses
APIs still served by the classic gateway send these headers regardless of the setting.
Per-Key Analytics & Last Used
Every request is attributed to the API key that made it:- Analytics (Workspace → your subscription → Analytics): the Project and API Key filters scope every chart — requests, usage, latency, spent balance — to one project or a single key. Under the chart, Usage by project and Usage by API key break down requests, share of traffic, average latency and pay-as-you-go spend over the selected period.
- Request logs: each entry shows which key made the request and its project, and the list can be filtered to one key.
- Last used (Workspace → Projects & API Keys): each key shows when it last made a request. Requests rejected for quota or access reasons count too — the column answers “is this key still in use anywhere?”, which makes it a reliable check before deleting a key.
Per-key attribution began on August 23, 2026. Usage from before that date appears aggregated as Before key tracking.
