Pricing

Three plans, month to month, cancel whenever. Limits are requests per UTC day and reset at midnight. The full API is available on every plan, including free — the tiers differ only in volume.

free

$0
500 requests / day

Enough for a side project or a small internal tool running comfortably in production. No card, no trial clock.

starter

$9
/ month · 10,000 requests / day

Production applications with steady traffic. Batch calls make this go a long way: one request per hundred operations.

pro

$29
/ month · 100,000 requests / day

Platforms, high-volume batch work, and anyone doing serious reconciliation runs. If you need more than this, write to us.

Create a free key

Lost keys aren't recoverable (we store only a hash). Rotation is self-service: POST /v1/rotate with your email revokes the old key and mails you a new one.

Upgrade

Checkout and card handling are Stripe's, on their servers. We never see the number. Cancel from the receipt email or by writing to us; access drops to the free tier at period end, and the final month is refunded in full if we ever discontinue the service.

Questions a careful buyer asks

What happens when I hit the limit?

429, with headers telling you where you stand. Over-limit requests aren't billed against your count. Nothing breaks at midnight — the counter resets.

Is the data actually right?

It's regenerated from the MIT-licensed python-holidays project and cross-verified against independent sources on every refresh; the dataset version is public at /health. When a calculation would leave the 2020–2035 range we return an error rather than a wrong answer. Details in the provenance notes.

What if the service shuts down?

The wind-down terms are written already: sixty days' notice, final month refunded, the dataset downloadable, and named alternatives in the notice. We'd rather promise it now than improvise it later.