
ForexFactory Economic Calendar Scraper
hipersoft/forexfactory-scraper
Scrape the ForexFactory economic calendar — every high, medium and low-impact macro event with its release time, forecast, previous and actual values. Pull this week, this month, today or tomorrow, filter by impact or currency, and export clean rows as JSON, CSV or Excel.
Total users
2Monthly users
1Total runs
50Per event scraped
$0.003Last rebuilt
Oct 26, 2026Overview
Scrape the ForexFactory economic calendar into clean, structured JSON, CSV or Excel. Pull every high, medium and low-impact macro event — central bank rate decisions, CPI and inflation prints, non-farm payrolls, GDP, PMIs, retail sales and more — with its release time, forecast, previous and actual values, one tidy row per event. Built for trading dashboards, backtesting, risk calendars, research and automations.
Features
- 📊 Every impact level — High, Medium, Low and Holiday events in one Actor, so nothing on the calendar is missed.
- 🗓️ Choose your window — pull this week, this month, today or tomorrow and combine multiple windows in a single run.
- 💱 Currency coverage — events for USD, EUR, GBP, JPY, AUD, CAD, CHF, CNY, NZD and All-currency (global) items.
- 🎯 Impact filter — keep only High-impact market movers, or any mix of impact levels you care about.
- 🔎 Currency filter — narrow to just the currencies you trade (e.g.
USD,EUR). - 🔢 Forecast · Previous · Actual — the consensus forecast, the prior reading and the released actual (once out) for each event.
- 🕒 Precise release times — each event carries a full timestamp so you can line it up with your own timezone.
- 📄 Volume control — set
maxItemsto balance coverage and cost.
Input
{
"feeds": ["thisweek"],
"impactFilter": ["High", "Medium"],
"countryFilter": ["USD", "EUR"],
"maxItems": 1000
}
| Field | Description |
|---|---|
feeds |
Which calendar window(s) to pull: thisweek (default), thismonth, today, tomorrow. Combine as many as you like. |
impactFilter |
Optional. Keep only these impact levels: High, Medium, Low, Holiday. Empty = all. |
countryFilter |
Optional. Keep only these currencies/regions (e.g. USD, EUR, GBP, All). Empty = all. |
maxItems |
Maximum events to collect across all selected windows (0 = no limit). |
proxyConfiguration |
Proxy settings. Not required by default. |
How to use
Pick one or more feeds and run. Add an impactFilter to focus on the market-moving events, or a countryFilter to keep only the currencies you trade. A run with no input returns this week's full calendar.
Use cases
- Build a daily or weekly trading calendar of upcoming high-impact events.
- Feed forecast vs actual data into backtests and volatility models.
- Power a risk dashboard that flags rate decisions, CPI and NFP releases.
- Alert your team ahead of market-moving prints for specific currencies.
- Keep an economic-events dataset fresh in a spreadsheet, database or analytics pipeline.
What you get
Each event is one dataset record:
{
"title": "ISM Manufacturing PMI",
"country": "USD",
"date": "2026-09-01T14:00:00.000Z",
"dateRaw": "2026-09-01T10:00:00-04:00",
"impact": "High",
"forecast": "55.2",
"previous": "55.6",
"actual": null,
"url": null,
"feed": "thisweek"
}
Output schema
| Field | Type | Description |
|---|---|---|
title |
string | Event name (e.g. ISM Manufacturing PMI, Core CPI m/m). |
country |
string | Currency or region the event relates to (e.g. USD, EUR, All). |
date |
string | Event release time as an ISO 8601 UTC timestamp. |
dateRaw |
string | The original release time string, keeping the source timezone offset. |
impact |
string | Expected market impact: High, Medium, Low or Holiday. |
forecast |
string | Consensus forecast value, where published. |
previous |
string | Previous reading for the same indicator, where published. |
actual |
string | Released actual value, present once the event is out. |
url |
string (URL) | Link to the event detail, where provided. |
feed |
string | Which calendar window the event came from. |
FAQ
Do I need an account or login? No. Just pick a calendar window and run.
Which time zone are the dates in?
date is normalized to ISO 8601 UTC so it's unambiguous, and dateRaw keeps the original release-time string with its timezone offset if you'd rather convert it yourself.
What do "forecast", "previous" and "actual" mean?
forecast is the market consensus expectation, previous is the prior reading for the same indicator, and actual is the released figure — populated once the event has taken place.
Can I get only high-impact events?
Yes. Set impactFilter to ["High"] (or any mix) to keep just the events you care about.
How far ahead can I look?
Use the thisweek, thismonth, today and tomorrow windows. Combine them in one run to cover exactly the range you need.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API for programmatic access.
Can I use this with n8n? Yes. Use the Apify node for n8n to run this Actor and pull its dataset straight into an n8n workflow — trigger it on a schedule, then route the events to a database, spreadsheet or messaging step.
Can I connect it to other tools? This Actor connects with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Returns only public economic-calendar data — the same information any visitor can see. This is an independent tool and is not affiliated with, endorsed by or connected to ForexFactory; "ForexFactory" is a trademark of its respective owner. Original clean-room implementation.
Input
| Field | Type | Description |
|---|---|---|
feedsCalendar window(s) | array | Which calendar window(s) to pull. 'This week' is the default and always available; the other windows are included when published. Select one or more. Default: ["thisweek"] |
impactFilterImpact filter (optional) | array | Keep only events at these impact levels. Leave empty to include every impact level (High, Medium, Low and Holiday). |
countryFilterCurrency / country filter (optional) | array | Keep only events for these currencies or regions, e.g. USD, EUR, GBP, JPY, AUD, CAD, CHF, CNY, NZD or All. Leave empty to include every currency. |
maxItemsMax items | integer | Maximum number of events to collect across all selected windows (0 = no limit; collect everything the windows return). Default: 1000 |
proxyConfigurationProxy configuration | object | Proxy settings. Not required by default. If you experience reduced results, enable Apify Residential proxy for the most reliable access. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~forexfactory-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"feeds": [
"thisweek"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/forexfactory-scraper").call(run_input={
"feeds": [
"thisweek"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/forexfactory-scraper').call({
"feeds": [
"thisweek"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Event scraped Charged for each economic-calendar event returned to your dataset. | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Google Autocomplete Keyword Scraper
Generate long-tail keyword ideas from Google Autocomplete: alphabet-soup, question and preposition expansions with relevance scores. Fast SEO keyword research, per country and language. Clean, no setup.
118 runs · 7 users · $0.0013 / keyword scrapedESPN Sports Scraper
Scrape live and past scores, teams, standings and news across NBA, NFL, MLB, NHL, EPL, La Liga and more via ESPN's public data. For sports analytics, betting and fantasy. No setup.
111 runs · 1 users · $0.001 / item scrapedStockTwits Scraper
Scrape StockTwits messages and retail Bullish/Bearish sentiment for any ticker in bulk (stocks, ETFs, crypto, forex). One row per message with body, author, timestamp, sentiment, likes and replies. Fast, reliable and account-free.
73 runs · 2 users · $0.0008 / message scrapedJWT Decoder & Verifier
Decode JWT header and payload, and optionally verify the signature and expiry against a secret or JWKS. Debug and audit auth tokens in bulk.
70 runs · 2 users · $0.001 / jwt processedExchange Rates Scraper
Fetch live and historical foreign-exchange rates published by the European Central Bank: any base currency, any target symbols, plus full time series over a date range. Clean structured JSON, CSV or Excel for finance, invoicing, dashboards and n8n.
64 runs · 2 users · $0.0005 / rate scrapedCongress Stock Trades Scraper
Scrape U.S. Congress members' stock trades & financial disclosures: member, ticker, buy/sell, amount range and dates. One clean row per trade or filing as JSON, CSV or Excel.
62 runs · 1 users · $0.003 / item scrapedSend the site and the fields. We build it and you get it first.