The forex economic calendar API gives you the same scheduled releases a forex calendar page shows (CPI, jobs, GDP, PMIs, rate decisions) for the 8 major currencies as JSON, CSV or ICS, with times in UTC and your own timezone, consensus, prior and actual. It is free with attribution and licensed for redistribution, which scraped calendars are not.
Forex traders mostly want three things from a calendar: the time of each release in their own zone, the impact rating, and the numbers. The Finance Calendar API gives all three for USD, EUR, GBP, JPY, CAD, AUD, CHF, NZD and the Scandinavian and Chinese releases that move them. It does not require a key, and it can be called from a browser.
A forex week in your timezone
curl "https://www.financecalendar.com/wp-json/fc/v1/week?impact=high&tz=Europe/London"
For the coming week instead of this one add which=next. The first 2 of 5 high-impact rows in the week of 26 October 2026:
{
"week": "next",
"from": "2026-10-26",
"to": "2026-11-01",
"count": 5,
"total": 5,
"events": [
{ "id": "australia-cpi-october-2026", "series_code": "au-cpi", "name": "Australia CPI", "country": "AU", "impact": "high", "date": "2026-10-28", "time_utc": "2026-10-28T00:30:00+00:00", "time_et": "20:30", "release_tz": "Australia/Sydney", "period": "September 2026 + Q3 2026 quarterly", "unit": "% y/y", ... },
{ "id": "bank-of-canada-rate-decision-october-2026", "series_code": "boc", "name": "Bank of Canada Rate Decision", "country": "CA", "impact": "high", "date": "2026-10-28", "time_utc": "2026-10-28T13:45:00+00:00", "time_et": "09:45", "release_tz": "America/Toronto", "unit": "% policy rate", "note": "Monetary Policy Report", ... }
// 3 more rows
],
"attribution": { ... }
}
Pass tz= and every row gains time_local in that zone. Without it you still get time_utc and time_et. The Australian CPI row shows the usual trap: it is 11:30 on 28 October in Sydney, 00:30 UTC the same day, and 20:30 the previous evening in New York. date is always the publisher’s local date.
By currency
Country codes map to currencies. country takes a comma-separated list:
| Currency | country= | Series include |
|---|---|---|
| USD | US | us-cpi, us-nfp, us-gdp, us-pce, us-ppi, us-retail-sales, us-ism-manufacturing, us-ism-services, us-jobless-claims, us-jolts, us-adp, fomc, fomc-minutes |
| EUR | EU, DE | eu-cpi, eu-gdp, eu-unemployment, de-cpi, de-ifo, ecb |
| GBP | GB | gb-cpi, gb-gdp, gb-jobs, gb-retail-sales, boe |
| JPY | JP | jp-cpi, jp-gdp, boj |
| CAD | CA | ca-cpi, ca-jobs, boc |
| AUD | AU | au-cpi, au-jobs, rba |
| CHF | CH | snb |
| NZD | NZ | rbnz |
| NOK, SEK | NO, SE | norges, riksbank |
| CNY | CN | cn-cpi, cn-gdp, cn-pmi, cn-caixin-pmi, pboc-lpr |
GBP/USD traders, for example, want both legs:
curl "https://www.financecalendar.com/wp-json/fc/v1/calendar?country=US,GB&impact=high&tz=Europe/London"
The first 2 of 4 rows are the UK labour market report on 20 October 2026 and UK CPI on 21 October, both at "time_local": "07:00". /series?country=GB lists every GBP series with its next date, and /countries shows how many series and events each country has.
Impact, consensus and actual
impact is high, medium or low per series. consensus is written roughly 2 days before a release, prior is the previous print, and actual is filled within the hour of the official release, at which point status becomes released. All three are strings in the series unit, for example “3.0% y/y” for US CPI. Poll /changes to see new actuals and consensus updates as they land:
curl "https://www.financecalendar.com/wp-json/fc/v1/changes?since=2026-10-18T00:00:00Z&change=updated"
Into a chart platform or spreadsheet
format=csv downloads any /calendar or /week query as a spreadsheet, and format=ics turns it into a calendar subscription that puts each release on your phone 30 minutes before. A /calendar call covers up to 92 days. See Economic calendar in Google Sheets and the embeddable widget for a trading blog.
Compared with scraping Forex Factory
Forex Factory has no official API, and its terms prohibit copying or redistributing its calendar schedules without written consent. This API is built from the official calendars of each central bank and statistical agency, every row links to its source_url, and the data is licensed for any use with a link back. The trade-off is coverage: this API has 14 countries and the major releases, not every minor print in 40 countries. See Free economic calendar APIs compared.
Frequently asked questions
Are times in server time or GMT?
Neither by default. Each row carries time_utc (ISO 8601 with offset) and time_et. Add tz= for time_local in any IANA zone, for example Asia/Singapore or Europe/Berlin.
Does it include speeches?
The Fed chair’s semi-annual testimony is a series (fed-testimony). Routine central bank speeches are not included.
How is impact decided?
Per series, by how reliably the release moves markets: the main inflation, jobs, growth and rate decisions of the major economies are high; secondary surveys and smaller central banks are medium; exchange holidays are low.
Can I use it in a trading bot?
Yes. It is read-only JSON with no key required, 2,000 calls a day per IP address (10,000 with a free key), and responses are cached for 5 minutes. Verify anything you trade on against the source_url in the row.
Attribution
Data from this API is free for any use, commercial included, on one condition: a visible link to https://www.financecalendar.com near where the data appears, or on your credits page. Earnings dates are not included.