Docs

Quick start

BillCurfew watches spend on keys you already have. It is not a proxy. You do not change code, and prompts are not requested or stored. The endpoint list is on security. Prices are on pricing.

1. Create the right key

Paste an admin or management key. Do not paste the inference key your agent uses.

  • OpenAI. An organization admin key, created under organization settings. A project inference key can call the model and cannot list organization usage. OpenAI admin APIs
  • Anthropic. An Admin API key from an organization account. It starts with sk-ant-admin. Only an organization member with the admin role can create one. An individual Claude Console account is rejected. Anthropic Admin API
  • OpenRouter. A management key, not an inference key. The management key is what lists keys and reads usage_daily in dollars. OpenRouter management keys

2. Connect it

After the account exists, open Providers. Choose OpenAI, Anthropic, or OpenRouter, paste the key, and save. The key is encrypted with AES-256-GCM before it is stored. Disconnecting the provider deletes that secret. Free is one provider and one watched key. Solo, Team, and Agency raise those limits. See pricing.

3. Cap, spike, alert

A daily cap uses the provider’s dollar figure when they publish one (OpenAI costs, OpenRouter usage_daily). Anthropic’s usage report returns tokens, so that dollar figure is an estimate from published token prices. A spike rule compares the last window you set with the trailing baseline and emails you in that same check. Email alerts are on every plan. Slack is on Solo, Team, and Agency.

4. How often it checks

Spend is checked about every five minutes. The call is GET /api/cron/poll. The schedule in vercel.json is a daily backup at 12:00 UTC, not that five-minute check. A loop can spend until the next check. BillCurfew does not block the next request.

5. Kill a key

A manual kill works on every plan, including Free. You confirm it in the product.

  • OpenAI. Type DELETE. The project API key is deleted. That cannot be undone.
  • Anthropic. Type DISABLE. The key is set inactive. You can turn it back on. Delete at Anthropic is a different, permanent action.
  • OpenRouter. Type DISABLE. The key is patched to disabled. You can turn it back on. Archiving is permanent.

Auto-kill is on Solo, Team, and Agency only, and it stays off until you turn it on. On OpenAI, that switch warns you that a trip deletes the key.