Brazil Selic Interest Rate Scraper
Pricing
from $4.44 / 1,000 observation extracteds
Brazil Selic Interest Rate Scraper
Export official Banco Central do Brasil Selic target and effective rate observations by date for dashboards, models, monitoring, and data pipelines.
Pricing
from $4.44 / 1,000 observation extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Export official Banco Central do Brasil (BCB) Selic target and effective rate observations as structured data.
This Actor turns the official BCB SGS time series into clean records for recurring economic analysis, dashboards, financial models, spreadsheets, and alerts.
It uses the public BCB JSON API directly. No API key, browser, login, or proxy is required.
What does this Actor do?
Brazil Selic Interest Rate Scraper retrieves one or more official series:
- Selic target rate, BCB series 432
- annualized effective Selic rate, BCB series 1178
- daily effective Selic rate, BCB series 11
Choose the latest observation or a historical date range. Results include normalized ISO dates, numeric rates, units, series identity, and an official source URL.
The default run exports the target and annualized effective series for the last 30 days.
Who is it for?
Use this Actor if you are:
- a finance analyst refreshing a Brazil rates dashboard
- an economist comparing target and effective monetary-policy rates
- a data engineer loading BCB observations into a warehouse
- a risk team monitoring rate changes
- a researcher building a time-series dataset
- a developer integrating official Selic data into an application
The Actor is focused on Selic observations. It does not calculate bond prices, loan payments, inflation, forecasts, or investment recommendations.
Why use it?
The BCB API returns dates in Brazilian format and values as strings. This Actor handles normalization and operational details for you:
- stable names for three commonly used Selic series
- ISO
YYYY-MM-DDobservation dates - numeric rate values
- explicit annual or daily units
- latest-only and historical modes
- bounded retries for temporary upstream failures
- deterministic maximum-result limits
- Apify datasets, schedules, webhooks, API, and integrations
Every saved observation retains its official request URL for provenance.
What Brazil Selic interest rate data can I extract?
| Field | Meaning |
|---|---|
observationDate | Official observation date in YYYY-MM-DD format |
rate | Numeric value reported by BCB |
unit | % per year or % per day |
seriesType | target, effectiveAnnual, or effectiveDaily |
seriesName | Human-readable series name |
seriesCode | Official BCB SGS numeric code |
frequency | Source observation frequency |
isLatest | Whether the row is newest for its series in the source response |
source | Banco Central do Brasil |
sourceUrl | Exact official API request used |
fetchedAt | UTC retrieval timestamp |
All dataset schema fields are nullable so downstream exports remain resilient to source changes. The Actor still validates critical dates and rate values before saving a row.
Getting started
- Open the Actor input page.
- Select one or more Selic series.
- Enable Latest observations only for current values, or provide a date range.
- Choose a maximum number of observations.
- Select newest-first or oldest-first sorting.
- Click Start.
- Open the Dataset tab to preview or download results.
For recurring monitoring, create an Apify schedule after confirming your input. Use a webhook or integration to deliver each completed dataset downstream.
Input parameters
series
An array containing one or more supported values.
Defaults to target and effectiveAnnual.
Duplicate values are rejected.
latestOnly
When true, requests the latest available observation for each selected series.
Do not combine this option with startDate or endDate.
startDate
First historical observation date, inclusive, in YYYY-MM-DD format.
When omitted in historical mode, it defaults to 30 days before the run.
endDate
Last historical observation date, inclusive, in YYYY-MM-DD format.
When omitted in historical mode, it defaults to the current run date.
maxItems
Maximum total observations saved across all selected series. The allowed range is 1–10,000 and the default is 100.
sort
Use descending for newest observations first or ascending for oldest observations first.
The default is descending.
Input examples
Latest target and effective annual rates:
{"series": ["target", "effectiveAnnual"],"latestOnly": true,"maxItems": 2,"sort": "descending"}
Historical target rate:
{"series": ["target"],"startDate": "2026-09-01","endDate": "2026-09-08","maxItems": 20,"sort": "ascending"}
Target versus effective rate dataset:
{"series": ["target", "effectiveAnnual"],"startDate": "2025-09-01","endDate": "2026-09-08","maxItems": 1000,"sort": "ascending"}
Output example
A historical target-rate row looks like this:
{"observationDate": "2026-09-04","rate": 14,"unit": "% per year","seriesType": "target","seriesName": "Selic target rate","seriesCode": 432,"frequency": "daily","isLatest": false,"source": "Banco Central do Brasil","sourceUrl": "https://api.bcb.gov.br/dados/serie/bcdata.sgs.432/dados?formato=json&dataInicial=01%2F09%2F2026&dataFinal=08%2F09%2F2026","fetchedAt": "2026-09-08T12:00:00.000Z"}
Results are stored in the run's default dataset. Download them as JSON, CSV, Excel, XML, or RSS through Apify.
How much does it cost to export Brazil Selic rate observations?
Pay-per-event pricing has two parts:
- a one-time
$0.005start charge per run - one
observationevent for each dataset row
The exact tier price is shown in Apify Console before a run. At the BRONZE tier, 100 observations cost the start fee plus 100 observation events. At higher plan tiers, per-observation prices decrease according to the displayed pricing curve.
The Actor never charges an observation event for an invalid, duplicate, empty, or failed record. A no-result historical query incurs only the start event.
Monitoring and data-pipeline workflows
Rate-change monitoring
Schedule latestOnly runs daily.
Compare the new dataset with the previous run in your storage or automation tool.
Trigger a notification when rate changes for the target series.
Dashboard refresh
Request a rolling historical window in ascending order.
Send the dataset to Google Sheets, Airtable, Make, Zapier, or your warehouse.
Use seriesCode and observationDate as a compound key.
Financial-model input
Export target and effective annual rates together.
Keep seriesType as the dimension and rate as the numeric measure.
Use sourceUrl and fetchedAt for auditability.
Backfill
Choose a fixed historical range and a sufficiently high maxItems.
The Actor applies the limit after combining and sorting selected series.
Split very large workflows into bounded date windows if the official service rejects a broad request.
Reliability and failure behavior
The Actor validates input before charging the start event. Malformed dates, unknown series, duplicate series, and contradictory latest/date settings fail clearly.
Official requests use a 20-second timeout. Temporary transport errors, HTTP 429 responses, and server errors are retried up to three times with bounded backoff. Deterministic client errors are not retried blindly.
If BCB returns malformed JSON, an invalid date, or a non-numeric rate, the run fails rather than emitting misleading records.
Limits and data interpretation
- Data availability and revision timing are controlled by Banco Central do Brasil.
- The target series can include calendar-day observations while effective series commonly follow business days.
- Different series use different units; always retain the
unitfield. isLatestmeans newest within the source response, not a prediction about future policy.- The Actor reports official observations and does not infer COPOM decision periods.
- Source URLs and field names may change if BCB changes its public service.
maxItemsapplies across all selected series, not separately to each series.
Consult official BCB methodology before comparing annual and daily rates mathematically.
Apify API with cURL
Replace YOUR_TOKEN with your Apify API token:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~brazil-selic-rate-history/runs?token=YOUR_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"series":["target","effectiveAnnual"],"latestOnly":true,"maxItems":2}'
Read results from the run's defaultDatasetId.
Avoid putting long-lived tokens into source control.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/brazil-selic-rate-history').call({series: ['target', 'effectiveAnnual'],latestOnly: true,maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/brazil-selic-rate-history').call(run_input={'series': ['target', 'effectiveAnnual'],'latestOnly': True,'maxItems': 2,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Claude Code
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/brazil-selic-rate-history"
Claude Desktop, Cursor, and VS Code
Claude Desktop, Cursor, and VS Code clients can use this MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/brazil-selic-rate-history"}}}
Example prompts:
- "Get the latest official Selic target and effective annual rates."
- "Export the BCB Selic target rate from 2026-01-01 through 2026-06-30."
- "Build an ascending target-versus-effective Selic dataset for my dashboard."
The agent still needs an Apify token with permission to run the Actor.
Responsible use and legality
This Actor accesses a public official data service without authentication. Use the results responsibly and comply with applicable BCB terms, attribution guidance, and local law.
Do not present the data as personal financial advice.
For regulated, contractual, or investment decisions, verify observations and methodology against official BCB publications.
Retain sourceUrl to make provenance review straightforward.
Troubleshooting
Why did my run return no rows?
Check that the requested dates contain observations for the selected series.
Effective series commonly omit weekends and holidays.
Try a wider historical range or latestOnly: true.
Why was my input rejected?
Dates must use YYYY-MM-DD and the start cannot be after the end.
Do not provide dates with latestOnly: true.
Choose each supported series at most once.
Why do target and effective series have different row counts?
Series 432 can contain calendar-day target observations. Effective-rate series generally contain business-day market observations. This is source behavior, not missing Actor pagination.
What should I do after a temporary BCB outage?
Inspect the run log first. The Actor already retries transient failures three times. If the official service remains unavailable, rerun later rather than enabling a proxy.
FAQ
Is this an official Banco Central do Brasil product?
No. This independent Apify Actor reads the official public BCB SGS API and preserves official provenance in each row.
Does it need a BCB API key?
No. The supported SGS endpoints are public and anonymous.
Can I fetch only the current Selic rate?
Yes.
Enable latestOnly and select the desired series.
Can I export more than one series?
Yes. Select any combination of target, effective annual, and effective daily series.
Does the Actor calculate accumulated Selic returns?
No. It exports source observations without inventing compounded values or forecasts.
Can I schedule it?
Yes. Use an Apify schedule and connect a webhook or integration to the resulting dataset.
Related Actors
For broader market datasets, explore other public Actors from Automation Lab. This Actor is intentionally standalone for official Selic observations; no currently verified Automation Lab Actor provides a necessary adjacent BCB workflow.