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
Enough for a side project or a small internal tool running comfortably in production. No card, no trial clock.
starter
Production applications with steady traffic. Batch calls make this go a long way: one request per hundred operations.
pro
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.