Runs onWrit Cloud
On this page
Hand out access, keep control.
A consumer key — prefix csk_ — is what your customers call your published endpoints with. Each key carries its own limits and dies alone; and it opens only the /v1/{slug}/… gateway, never your account’s /api surface.
key ▸ minted by you
Minted by you, held by your customer.
You mint csk_ keys for your own customers and partners. The full secret is shown once, at mint — Writ stores it hashed and cannot show it again. Lists, logs and analytics identify a key by its key_prefix: the literal first 8 characters.
call ▸ same route
Same route, a consumer bearer.
Callers hit the identical endpoint — they just send their csk_ key where your wt_ key never travels:
curl -X POST https://api.usewrit.app/v1/acme/price-check \
-H "Authorization: Bearer csk_77a2...0b4" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/product/42"}' limits ▸ per key
The controls that travel with a key.
Every limit is a field on the key itself, so two callers never share a fate:
| Field | Default | What it does |
|---|---|---|
allowed_endpoint_ids | NULL | The endpoints this key may call. NULL = all of your endpoints. |
rate_limit_per_minute | NULL | 1–10,000 requests per minute. NULL = the endpoint’s override, else 60/min. |
monthly_quota | NULL | Calls per month for this key — monthly_calls_used counts against it and resets at quota_reset_at. NULL = only your plan’s org-wide quota applies. |
expires_at | NULL | Optional hard expiry. NULL = the key does not expire. |
lifecycle ▸ three states
Suspend is reversible. Revoke is not.
A key is in exactly one state:
| Status | What it means |
|---|---|
active | The key authenticates calls, inside its limits. |
suspended | Temporarily off — resume it later without re-issuing anything. |
revoked | Permanent. A revoked key never comes back. |
Rotation ships with a grace window: after you rotate, the previous key keeps working until rotation_grace_until — your customer swaps credentials without an outage.
plans ▸ how many keys
How many keys a plan can hold.
Non-revoked keys count against your plan’s max_consumer_keys limit:
| Plan | Consumer keys |
|---|---|
| Free | 10 |
| Starter | 20 |
| Pro | 50 |
| Growth | 200 |
| Scale | Unlimited |
| Enterprise | Unlimited |
faq
Questions, answered.
How is a consumer key different from a wt_ key?
What rate limits can I set?
Can a consumer call any of my endpoints?
How do I rotate a key without breaking my customer?
Is this how the marketplace works too?
go ▸ distribute
Distribute your first key.
Publish an endpoint, mint a csk_ key, and share access without sharing secrets.