Economic Calendar API Reference

Economic calendar REST API reference

Economic releases, central bank decisions and exchange holidays as JSON, CSV and ICS.

Economic releases, decisions and exchange holidays with per-event publisher provenance and verification status. Coverage, consensus and results vary by source and series; inspect status, last_verified_at and data_stale before use. Cancelled releases remain in calendar/history responses but are excluded from next, upcoming and last pointers. Free for any use, commercial included, with attribution: a visible link to https://www.financecalendar.com wherever the data appears. No key needed; a free key raises the daily limit. Earnings dates are not included. Source-backed crypto events are included where publicly redistributable. Crypto rows use category=crypto, canonical assets, nullable country and impact, and confirmed or estimated timing. Calendar date ranges include overlapping estimated windows; history only includes a date window after its upper bound. Retain each record source_license credit, source link, licence link and adaptation notice when redistributing. CoinMarketCal internal evaluation data is not distributed.

Production base URL: https://www.financecalendar.com/wp-json/fc/v1

Generated from the published OpenAPI 3.1.0 contract, API version 2.0.0. This page describes the contract’s declared fields and constraints; it does not infer undocumented response fields.

Authentication and usage

Keyless access is available. An optional free key raises the daily limit. Send it as X-API-Key; the shared parameter description also allows ?api_key=. Create a free key or read the key-creation endpoint. The key-usage endpoint needs your key.

Declared security scheme ApiKey: type apiKey, location header, name X-API-Key.

Contract tier Daily requests Scope declared in the contract
keyless 2000 ip
free 10000 Not specified in the rate-policy extension
pro 100000 Not specified in the rate-policy extension
business 1000000 Not specified in the rate-policy extension

Only keyless access and free self-serve keys are described here. Other named rate policies are reproduced from OpenAPI without establishing plan availability. Daily limits reset at 00:00 UTC.

OpenAPI lists these response-header names without formal header types or per-response schemas:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
  • X-RateLimit-Tier
  • Retry-After

Attribution is required

A visible link to https://www.financecalendar.com near the data, or on your credits page. See the data attribution terms.

Dates, pagination and formats

GET /calendar defaults to today in America/New_York, with to defaulting to from + 14 days. Its documented maximum is 92 days after from. GET /week selects Monday to Sunday for this week or next week, returning at most 500 rows. It validates but does not apply limit/offset; use calendar with the returned dates for pagination. Other operations have their own declared date parameters below.

GET /calendar declares limit from 1 to 500 (default 100) and offset from 0 (default 0). Increase the offset to request later pages. The response schema provides count, total and events. The history and changes endpoints declare a limit but no offset parameter in this contract.

format=json, format=csv and format=ics are declared for GET /calendar and GET /week. The calendar description identifies JSON as the default, CSV as a download and ICS as a calendar subscription. Request the date window and page size you need; inspect the documented limits before treating an export as a complete dataset.

curl 'https://www.financecalendar.com/wp-json/fc/v1/calendar?series=us-cpi&format=csv&limit=500'
curl 'https://www.financecalendar.com/wp-json/fc/v1/calendar?series=us-cpi&format=ics&limit=500'

The OpenAPI response definitions describe JSON only. They do not specify CSV column order, CSV content type, ICS property mapping or ICS content type. Those formats are supported query values, but their wire layouts are not formalised by this schema.

Timing and missing values

date is the publisher-local release date for dated records. Crypto month, quarter and year targets instead use date_window_start and date_window_end; date is their lower-bound index, not a confirmed activation date. Calendar filters include overlapping windows. Global crypto has country=null; filter canonical asset IDs and check crypto.environment to distinguish testnets from mainnet. Preserve each record’s source_license credit, licence link and notice when redistributing. An exact known instant is represented by release_at_utc; date-only, unknown-time and range schedules have a null instant. A release window uses time_window_start and time_window_end. A requested IANA tz adds time_local. Do not interpret a missing time as midnight or an auction closing time as the time results were published.

Consensus, prior and actual fields can be null. Event-page url can also be null: link to it when present, rather than building article URLs from identifiers. Publisher verification time is distinct from snapshot generation; inspect last_verified_at and data_stale.

Errors and field presence

Read each operation’s response list. Many data endpoints declare 400 for an invalid parameter and 429 for a daily limit, using the shared Error schema. Some routes declare additional statuses or no error-body schema. The declared common error fields are error and docs.

Requiredness and nullability are different. “Not declared required” means the contract has no requirement that this property be present. A nullable field explicitly allows null; it is not a numeric zero, an empty string or evidence that an event never occurred. The current response schemas do not declare required-property lists.

GET /calendarEvents in a date range

Parameters

Name Location Required Type Description and constraints
from query No string YYYY-MM-DD, default today (America/New_York). Format: date.
to query No string YYYY-MM-DD, default from + 14 days, at most 92 days after from. Format: date.
country query No string ISO alpha-2, comma-separated for several (US, GB, EU, DE, JP, CA, AU, CN, CH, NZ, NO, SE, IN, HK). uk and eurozone are accepted. No further constraints are declared.
impact query No string high, medium or low; comma-separated for several. No further constraints are declared.
category query No string Filter by economic-indicators, central-banks-monetary-policy, market-holidays or crypto. Crypto is global: country is null, and country filters exclude global rows. Allowed values: "economic-indicators", "central-banks-monetary-policy", "market-holidays", "crypto".
series query No string Series code or alias (e.g. us-cpi, fomc, uk-cpi); comma-separated for several. No further constraints are declared.
include query No string holidays to add market-holiday rows to the economic rows. Allowed values: "holidays".
status query No string confirmed, estimated, released, rescheduled, cancelled; comma-separated. No further constraints are declared.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
limit query No integer 1 to 500, default 100. Default: 100. Minimum: 1. Maximum: 500.
offset query No integer Skip this many rows (paging). Default: 0. Minimum: 0.
format query No string json (default), csv (download) or ics (calendar subscription). Allowed values: "json", "csv", "ics".
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/calendar'

Responses

200 Rows, soonest first.

Content type: application/json.

Field Type Presence Description and constraints
from string Not declared required Format: date.
to string Not declared required Format: date.
count integer Not declared required No further constraints are declared.
total integer Not declared required No further constraints are declared.
events array of Event Not declared required No further constraints are declared.
attribution Attribution Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /todayToday's releases, NYSE status and exchange closures

Parameters

Name Location Required Type Description and constraints
country query No string ISO alpha-2, comma-separated for several (US, GB, EU, DE, JP, CA, AU, CN, CH, NZ, NO, SE, IN, HK). uk and eurozone are accepted. No further constraints are declared.
impact query No string high, medium or low. No further constraints are declared.
include query No string holidays to add market-holiday rows to events (closures are always listed in market_holidays). No further constraints are declared.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/today'

Responses

200 Today.

Content type: application/json.

Field Type Presence Description and constraints
date string Not declared required Format: date.
market object or null Not declared required No further constraints are declared. null is an allowed value.
count integer Not declared required No further constraints are declared.
events array of Event Not declared required No further constraints are declared.
market_holidays array of Event Not declared required No further constraints are declared.
attribution Attribution Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /weekThis week (Monday to Sunday) or the next one

This or next Monday–Sunday week, capped at 500 matching rows. The base API validates limit and offset but does not apply them to /week. If total exceeds count, use /calendar with the returned from/to dates and explicit limit/offset to fetch every page.

Parameters

Name Location Required Type Description and constraints
which query No string this (default) or next. Allowed values: "this", "next".
country query No string ISO alpha-2, comma-separated for several (US, GB, EU, DE, JP, CA, AU, CN, CH, NZ, NO, SE, IN, HK). uk and eurozone are accepted. No further constraints are declared.
impact query No string high, medium or low; comma-separated. No further constraints are declared.
category query No string Filter by economic-indicators, central-banks-monetary-policy, market-holidays or crypto. Crypto is global: country is null, and country filters exclude global rows. Allowed values: "economic-indicators", "central-banks-monetary-policy", "market-holidays", "crypto".
series query No string As for /calendar. No further constraints are declared.
include query No string holidays to add market-holiday rows. No further constraints are declared.
status query No string As for /calendar. No further constraints are declared.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
format query No string json, csv or ics. Allowed values: "json", "csv", "ics".
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/week'

Responses

200 Rows, soonest first.

Content type: application/json.

Field Type Presence Description and constraints
from string Not declared required Format: date.
to string Not declared required Format: date.
count integer Not declared required No further constraints are declared.
total integer Not declared required No further constraints are declared.
events array of Event Not declared required No further constraints are declared.
attribution Attribution Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /nextThe next occurrence of a series

Parameters

Name Location Required Type Description and constraints
series query Yes string Series code, alias or keyword: fomc, cpi, nfp, gdp, pce, ppi, retail-sales, jobless-claims, ism, jolts, ecb, boe, boj, boc, rba, rbnz, snb, pboc, uk-cpi, eurozone-cpi, japan-cpi… Generic names default to the US release. No further constraints are declared.
country query No string Override the country for a generic series, e.g. uk. No further constraints are declared.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.
category query No string Allowed values: "economic-indicators", "central-banks-monetary-policy", "market-holidays", "crypto".

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/next?series=us-cpi'

Responses

200 Next event.

Content type: application/json.

Field Type Presence Description and constraints
series string Not declared required No further constraints are declared.
series_code string or null Not declared required No further constraints are declared. null is an allowed value.
country string or null Not declared required No further constraints are declared. null is an allowed value.
next Event Not declared required No further constraints are declared.
attribution Attribution Not declared required No further constraints are declared.

404 No upcoming event for that series.

The contract does not declare a response-body schema for this status.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /seriesEvery series the API covers, with its next date

Parameters

Name Location Required Type Description and constraints
country query No string ISO alpha-2, comma-separated for several (US, GB, EU, DE, JP, CA, AU, CN, CH, NZ, NO, SE, IN, HK). uk and eurozone are accepted. No further constraints are declared.
category query No string Filter by economic-indicators, central-banks-monetary-policy, market-holidays or crypto. Crypto is global: country is null, and country filters exclude global rows. Allowed values: "economic-indicators", "central-banks-monetary-policy", "market-holidays", "crypto".
kind query No string instance or holiday. No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/series'

Responses

200 Series list.

Content type: application/json.

Field Type Presence Description and constraints
count integer Not declared required No further constraints are declared.
series array of Series Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /series/{code}One series: next, last, upcoming dates and history

Parameters

Name Location Required Type Description and constraints
code path Yes string Series code or alias. No further constraints are declared.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/series/us-cpi'

Responses

200 Series detail.

Content type: application/json.

Field Type Presence Description and constraints
series Series Not declared required No further constraints are declared.
next Event or null Not declared required No further constraints are declared. null is an allowed value.
last Event or null Not declared required No further constraints are declared. null is an allowed value.
upcoming array of Event Not declared required No further constraints are declared.
history array of Event Not declared required No further constraints are declared.
dataset object or null Not declared required Verified long-run history where we publish one (e.g. us-cpi, fomc). null is an allowed value.

404 Unknown series.

The contract does not declare a response-body schema for this status.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /historyPast releases of a series with consensus, prior and actual

Parameters

Name Location Required Type Description and constraints
series query Yes string Series code or alias. No further constraints are declared.
from query No string YYYY-MM-DD. Format: date.
to query No string YYYY-MM-DD. Format: date.
limit query No integer 1 to 500, default 100. Default: 100. Minimum: 1. Maximum: 500.
tz query No string IANA timezone; adds time_local to every row (e.g. Europe/London). No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.
asset query No string Canonical asset IDs, comma-separated (OR), e.g. ethereum or bitcoin. Obtain covered IDs from /series?category=crypto. Filters run before pagination and totals. Tickers such as BTC are not canonical IDs. Maximum length: 500.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/history?series=us-cpi'

Responses

200 Rows, soonest first.

Content type: application/json.

Field Type Presence Description and constraints
from string Not declared required Format: date.
to string Not declared required Format: date.
count integer Not declared required No further constraints are declared.
total integer Not declared required No further constraints are declared.
events array of Event Not declared required No further constraints are declared.
attribution Attribution Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /holidaysExchange holidays and early closes

Parameters

Name Location Required Type Description and constraints
exchange query No string nyse (default, same calendar as nasdaq), sifma, cme, lse, tsx, asx, hkex, euronext, jpx, six, xetra, nse, or all. No further constraints are declared.
year query No integer Four-digit year. No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/holidays'

Responses

200 Holidays.

Content type: application/json.

Field Type Presence Description and constraints
exchange string Not declared required No further constraints are declared.
count integer Not declared required No further constraints are declared.
holidays array of object Not declared required No further constraints are declared.
holidays[].date string Not declared required Format: date.
holidays[].name string Not declared required No further constraints are declared.
holidays[].exchange string Not declared required No further constraints are declared.
holidays[].country string or null Not declared required No further constraints are declared. null is an allowed value.
holidays[].status string Not declared required Allowed values: "closed", "early_close".
holidays[].close_time_local string or null Not declared required No further constraints are declared. null is an allowed value.
holidays[].close_time_et string or null Not declared required NYSE rows only. null is an allowed value.
holidays[].url string or null Not declared required No further constraints are declared. null is an allowed value.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /market-statusIs the exchange open right now?

Parameters

Name Location Required Type Description and constraints
exchange query No string nyse (default) or any exchange code; live open/closed for NYSE, holiday-aware for the rest. No further constraints are declared.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/market-status'

Responses

200 Status.

Content type: application/json.

Field Type Presence Description and constraints
exchange string Not declared required No further constraints are declared.
name string Not declared required No further constraints are declared.
country string or null Not declared required No further constraints are declared. null is an allowed value.
tz string Not declared required No further constraints are declared.
open boolean Not declared required No further constraints are declared.
label string Not declared required No further constraints are declared.
local_time string Not declared required Format: date-time.
time_utc string Not declared required Format: date-time.
session object Not declared required No further constraints are declared.
session.open string Not declared required No further constraints are declared.
session.close string Not declared required No further constraints are declared.
session.break array of unspecified or null Not declared required No further constraints are declared. null is an allowed value.
holiday_today string or null Not declared required No further constraints are declared. null is an allowed value.
next_holiday object or null Not declared required No further constraints are declared. null is an allowed value.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /changesWhat changed: new dates, moved dates, consensus and actuals

Parameters

Name Location Required Type Description and constraints
since query No string ISO 8601 datetime (default: 24 hours ago; at most 30 days ago). Format: date-time.
series query No string Series code or alias. No further constraints are declared.
change query No string added, updated or removed. No further constraints are declared.
limit query No integer 1 to 500, default 100. Default: 100. Minimum: 1. Maximum: 500.
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/changes'

Responses

200 Change log, newest first.

Content type: application/json.

Field Type Presence Description and constraints
since string Not declared required No further constraints are declared.
count integer Not declared required No further constraints are declared.
changes array of Change Not declared required No further constraints are declared.

400 Invalid parameter.

Content type: application/json.

Schema: Error.

429 Daily limit reached (keyless 2,000/day per IP; free key 10,000/day).

Content type: application/json.

Schema: Error.

GET /countriesCountries covered, with series and event counts

Parameters

No parameters are declared for this operation.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/countries'

Responses

200 Countries.

Content type: application/json.

Field Type Presence Description and constraints
countries array of object Not declared required No further constraints are declared.

GET /statusHealth: snapshot age, counts and publisher source health

Parameters

No parameters are declared for this operation.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/status'

Responses

200 Snapshot freshness and source-level collection health.

Content type: application/json.

Field Type Presence Description and constraints
ok boolean Not declared required Snapshot availability and age check; consult source_health_summary separately for publisher failures.
time_utc string Not declared required Format: date-time.
snapshot object or null Not declared required No further constraints are declared. null is an allowed value.
source_health array of SourceHealth Not declared required No further constraints are declared.
source_health_summary SourceHealthSummary Not declared required No further constraints are declared.
api_version string Not declared required No further constraints are declared.
docs string Not declared required Format: uri.

GET /openapiThis document (also at /openapi.json on the edge host)

Parameters

No parameters are declared for this operation.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/openapi'

Responses

200 OpenAPI 3.1.

Content type: application/json.

Schema: object. No further constraints are declared. The contract does not enumerate this object’s fields.

POST /keysGet a free API key by email

Parameters

No parameters are declared for this operation.

Request body

Body required: Yes.

application/json

Field Type Presence Description and constraints
email string Required Format: email.
name string Not declared required No further constraints are declared.
use_case string Not declared required No further constraints are declared.
website string Not declared required No further constraints are declared.

Example request

curl -X POST 'https://www.financecalendar.com/wp-json/fc/v1/keys' \
  -H 'Content-Type: application/json' \
  --data '{"email":"[email protected]"}'

Responses

201 Key created (shown once, also emailed).

Content type: application/json.

Field Type Presence Description and constraints
key string Not declared required No further constraints are declared.
tier string Not declared required No further constraints are declared.
daily_limit integer Not declared required No further constraints are declared.
message string Not declared required No further constraints are declared.

400 Invalid email, or no more keys can be created for this address.

The contract does not declare a response-body schema for this status.

429 Too many signups from this address today.

The contract does not declare a response-body schema for this status.

500 Could not create a key; retry.

The contract does not declare a response-body schema for this status.

GET /keys/meYour tier, limit and usage today

Parameters

Name Location Required Type Description and constraints
X-API-Key header No string Optional free API key (raises the daily limit and identifies your app). Also accepted as ?api_key=. No further constraints are declared.

Send your API key for this operation. The shared header parameter is marked optional in OpenAPI, but this endpoint documents a 401 response when the key is missing.

Example request

curl 'https://www.financecalendar.com/wp-json/fc/v1/keys/me' \
  -H 'X-API-Key: REPLACE_WITH_YOUR_KEY'

Responses

200 Key info.

Content type: application/json.

Schema: object. No further constraints are declared. The contract does not enumerate this object’s fields.

401 Missing, malformed or unknown key.

The contract does not declare a response-body schema for this status.

403 Key revoked.

The contract does not declare a response-body schema for this status.

Event schema

One scheduled release, decision or market holiday.

Field Type Presence Description and constraints
id string Not declared required Stable identifier (matches the page slug). Example: "us-cpi-report-november-2026".
series_code string Not declared required Example: "us-cpi".
series_name string Not declared required Example: "US CPI Report".
name string Not declared required Short display name. Example: "US CPI".
title string Not declared required Example: "US CPI Report November 2026".
country string or null Not declared required ISO country code, or null for global crypto events. Global is not a country code. Example: "US". null is an allowed value.
category string Not declared required Allowed values: "economic-indicators", "central-banks-monetary-policy", "market-holidays", "crypto".
impact string or null Not declared required Allowed values: "high", "medium", "low", null. null is an allowed value.
date string Not declared required Publisher calendar date, or the inclusive lower-bound index of date_window_start/end for an estimated month, quarter or year. A lower-bound index is not a confirmed occurrence date. Format: date.
release_at_utc string or null Not declared required Exact configured or published instant when available, retaining source seconds. Null for date-only, unknown-time, timed-range and approximate date-window schedules. This is schedule evidence, not proof an activation was observed. Format: date-time. null is an allowed value.
time_utc string or null Not declared required Alias of release_at_utc (v1 field). Format: date-time. null is an allowed value.
time_et string or null Not declared required HH:MM in America/New_York (v1 field). null is an allowed value.
time_local string or null Not declared required HH:MM in the requested tz (only when ?tz= is given). null is an allowed value.
release_tz string or null Not declared required Example: "America/New_York". null is an allowed value.
all_day boolean Not declared required No further constraints are declared.
period string or null Not declared required What the data covers, when known. null is an allowed value.
status string Not declared required Allowed values: "confirmed", "estimated", "rescheduled", "cancelled", "released".
consensus string or null Not declared required No further constraints are declared. null is an allowed value.
prior string or null Not declared required No further constraints are declared. null is an allowed value.
actual string or null Not declared required No further constraints are declared. null is an allowed value.
unit string or null Not declared required Example: "% y/y". null is an allowed value.
source_url string or null Not declared required Format: uri. null is an allowed value.
source_name string or null Not declared required No further constraints are declared. null is an allowed value.
url string or null Not declared required Preview and results page on financecalendar.com, when one exists. Format: uri. null is an allowed value.
exchange string or null Not declared required Market-holiday rows only. null is an allowed value.
holiday_status string or null Not declared required Allowed values: "closed", "early_close", null. null is an allowed value.
close_time_local string or null Not declared required No further constraints are declared. null is an allowed value.
updated_at string Not declared required Format: date-time.
starts_on string Not declared required First day of a multi-day meeting (only when it differs from date). Format: date.
note string Not declared required Source note, e.g. a date the official calendar moved.
source_id string or null Not declared required Publisher connector identifier; null when provenance is unavailable. null is an allowed value.
native_id string or null Not declared required Publisher release identifier, when supplied. Stable across date changes. null is an allowed value.
release_stage string or null Not declared required Publisher-labelled release stage, e.g. advance, second, third or annual-update. Null when unspecified. null is an allowed value.
time_precision string or null Not declared required second/minute for configured or published exact timing; date for a day without confirmed time; range for a timed window; month/quarter/year for an estimated date window; unknown or null when unspecified. A schedule is not proof of observed activation. Allowed values: "minute", "date", "range", "unknown", "second", "month", "quarter", "year", null. null is an allowed value.
last_verified_at string or null Not declared required Last successful source verification. For verification_method=github-json this is the configuration fetch; for manual records it is the fixed human review time, also recorded in manually_reviewed_at. Snapshot generation is not source verification. Format: date-time. null is an allowed value.
data_stale boolean Not declared required True when last-good source data is retained through a collection failure, or a manual source review is overdue. False does not establish observed activation or comprehensive live coverage.
stale_since string or null Not declared required Format: date-time. null is an allowed value.
time_window_start string or null Not declared required Start of the publisher-announced release window, with timezone offset. This bound is not an exact publication instant. Format: date-time. null is an allowed value.
time_window_end string or null Not declared required End of the publisher-announced release window, with timezone offset. Format: date-time. null is an allowed value.
time_role string or null Not declared required Meaning of the scheduled time or window, e.g. publication or auction-close. An auction close is not the publication time of auction results. null is an allowed value.
auction object or null Not declared required Treasury auction security and result fields when available. Numerical values remain publisher decimal strings without unit conversion. Auction closing time is not result publication time. null is an allowed value.
auction.cusip string or null Not declared required No further constraints are declared. null is an allowed value.
auction.security_type string or null Not declared required No further constraints are declared. null is an allowed value.
auction.security_term string or null Not declared required No further constraints are declared. null is an allowed value.
auction.original_security_term string or null Not declared required No further constraints are declared. null is an allowed value.
auction.issue_date string or null Not declared required Format: date. null is an allowed value.
auction.maturity_date string or null Not declared required Format: date. null is an allowed value.
auction.high_rate string or null Not declared required No further constraints are declared. null is an allowed value.
auction.high_yield string or null Not declared required No further constraints are declared. null is an allowed value.
auction.high_discount_margin string or null Not declared required No further constraints are declared. null is an allowed value.
auction.bid_to_cover string or null Not declared required No further constraints are declared. null is an allowed value.
auction.reopening boolean or null Not declared required No further constraints are declared. null is an allowed value.
auction.cash_management_bill boolean or null Not declared required No further constraints are declared. null is an allowed value.
assets array of CryptoAsset Not declared required Affected assets; empty for economic and exchange holiday rows.
crypto object or null Not declared required No further constraints are declared. null is an allowed value.
crypto.event_type string Not declared required Allowed values: "options-expiry", "futures-expiry", "network-upgrade", "token-unlock", "halving".
crypto.exchange string or null Not declared required No further constraints are declared. null is an allowed value.
crypto.network string or null Not declared required No further constraints are declared. null is an allowed value.
crypto.environment string or null Not declared required Network environment, e.g. mainnet, hoodi or sepolia. Testnet events are not mainnet activation dates. null is an allowed value.
crypto.activation_status string or null Not declared required Configured activation schedule or roadmap target, not proof the network activation was observed. Allowed values: "scheduled", "target", null. null is an allowed value.
crypto.block_height integer or string or null Not declared required No further constraints are declared. null is an allowed value.
crypto.token_amount number or string or null Not declared required No further constraints are declared. null is an allowed value.
date_window_start string or null Not declared required Inclusive lower bound of an estimated date window. The date field is its index, not a confirmed occurrence date. Format: date. null is an allowed value.
date_window_end string or null Not declared required Inclusive upper bound of an estimated date window. Format: date. null is an allowed value.
source_license object or null Not declared required Upstream attribution and licence requirements travel with each adapted record. Retain the original credit, source link, licence URL, full notice and adaptation notice when redistributing. null is an allowed value.
source_license.id string or null Not declared required No further constraints are declared. null is an allowed value.
source_license.url string or null Not declared required Format: uri. null is an allowed value.
source_license.terms_url string or null Not declared required Format: uri. null is an allowed value.
source_license.attribution string or null Not declared required No further constraints are declared. null is an allowed value.
source_license.notice string or null Not declared required Full upstream licence notice where required, e.g. the MIT copyright and permission notice. null is an allowed value.
source_license.adapted boolean Not declared required No further constraints are declared.
verification_url string or null Not declared required Evidence checked for the stored schedule, e.g. official network configuration. May differ from the human-readable announcement in source_url. Format: uri. null is an allowed value.
verification_method string or null Not declared required Verification basis, e.g. github-json for an official configuration fetch or manual for a reviewed roadmap. null is an allowed value.
manually_reviewed_at string or null Not declared required Fixed timestamp of human source review, when relevant; snapshot generation never advances this timestamp. Format: date-time. null is an allowed value.

Series schema

Field Type Presence Description and constraints
code string Not declared required No further constraints are declared.
name string Not declared required No further constraints are declared.
country string or null Not declared required ISO country code, or null for global crypto events. Global is not a country code. null is an allowed value.
category string Not declared required No further constraints are declared.
impact string or null Not declared required No further constraints are declared. null is an allowed value.
recurrence string or null Not declared required No further constraints are declared. null is an allowed value.
tier integer Not declared required No further constraints are declared.
aliases array of string Not declared required No further constraints are declared.
unit string or null Not declared required No further constraints are declared. null is an allowed value.
publisher string or null Not declared required No further constraints are declared. null is an allowed value.
source_url string or null Not declared required No further constraints are declared. null is an allowed value.
hub string or null Not declared required Format: uri. null is an allowed value.
kind string Not declared required Allowed values: "instance", "holiday".
exchange string or null Not declared required No further constraints are declared. null is an allowed value.
next string or null Not declared required No further constraints are declared. null is an allowed value.
next_date string or null Not declared required Format: date. null is an allowed value.
last string or null Not declared required No further constraints are declared. null is an allowed value.
count integer Not declared required No further constraints are declared.
assets array of CryptoAsset Not declared required Affected assets; empty for economic and exchange holiday rows.
next_date_window_start string or null Not declared required Inclusive bound of the next event estimated date window, when supplied. next_date is its lower-bound index, not a confirmed occurrence date. Format: date. null is an allowed value.
next_date_window_end string or null Not declared required Inclusive bound of the next event estimated date window, when supplied. next_date is its lower-bound index, not a confirmed occurrence date. Format: date. null is an allowed value.

Change schema

Field Type Presence Description and constraints
at string Not declared required Format: date-time.
id string Not declared required No further constraints are declared.
series_code string Not declared required No further constraints are declared.
change string Not declared required Allowed values: "added", "updated", "removed".
field string or null Not declared required No further constraints are declared. null is an allowed value.
old string or boolean or object or null Not declared required Previous field value; structured auction metadata is an object. null is an allowed value.
new string or boolean or object or null Not declared required Updated field value; structured auction metadata is an object. null is an allowed value.

Attribution schema

Field Type Presence Description and constraints
source string Not declared required No further constraints are declared.
terms string Not declared required No further constraints are declared.
docs string Not declared required Format: uri.
source_licenses string Not declared required Records may retain additional original-source attribution and licence requirements.

Error schema

Field Type Presence Description and constraints
error string Not declared required No further constraints are declared.
docs string Not declared required No further constraints are declared.

SourceHealth schema

Field Type Presence Description and constraints
source_id string or null Not declared required No further constraints are declared. null is an allowed value.
status string or null Not declared required Allowed values: "success", "degraded", "failed", "disabled", null. null is an allowed value.
count integer Not declared required No further constraints are declared.
mode string or null Not declared required No further constraints are declared. null is an allowed value.
scope object or null Not declared required No further constraints are declared. null is an allowed value.
scope.window_start string or null Not declared required Format: date. null is an allowed value.
scope.window_end string or null Not declared required Format: date. null is an allowed value.
scope.series_name string Not declared required No further constraints are declared.
checked_at string or null Not declared required Format: date-time. null is an allowed value.
fetched_at string or null Not declared required Null if no successful live fetch occurred; checked-in schedules do not count as a fetch. Format: date-time. null is an allowed value.
error string or null Not declared required Credential-safe collector diagnostic, without request URLs or response bodies. null is an allowed value.

SourceHealthSummary schema

Field Type Presence Description and constraints
reported boolean Not declared required False for snapshots without source-health reporting; this means unknown, not healthy.
total integer Not declared required No further constraints are declared.
success integer Not declared required No further constraints are declared.
degraded integer Not declared required No further constraints are declared.
failed integer Not declared required No further constraints are declared.
disabled integer Not declared required No further constraints are declared.
stale_events integer Not declared required Events explicitly marked as retained last-good data during source outages.

CryptoAsset schema

Field Type Presence Description and constraints
id string Required Canonical asset ID; symbols are display labels, not stable IDs.
symbol string Required No further constraints are declared.
name string Required No further constraints are declared.

Contract details still to document

This reference includes every operation and property declared by the captured production contract. These details remain unspecified or inconsistent in that contract:

  • GET /keys/me returns an object without defined fields. The endpoint’s 401 response requires a key in practice, while its shared key-parameter declaration is marked optional.
  • The objects returned for country-list entries, /today market data, /status snapshot metadata and portions of /market-status are not fully enumerated. Their undeclared fields are not presented here as stable API contracts. Inspect current response examples for countries, today, status and market status.
  • CSV and ICS layouts, typed rate-limit response headers and required response-property lists are not defined.
  • The /openapi summary mentions an edge host; the contract’s server list declares the WordPress production URL used throughout this reference.

Use the published production OpenAPI document as the contract and review the public source copy alongside the changelog. Coverage and available values can change independently of schema version; check coverage and sources before integrating.