Base URL
Every endpoint lives under one versioned base URL, over HTTPS:Two ways to reach the API
Mint a key
Create keys in the dashboard under Settings → General → API keys.1
Open the API keys card
Go to Settings → General and find the API keys card.
2
Create a key
Give the key a name you will recognize later (for example
Production server or Approval bot)
and select Create key.3
Copy it now
The full key is shown once, right after you create it. It starts with
rvnl_. Copy it and store
it somewhere safe, like a secret manager. For your security, Revinel never shows it again. If you
lose it, revoke the key and create a new one.Send the key
Pass the key in the HTTPAuthorization header as a bearer token on every management request:
cURL
{workspaceId} in the path must match the workspace the
key was created in. A key for one workspace cannot read or change another.
Scope and least privilege
A key acts with the full permissions of the member who created it, within its one workspace. There are no read-only or per-resource scopes yet, so lean on separate keys instead:- One key per integration. Give each bot, CLI, or service its own named key. You can then revoke one without breaking the others, and an audit shows which integration did what.
- Rotate by create-then-revoke. Create the new key, deploy it, then revoke the old one on its row in the dashboard. A revoked key stops working immediately for anything still using it.
- Keep it server-side. See the warning above.
What needs a key
Only the management endpoints require a key. The anonymous SDK surface (ad serving, tier serving,
impression and click tracking, and checkout) works without one, because it is meant to run in the
browser on your own site. Do not put an API key in that client-side code.
Rate limits
Each key gets a generous budget of 120 requests per minute. Over the limit, the API returns429 TOO_MANY_REQUESTS with a Retry-After header (the number of seconds to wait). Back off and
retry once it passes. See Rate limits for every limit on the API.
Errors
Every error is JSON with a machine-readablecode, the HTTP status, and a human-readable message
(see the error reference). The ones specific to authentication: