account
Sign-in and the dashboard
Passwordless sign-in, every control on the account page, and what rotating or cancelling a key actually does.
1Signing in
Enter an email at /login, follow the link it sends. There is no password to choose, forget or leak.
In depthWhy it exists, what it is not, what people get wrong
There is no separate sign-up. The first time you give an address, an account exists; after that the same flow signs you in. You do not need to have bought anything to have an account, and creating one is how you get the free key.
There is no password store and no session table. The link carries a one-time token; following it exchanges that token for a signed session value in a cookie, which the server verifies cryptographically rather than by looking it up. So there is nothing in a database that could be stolen and replayed as a password, and nothing to reset.
Exact contractTypes, defaults, ranges, errors, edge cases
| Step | URL | What happens |
|---|---|---|
| 1 | /login | You enter an email. The page posts to its own /api/auth/request. |
| 2 | POST /public/auth/request | The API mints a one-time token and mails the link. Nothing is stored against the address until you follow it. |
| 3 | the link in the email | Lands on /auth/verify. |
| 4 | /auth/verify | Exchanges the token, sets the joa_session cookie, redirects to /dashboard. |
| 5 | /dashboard | Reads the cookie, calls GET /public/auth/keys with it, renders your keys. |
- Cookie
joa_session, signed, 30 days. HTTP-only.- Sign out
- Clears the cookie. The Sign out control is at the top right of the dashboard.
- A cookie that no longer verifies
- Falls through to the signed-out view rather than rendering an empty account page — an empty page would look like your keys had been deleted.
- Checking one key without signing in
- The signed-out dashboard has a Check a key box: paste a secret and it reports that key's status only.
2Every control on the dashboard
One card per key, showing plan, status, dates, records used, request limits and entitlements — with rotate and cancel on the card itself.
In depthWhy it exists, what it is not, what people get wrong
| Row on the card | What it means |
|---|---|
| Secret | Your key's name (if you gave one) and its non-secret prefix, plus a badge: LIVE, or the status. |
| Plan | The plan's display name, read from the live plans table rather than a hard-coded map. |
| Status | Active, Awaiting payment, Cancelled, Expired or Revoked. |
| Issued | When the key was created. |
| Renews / Access until / Expires | Driven by whether the plan recurs. A subscription says Renews; a cancelled one says Access until; a non-recurring plan says Expires. |
| Last used | When a request last arrived on this key. |
| Records this month | Used of allowance — the number that matters. unlimited in <CC> on a country-locked key; unmetered on a grandfathered one. |
| Includes | delta feed, bulk export, or REST endpoints when neither. |
| Request limits | Per day and per minute, labelled as burst protection so it is not mistaken for the licence. |
| Used today | Requests today, against the per-day ceiling. |
Both the records row and the request-limits row carry a raise this ↓ link to the upgrade ladder further down the page, and a rate-limit error message links straight to the same anchor.
Exact contractTypes, defaults, ranges, errors, edge cases
- Create a free key
- Shown when the account has no keys. Creates an Explore key; the secret is displayed once.
- Rotate secret
- On every usable key. Issues a new secret and keeps the key's identity, plan, meter and history.
- Cancel
- On recurring keys only. Ends the subscription at the end of the paid period — see Cancelling.
- Upgrade ladder
- At
#upgrade. Measured against the best plan you hold, not the first key in the list, so holding Explore and Growth does not offer you Growth again. - Upgrade banner
- Above the fold, on free plans only. It exists because the first upgrade button used to sit more than a screen down.
- Billing
- Links to
/contact?topic=billingfor invoices and billing questions. - Sign out
- Top right. Clears the session cookie.
3Rotating a key
Issues a new secret for the same key. Plan, meter, usage history and entitlements all stay attached — it is not the same as creating a new key.
In depthWhy it exists, what it is not, what people get wrong
Rotate when a secret has leaked, or when you have lost it. Because secrets are stored as SHA-256 hashes, nobody can recover the old one for you, and rotation is the supported answer rather than a support email.
The distinction from creating a new key matters for the meter: a new key starts a fresh monthly allowance and a fresh usage history, while a rotated key keeps both. If you want a clean environment, create; if you want the same entitlement with a different secret, rotate.
Exact contractTypes, defaults, ranges, errors, edge cases
Rotation happens through the website session (POST /public/auth/keys/{id}/rotate), not through the API key — so an attacker holding a leaked key cannot rotate it away from you. Revocation (.../revoke) is permanent, and the key row is kept rather than deleted because usage attached to it has to stay auditable.
A revoked or rotated-away secret fails exactly like one that never existed: 401, same body. Probing cannot distinguish “was valid once” from “never was”.
4Cancelling
One control, on the key's own card. No email, no notice period — access continues to the end of the period you paid for.
In depthWhy it exists, what it is not, what people get wrong
Cancelling stops the renewal; it does not cut off the key you have already paid for. The card then shows Access until with the date, and the key keeps working until then. There is a resume control if you change your mind before it lapses.
Cancelling is not the same as revoking. Revoking kills the secret immediately; cancelling ends the billing relationship at the period boundary and leaves the key usable in the meantime.
Exact contractTypes, defaults, ranges, errors, edge cases
| Action | Effect on the secret | Effect on billing | Where |
|---|---|---|---|
| Cancel | Keeps working until period_end | No further charges | The key's card on /dashboard |
| Resume | Unchanged | Renewal restarts | Same card, after cancelling |
| Rotate | Old secret dies immediately, new one issued | None | Same card |
| Revoke | Dies immediately and permanently | Does not itself stop a subscription — cancel as well | Same card |
For an invoice, a credit note, or anything the dashboard does not cover, /contact?topic=billing reaches a person. See Billing.
This page was rendered 11 September 2026, 05:53 UTC. Every figure on it comes from the endpoint named beside it, and every published request is re-sent against the live API before this site is allowed to build. If something here is wrong, the thumbs-down above reaches a person.