Investing APIbr.investing.com ↗
Access Brazil's Investing.com economic calendar: scheduled releases, country filters, and full indicator history with actual, forecast, and previous figures.
What is the Investing API?
This API exposes 3 endpoints covering br.investing.com's economic calendar: scheduled macro releases, central-bank speeches, and reports across 107 countries. Use list_economic_events to retrieve events between two dates filtered by country and importance level, list_countries to get the full country filter list with numeric IDs, and get_event_history to pull a single indicator's definition alongside its complete release history including actual, forecast, and previous values.
curl -X GET 'https://api.parse.bot/scraper/0edb0538-d7b4-4ac9-94db-c7114c2ebc32/list_economic_events?end_date=2026-10-24&start_date=2026-10-18' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace br-investing-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Investing.com Brasil Economic Calendar — bounded, re-runnable."""
from parse_apis.br_investing_com_api import InvestingCalendar, EventNotFound
client = InvestingCalendar()
# Browse upcoming high-importance economic releases for this week.
for occ in client.occurrences.list(importance="high", limit=5):
print(occ.datetime_utc, occ.event.name, occ.event.importance)
# Pick the first occurrence and drill into its event's full release history.
occ = client.occurrences.list(importance="high", limit=1).first()
if occ is not None:
try:
for past in client.occurrences.list_history(event_id=str(occ.event_id), limit=3):
print(past.date_local, past.reference_period, past.actual, past.previous)
except EventNotFound:
print("event no longer available")
# List available countries for filtering.
for country in client.countries.list(limit=5):
print(country.country_id, country.country_code, country.name, country.region)
print("exercised: occurrences.list / occurrences.list_history / countries.list")
Lists scheduled economic calendar releases (indicators, central-bank speeches, reports) between two calendar days, ordered by release time. Each row is one scheduled occurrence with its release moment in UTC (datetime_utc) and in Brazil time (date_local / time_local, America/Sao_Paulo), the reference period, the previous/forecast/actual figures when the site publishes them (null otherwise, e.g. speeches), and the nested event definition (name, country_id, currency, category, importance, description). Days are interpreted in America/Sao_Paulo; omitting both dates returns today, omitting end_date returns the single start day. One upstream call per page: limit rows (max 200) are returned and next_cursor/has_more give the continuation; pass next_cursor back as cursor with the same other inputs to fetch the next page. country_ids takes ids from list_countries; importance accepts a comma-separated subset of low, medium, high. An empty items array means the site lists nothing for those filters.
| Param | Type | Description |
|---|---|---|
| limit | integer | Rows per page; values above 200 are clamped to 200. |
| cursor | string | Opaque continuation token: next_cursor from the previous page of this endpoint, with the same other inputs. |
| end_date | string | Last calendar day (inclusive), ISO YYYY-MM-DD in Brazil time. Omitted = same as start_date. |
| importance | string | Comma-separated expected-volatility levels to keep: low, medium, high (e.g. high or medium,high). Omitted = all levels. |
| start_date | string | First calendar day, ISO YYYY-MM-DD in Brazil time. Omitted = today. |
| country_ids | string | Comma-separated country_id values from list_countries.countries[*].country_id (e.g. 32,5). Omitted = all countries. |
{
"type": "object",
"fields": {
"count": "number of items on this page",
"items": "array of scheduled occurrences; each has occurrence_id, event_id, datetime_utc (ISO UTC release time), date_local and time_local (Brazil time), reference_period (site label of the period, null for speeches), actual/forecast/previous numeric figures (null when not published), previous_revised_from, unit (e.g. %, K, M, B), precision (decimals), preliminary, actual_to_forecast and revised_to_previous (neutral/positive/negative), and event (nested definition: event_id, name, long_name, country_id, currency, category, event_type (speech/report or null), importance low/medium/high, description, source, source_url, page_url)",
"end_date": "requested last day (YYYY-MM-DD, Brazil time)",
"has_more": "true when next_cursor is present",
"timezone": "IANA zone used for date_local/time_local (America/Sao_Paulo)",
"start_date": "requested first day (YYYY-MM-DD, Brazil time)",
"next_cursor": "continuation token for the next page, null when exhausted"
},
"sample": {
"data": {
"count": 1,
"items": [
{
"unit": "M",
"event": {
"name": "Estoques de Petróleo Bruto",
"source": "U.S. Energy Information Administration",
"category": "balance",
"currency": "USD",
"event_id": 75,
"page_url": "https://br.investing.com/economic-calendar/eia-crude-oil-inventories-75",
"long_name": "EUA - Estoques de Petróleo Bruto",
"country_id": 5,
"event_type": null,
"importance": "high",
"source_url": "https://www.eia.gov/",
"description": "Os estoques de petróleo bruto da Energy Information Administration (EIA) mede a mudança semanal no número de barris de petróleo bruto mantidos por empresas dos EUA."
},
"actual": null,
"event_id": 75,
"forecast": null,
"previous": -8.557,
"precision": 3,
"date_local": "2026-10-21",
"time_local": "11:30",
"preliminary": false,
"datetime_utc": "2026-10-21T14:30:00Z",
"occurrence_id": 559511,
"reference_period": "",
"actual_to_forecast": "neutral",
"revised_to_previous": "neutral",
"previous_revised_from": null
}
],
"end_date": "2026-10-23",
"has_more": true,
"timezone": "America/Sao_Paulo",
"start_date": "2026-10-19",
"next_cursor": "eyJ0aW1lIjoiMjAyNi0xMC0yM1QxMjowMDowMFoiLCJpZCI6NTU4NjEyfQ=="
},
"status": "success"
}
}About the Investing API
Scheduled Economic Events
list_economic_events returns an array of upcoming and current-day calendar items ordered by release time. Each item carries occurrence_id, event_id, datetime_utc for the UTC release moment, and date_local/time_local in America/Sao_Paulo time. You can narrow results with start_date and end_date (ISO YYYY-MM-DD in Brazil time), filter by importance (low, medium, high, or any comma-separated combination), and restrict to specific countries using country_ids values from list_countries. Pages are capped at 200 rows; use the opaque next_cursor token to walk subsequent pages.
Country Filter List
list_countries returns a single page of all 107 countries available in the calendar, each with a numeric country_id (used directly in list_economic_events), an ISO 3166 alpha-2 country_code, a Portuguese name, and a region grouping. No inputs are required and there is no pagination.
Indicator History
get_event_history accepts a required event_id (sourced from list_economic_events items) and returns the event's definition — including name, long_name, country_id, currency, category, event_type (speech, report, or null), and importance — alongside a newest-first list of past and upcoming occurrences. Each occurrence includes reference_period, actual, forecast, previous, and revision figures in addition to the UTC and Brazil-local timestamps. Pages are capped at 200 occurrences per request with next_cursor pagination for older records.
The Investing API is a managed, monitored endpoint for br.investing.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when br.investing.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official br.investing.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a real-time macro event dashboard that surfaces high-importance releases by country using
importance=highandcountry_idsfilters. - Track consensus-vs-actual divergence for a specific indicator by comparing
forecastandactualfields fromget_event_history. - Alert traders to upcoming central-bank speeches by filtering
event_type=speechoccurrences fromlist_economic_events. - Construct a backtesting dataset of Brazilian economic releases using paginated
get_event_historyfor BRL-denominated indicators. - Populate a country selector UI with ISO codes and region groupings from
list_countriesto drive calendar filtering. - Aggregate revision frequency for key indicators by examining the
revisionfield across historical occurrences of a givenevent_id. - Monitor multi-country release schedules for a given trading week by querying
start_datethroughend_datewith a comma-separatedcountry_idslist.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Investing.com provide an official developer API?+
What does `get_event_history` return beyond raw numbers?+
get_event_history returns the event definition fields (name, long_name, currency, category, event_type, importance) alongside each historical occurrence's reference_period, actual, forecast, previous, and revision values. Occurrences are sorted newest-first and paginated with next_cursor; the maximum page size is 200 items.How does importance filtering work in `list_economic_events`?+
importance parameter accepts a comma-separated list of low, medium, and high. Supplying importance=high returns only high-volatility events. Omitting the parameter returns all importance levels. The returned items include an importance field so you can still inspect the level in the response regardless of how you filtered.Does the API cover intraday price data or market quotes alongside the calendar events?+
Is there a known limitation on the date range or historical depth available?+
list_economic_events and get_event_history. There is no documented maximum lookback window, but historical depth depends on what br.investing.com retains for each indicator. Very old or newly tracked indicators may have sparse history. Use has_more and next_cursor to determine when records are exhausted.