Authorization header. This page walks you through finding your base URL, minting a key, and using it correctly.
Finding your base URL
Before you make any API calls, locate your personal deployment URL. Open Settings → API & MCP in the OneRep app, where your base URL is displayed. Copy it directly from the app rather than trying to construct it by hand.Creating an API key
1
Open Settings → API & MCP
In the OneRep app, navigate to Settings → API & MCP. Any existing keys are listed here, and this is also where you revoke them.
2
Name your key
Give the key a name that describes where it will live, for example
home-dashboard, claude-assistant, or tuesday-lunch-script. A descriptive name makes it obvious which key to revoke if something goes wrong.3
Choose a scope
Select Read only, Read & write, or Full access depending on what your integration needs to do. The scopes are a ladder rather than a set of switches: write includes read, and full access includes both. Read only is the safer default, since most integrations only ever read. You cannot change the scope after the key is created, so pick carefully.
4
Copy the key immediately
After the key is created it is displayed exactly once. Copy it now and store it somewhere secure, such as a password manager or an environment variable in your deployment. OneRep stores only a hash of the key and cannot show it to you again.
Using your key
Pass the key as aBearer token in the Authorization header on every request:
Content-Type: application/json:
401 unauthorized.
Key properties
- Format: Keys look like
onerep_sk_… - Shown once: The value is displayed only at creation; store it immediately
- Stored hashed: OneRep stores a SHA-256 hash, so nobody can read the original key back out
- Limit: You can have up to 10 live keys per account at any time
- Revocation: Open Settings → API & MCP, find the key by name, and revoke it. Revocation takes effect on the next request
Scopes
Every key carries a scope that determines which routes it can call.
Read-only enforcement is strict: a
POST route called with a read-only key returns 403 insufficient_scope immediately, before any work happens. There is no way to persuade a read-only key to write.
Scope cannot be changed after a key is created. If you need a different scope, revoke the existing key and mint a new one.
Rate limits
Rate limits apply per key, not per account, so separate integrations do not compete with each other.
Limits run in a fixed window. When you exceed a limit, the API responds with
429 rate_limited and a Retry-After header indicating how many seconds to wait. Retry on 429 and server errors (5xx); do not retry on client errors (4xx).