Docs

API reference

Every endpoint and every query parameter, generated from the API's own OpenAPI document. Nothing on this page is typed by hand except the explanatory notes, so it cannot describe a parameter the API does not have.

16 endpoints · generated 2026-07-30 · openapi.json · Back to docs

calendar

GET /v1/calendar

Calendar

The endpoint most callers want. One window, up to 20 jurisdictions, inheritance resolved and substitution applied. It is also the only endpoint that takes an arbitrary window, so it is the only one your plan's window limit applies to.

ParameterTypeRequiredNotes
jurisdictionsstringyesComma-separated, up to 20 per call. Subdivisions inherit their country's calendar, so DE-BY returns Bavaria's days and Germany's.
fromstringyes
tostringyes
min_assurancestringcorroborated excludes compiled rows; verified returns verified rows only. It is a floor, not a quality improvement — raising it removes rows and the ones that remain are unchanged. Every row carries its own assurance anyway, so deciding per row in your own code is usually better than deciding per request.
tzstringThe IANA zone of the caller. Adds UTC bounds for each holiday plus the date it falls on for you. The dates themselves are never shifted: a holiday is a civil date in its own jurisdiction, and 25 December in Tokyo is 25 December wherever you are reading from.
categoriesstringWhich tradition, not which statute. A caller asking what matters in Jakarta in March needs to tell a Hindu observance from an Islamic one.
closures_onlybooleanBoth answers are legitimate. Is the bank open wants this on. Should I schedule the all-hands wants it off — nothing closes for Yom Kippur in London, and it would still empty the room. Default False.
formatstringcsv flattens to one row per event. ics is a subscribable iCalendar feed — see Exports. Default json.

GET /v1/calendars/overlay

Calendar Overlay

One civil date rendered in every calendar system we hold.

A Gregorian date rendered across every parallel calendar system — Coptic / Ethiopic / Julian / Hebrew / Discordian plus the Class-A reckonings (Persian, Maya, Egyptian, Armenian, counters, year-offsets). Computed live; deterministic for any year.

ParameterTypeRequiredNotes
datestringyes

observances

GET /v1/observances/{code}

Get Observances

The RULES, not the dates they produce. Ask this when you want to know why a date falls where it does — the rule type, the substitution behaviour, the sources.

ParameterTypeRequiredNotes
codestringyes
include_inheritedbooleanOn, a subdivision shows its country's observances too. Off, only what it declares itself. Default True.
assurancestringcompiled|corroborated|verified

jurisdictions

GET /v1/jurisdictions

List Jurisdictions

Every code we hold, with its type and parent. Paged: limit caps at 500 and there are more than 900 jurisdictions, so read total and page through it.

ParameterTypeRequiredNotes
typestringcountry|state|region|province|territory|municipality
qstringsubstring match on name
limitintegerDefault 100.
offsetintegerDefault 0.

GET /v1/jurisdictions/{code}

Get Jurisdiction

ParameterTypeRequiredNotes
codestringyes

tax

GET /v1/tax/{code}

Get Tax

Statutory filing and payment deadlines. A conditional rule returns its wording and no computed date — most of these are relative to a fiscal year end ("within 6 months of FY-end"), and the honest answer is the condition, not a fabricated date.

Statutory filing and payment deadlines.

ParameterTypeRequiredNotes
codestringyes
audiencestringcorporations|individuals|employers — filters applies_to

exchanges

GET /v1/exchanges

List Exchanges

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

GET /v1/exchanges/{mic}

Get Exchange

ParameterTypeRequiredNotes
micstringyes

GET /v1/exchanges/{mic}/calendar

Exchange Calendar

Trading days and closures for a venue, session days only: the jurisdiction's holidays with the exchange's own exclusions removed and its own closures added.

Resolved trading-calendar closures: jurisdiction holidays (substitution applied, exclusions removed) plus exchange-specific closures, session days only.

ParameterTypeRequiredNotes
micstringyes
fromstringyes
tostringyes
formatstringcsv flattens to one row per event. ics is a subscribable iCalendar feed — see Exports. Default json.

solar

GET /v1/solar

Solar

Live compute, no database. Self-clamps at the poles — ask for Longyearbyen in December and you get polar night, not a negative day length.

Daylight duration + approximate sun times for a location/date. Computed LIVE (deterministic, any year) — no DB, no precompute. Duration is exact to ~minutes and self-clamps to 24h/0h at the poles; install `astral` on the host for precise clock times / twilight.

ParameterTypeRequiredNotes
latnumberyes
lonnumberDefault 0.0.
datestringyes
tz_offsetnumberDefault 0.0.

meta

GET /v1/account

Account

Your plan, your claimed jurisdictions, your rate limit, and your usage. Never your key — we store a SHA-256 and not the key itself.

What this key is and what it may reach.

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

GET /v1/catalog

Catalog

What this API can answer, as data. The console builds its entire capability menu from this document, which is why new data appears there the day it ships without a UI release.

The menu: every option the API offers — calendars, holidays, tax, market calendars, sun & season — each with a context blurb (who observes it, where it's official) and a `new` flag.

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

GET /v1/coverage

Coverage

How much we hold and at what assurance, per jurisdiction. Published because a coverage number you cannot break down is a marketing claim.

Assurance coverage per country — the honesty dashboard.

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

GET /v1/health

Health

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

GET /version.json

Version Json

No parameters. This endpoint returns the same document every time, which is why it is safe to cache hard.

announcements

GET /v1/announcements/{code}

Get Announcements

One-off decreed days that no rule predicts: mourning days, election days, royal events, and the exact dates of moon-dependent holidays once a government has announced them. This is the only endpoint with a reason to be polled rather than cached hard.

ParameterTypeRequiredNotes
codestringyes