Free Economic Calendar API
The US macro release schedule as JSON: CPI, PPI, payrolls, JOLTS, weekly jobless claims, PCE, GDP, retail sales, housing starts, new home sales, durable goods, industrial production, trade, FOMC decisions and minutes, the Beige Book and more, read weekly from the agencies' own schedules (BLS, BEA, Census Bureau, Federal Reserve, Department of Labor). The actual and the previous print are filled from the agency series after each release. No consensus column.
Endpoints
/api/markets/calendar?from=YYYY-MM-DD&to=YYYY-MM-DD&importance=highEvents in a window (default: last 7 days to next 30), oldest first.
/api/markets/calendar/csvEverything as CSV.
Example
curl "https://xoomar.com/api/markets/calendar?importance=high"
Response Shape
Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs }. The data field is an array of records with these fields:
| Field | Type | Description |
|---|---|---|
| source | string | bls, bea, census, fed, dol or treasury (coupon auctions) |
| eventName | string | CPI (Consumer Price Index), Nonfarm Payrolls (Employment Situation), Initial Jobless Claims, Retail Sales (Advance), FOMC Rate Decision, ... |
| importance | string | high, med, or low |
| scheduledAt | string (datetime) | Release time, UTC |
| periodLabel | string | null | Reference period: 'August 2026', '3rd Quarter 2026', 'Week ending 2026-09-05' |
| previous | string | null | Prior period on the same basis as actual |
| forecast | null | Always null: no free official source publishes consensus forecasts; the field stays so clients never guess |
| actual | string | null | Filled after release from the agency series (CPI year over year %, payrolls monthly change in thousands, retail sales % m/m, claims in thousands, ...) |
| unit | string | null | What actual and previous are in: '% m/m', '% y/y, PCE price index', 'thousands, annual rate', 'USD billions, balance' |
No forecast field: consensus forecasts come from paid surveys and no free official source publishes them, so the field stays null rather than carrying a made-up number.
Numeric values arrive as strings where precision matters (prices, rates); parse with your language's decimal type for accounting-grade math. Rate limiting is fair-use per IP; a 429 response includes a Retry-After header. No authentication or API key needed. Attribution is appreciated: xoomar.com/markets.
Need more headroom? A free account raises your limit to 120 requests a minute with an X-API-Key header.
Frequently Asked Questions
Which events are included?
When do actuals appear?
What are the rate limits?
Is the schedule reliable?
Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.