Developer access
API keys
Anonymous access to the public API stays free, with a per-IP daily cap. A free Developer key raises that ceiling to 5,000 requests/day and lets us tell your traffic apart from anonymous scraping instead of throttling both the same way. See bulk access for higher-volume paid tiers and full-corpus snapshots.
Get a free key
Enter your email — we'll send a sign-in link. No password, no account form. First sign-in mints your Developer key automatically.
Authenticate
Send the key as a Bearer token. X-Api-Key is also accepted for clients that can't set Authorization. Never pass a key as a query string — query strings land in logs, Referer headers, and shared URLs.
curl -H "Authorization: Bearer bc_live_..." \
https://api.billcommons.org/api/v1/bills?jurisdiction=FLimport httpx
resp = httpx.get(
"https://api.billcommons.org/api/v1/bills",
params={"jurisdiction": "FL"},
headers={"Authorization": "Bearer bc_live_..."},
)
resp.raise_for_status(){
"mcpServers": {
"billcommons": {
"url": "https://mcp.billcommons.org/mcp",
"headers": { "Authorization": "Bearer bc_live_..." }
}
}
}Quota headers
Every keyed response carries both the per-minute burst budget and the daily quota — no need to discover your limit by getting throttled.
| Header | Meaning |
|---|---|
| X-RateLimit-Limit | Per-minute burst ceiling for your plan. |
| X-RateLimit-Remaining | Burst requests left in the current minute. |
| X-RateLimit-Reset | Seconds until the burst window resets. |
| X-Quota-Limit | Your plan's total daily request limit. |
| X-Quota-Remaining | Total requests left today. |
| X-Quota-Reset | Unix timestamp of the next UTC midnight. |
| X-Quota-Heavy-Limit | Daily limit for heavy routes (bill list, full bill, versions, compare, search). |
| X-Quota-Heavy-Remaining | Heavy-route requests left today. |
| X-Plan | Your current plan (developer, builder, scale, enterprise). |
Past your daily quota, requests get 429 with a Retry-After header (seconds until the next UTC midnight) and an error.code of quota_exceeded. An unknown or revoked key gets 401 invalid_api_key.
Rotation and revocation
From your account page, rotate a key to mint a successor while the old one keeps working for 24 hours (so a deploy can roll without downtime), or revoke a key immediately if it leaks. We will never show a key again after it's revealed — if you lose it, rotate.