Authentication¶
Every request must include an API key. Two equivalent options:
Authorization: Bearer rmh_live_xxxxxxxxxxxxxxxxxxxxxxxx
X-API-Key: rmh_live_xxxxxxxxxxxxxxxxxxxxxxxx
API keys authenticate as your user account. Writes are scoped to your own account; you cannot act on behalf of others.
Key security¶
Keys are random 256-bit secrets formatted
rmh_live_<base62>.The server stores only a SHA-256 hash — the plaintext is shown once at creation and can never be retrieved again. The dashboard shows a non-secret 4-character suffix so you can tell keys apart.
Treat a key like a password. Keep it server-side; never embed it in a public client, repo, or browser bundle you don’t control.
Scopes: each key carries granular permissions — see Scopes. Grant the least privilege a given integration needs.
Expiry: a key may be created with an expiry date; expired keys are rejected exactly like revoked ones.
Rotation: rotate a key from
/developerto issue a new secret while keeping the same key record — the old secret stops working immediately.Revocation: revoke a key any time from
/developer; it takes effect at once.If a subscription lapses or the account is suspended, all of that account’s keys stop working until the subscription is restored.
CORS and browser clients
Cross-origin requests are permitted, and authentication is by bearer key rather than cookies — so the API is not a CSRF surface. That is not a licence to ship a key in a public browser bundle: anything in client-side JavaScript is readable by anyone who loads the page. Keep keys on a server you control.