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-LimitX-RateLimit-RemainingX-RateLimit-ResetX-RateLimit-TierRetry-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. |
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. |
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. |
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.
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. |
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.
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. |
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. |
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. |
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. |
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/mereturns an object without defined fields. The endpoint’s401response requires a key in practice, while its shared key-parameter declaration is marked optional.- The objects returned for country-list entries,
/todaymarket data,/statussnapshot metadata and portions of/market-statusare 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
/openapisummary 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.