IBGE Brazil Statistics Scraper
Pricing
from $25.30 / 1,000 catalogue entries
IBGE Brazil Statistics Scraper
Get public IBGE SIDRA catalogue entries, aggregate metadata, available periods, territorial references, and source-linked observations. Choose a focused workflow and download the records for research, reporting, or data pipelines.
Pricing
from $25.30 / 1,000 catalogue entries
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
📊 Explore IBGE SIDRA statistics
Researchers, analysts, journalists, and developers can use IBGE SIDRA to collect public Brazilian statistics in a structured way. Choose a target and get source-linked catalogue entries, territorial references, aggregate metadata, available periods, or observations in a downloadable Apify dataset. This keeps official IDs, labels, values, periods, and source links together for research, reporting, and data pipelines.
- Pull public data for a SIDRA IBGE project and keep the source link with each row.
- Build a place lookup with IBGE Cidades and use official territory names and IDs.
- Collect a Censo IBGE view for a population or territorial research task.
- Compare state-level public statistics with IBGE Estados in a structured dataset.
- Organize source-linked rows for IBGE Datasets and downstream analysis.
- Look up official IDs with IBGE Code when you need to join Brazilian geography data.
📚 Browse IBGE SIDRA records
Each saved row has a recordType and an official sourceUrl. The other fields depend on the target. IBGE source modification time appears as sourceModifiedAt when the source publishes it.
Catalogue entry
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as catalogueEntry. |
aggregate.id | string | Official SIDRA aggregate ID. |
aggregate.name | string | Name of the aggregate when published. |
aggregate.subject | string | Subject covered by the aggregate when published. |
sourceUrl | string (URL) | Official IBGE source page for the entry. |
sourceModifiedAt | string (date-time, optional) | Time the source last changed when IBGE publishes it. |
Example row
{"recordType": "catalogueEntry","aggregate": {"id": "10510","name": "Índice de conhecimento da biodiversidade","subject": "Avaliação dos dados sobre a Biodiversidade Brasileira "},"sourceUrl": "https://sidra.ibge.gov.br/tabela/10510"}
Territorial reference
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as territorialReference. |
territory.id | string | Official IBGE territory ID. |
territory.name | string | Official territory name. |
territory.level | string | Territory level: state, municipality, region, mesoregion, or microregion. |
territory.abbreviation | string (optional) | Official abbreviation when IBGE publishes one. |
territory.regionalContext.stateId | string (optional) | ID of the related state. |
territory.regionalContext.stateName | string (optional) | Name of the related state. |
territory.regionalContext.regionId | string (optional) | ID of the related region. |
territory.regionalContext.regionName | string (optional) | Name of the related region. |
territory.regionalContext.mesoregionId | string (optional) | ID of the related mesoregion. |
territory.regionalContext.mesoregionName | string (optional) | Name of the related mesoregion. |
territory.regionalContext.microregionId | string (optional) | ID of the related microregion. |
territory.regionalContext.microregionName | string (optional) | Name of the related microregion. |
sourceUrl | string (URL) | Official IBGE source page for the territory. |
sourceModifiedAt | string (date-time, optional) | Time the source last changed when IBGE publishes it. |
Example row
{"recordType": "territorialReference","territory": {"id": "1100015","name": "Alta Floresta D'Oeste","level": "municipality","regionalContext": {"microregionId": "11006","microregionName": "Cacoal","mesoregionId": "1102","mesoregionName": "Leste Rondoniense","stateId": "11","stateName": "Rondônia","regionId": "1","regionName": "Norte"}},"sourceUrl": "https://servicodados.ibge.gov.br/api/v1/localidades/municipios"}
Aggregate metadata
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as aggregateMetadata. |
aggregate.id | string | Official SIDRA aggregate ID. |
aggregate.name | string | Name of the aggregate when published. |
aggregate.subject | string | Subject covered by the aggregate when published. |
variables | object[] | Variables published for the aggregate. |
variables[].id | string | Official variable ID. |
variables[].name | string | Variable label. |
variables[].unit | string | Unit used by the variable. |
classifications | object[] | Classifications published for the aggregate. |
classifications[].id | string | Official classification ID. |
classifications[].name | string | Classification label. |
supportedTerritorialLevels | string[] | Territorial levels supported by the aggregate. |
frequency | string | Publication frequency when available. |
sourceUrl | string (URL) | Official IBGE source page for the metadata. |
sourceModifiedAt | string (date-time, optional) | Time the source last changed when IBGE publishes it. |
Example row
{"recordType": "aggregateMetadata","aggregate": {"id": "10511","name": "Quantidade de registros total e nível 1, por grupos taxonômicos","subject": "Biodiversidade"},"variables": [{"id": "14019","name": "Número de registros de Nível 1 de qualidade da informação","unit": "Unidades"},{"id": "14020","name": "Número de registros","unit": "Unidades"}],"classifications": [{"id": "12919","name": "Grupos taxonômicos"}],"supportedTerritorialLevels": ["municipality","state"],"frequency": "anual","sourceUrl": "https://sidra.ibge.gov.br/tabela/10511"}
Available period
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as availablePeriod. |
aggregate.id | string | Official SIDRA aggregate ID. |
aggregate.name | string | Name of the aggregate when published. |
aggregate.subject | string | Subject covered by the aggregate when published. |
period | string | Period available for the aggregate. |
sourceUrl | string (URL) | Official IBGE source page for the period. |
sourceModifiedAt | string (date-time, optional) | Time the source last changed when IBGE publishes it. |
Example row
{"recordType": "availablePeriod","aggregate": {"id": "4714","name": "População Residente, Área territorial e Densidade demográfica","subject": "Território"},"period": "2022","sourceUrl": "https://sidra.ibge.gov.br/tabela/4714","sourceModifiedAt": "2026-05-07T00:00:00.000Z"}
Observation
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as observation. |
aggregate.id | string | Official SIDRA aggregate ID. |
aggregate.name | string | Name of the aggregate when published. |
aggregate.subject | string | Subject covered by the aggregate when published. |
variable.id | string | Official variable ID. |
variable.name | string | Variable label. |
variable.unit | string | Unit used for the value. |
territory.id | string | Official territory ID. |
territory.name | string | Territory name. |
territory.level | string | Territory level. |
territory.abbreviation | string (optional) | Official abbreviation when IBGE publishes one. |
territory.regionalContext.stateId | string (optional) | ID of the related state. |
territory.regionalContext.stateName | string (optional) | Name of the related state. |
territory.regionalContext.regionId | string (optional) | ID of the related region. |
territory.regionalContext.regionName | string (optional) | Name of the related region. |
territory.regionalContext.mesoregionId | string (optional) | ID of the related mesoregion. |
territory.regionalContext.mesoregionName | string (optional) | Name of the related mesoregion. |
territory.regionalContext.microregionId | string (optional) | ID of the related microregion. |
territory.regionalContext.microregionName | string (optional) | Name of the related microregion. |
period | string | Period for the observation. |
value | number | Numeric value published by IBGE. |
valueOriginal | string (optional) | Original source representation of the value when available. |
sourceUrl | string (URL) | Official IBGE source page for the observation. |
sourceModifiedAt | string (date-time, optional) | Time the source last changed when IBGE publishes it. |
Example row
{"recordType": "observation","aggregate": {"id": "4714","name": "População Residente, Área territorial e Densidade demográfica","subject": "Território"},"variable": {"id": "93","name": "População residente","unit": "Pessoas"},"territory": {"id": "11","name": "Rondônia","level": "state"},"period": "2022","value": 1581196,"valueOriginal": "1581196","sourceUrl": "https://sidra.ibge.gov.br/tabela/4714","sourceModifiedAt": "2026-05-07T00:00:00.000Z"}
▶️ Run an IBGE SIDRA lookup
Run steps
- Pick one target in the input form.
- Add aggregate IDs for metadata, periods, or observations. You can send up to 100 IDs for these targets.
- Add periods, variable IDs, or territorial levels when you want a narrower observation scope.
- Start the run and open the returned dataset after it finishes.
What the run does
One run covers one coherent target. An aggregate ID list is a same-kind batch for supported targets, not several separate workflows. The Actor reads public IBGE data and saves eligible rows with a source URL. Fields for another target stay visible in the form but are ignored.
Access
You do not need to provide a source credential. The successful run dataset stays available through the datasetUrl output link.
⚙️ Input
Fields for another target stay visible but are ignored. Leave periods, variableIds, or territorialLevels empty to use all available values for the selected target. A broad empty scope can return all available results until the source is exhausted.
Input fields
| Field | Type | What it does |
|---|---|---|
target | string | Required. Choose catalogue, territorialReference, aggregateMetadata, availablePeriods, or observations. |
periods | string[] | For observations, select one or more published periods. Leave empty to use all available periods. Other targets ignore this field. |
variableIds | string[] | For observations, select one or more variable IDs. Leave empty to use all available variables. Other targets ignore this field. |
aggregateIds | string[] | For aggregate metadata, available periods, or observations, enter one or more numeric SIDRA IDs. Up to 100 IDs are allowed. Other targets ignore this field. |
territorialLevels | string[] | For territorial references or observations, choose states, municipalities, regions, mesoregions, or microregions. Leave empty to use all available levels for the selected target. Other targets ignore this field. |
Example input
{"target": "observations","periods": ["2022"],"variableIds": ["93"],"aggregateIds": ["4714"],"territorialLevels": ["states"]}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
datasetUrl | string (URL) | Link to the successful IBGE SIDRA records from this run. |
The dataset contains one row for each returned source item. The tables above describe the complete fields for each row shape, including nested fields such as aggregate.id and territory.regionalContext.regionName.
💳 Pricing
Pay per saved shape
This Actor uses pay-per-event pricing. Successful saved rows use the buyer-facing event for their shape:
| Event | Charged for |
|---|---|
| Catalogue entry | One catalogue entry with its ID, name, subject, and source link is saved. |
| Observation | One observation for the selected aggregate, period, variable, and territory is saved. |
| Territory | One territory with its ID, name, level, and available regional context is saved. |
| Aggregate metadata | Variables and units for one aggregate are saved. |
| Available period | One period available for the selected aggregate is saved. |
The Store Pricing panel shows the current tier prices. This page does not state a charge for setup, diagnostic, empty, or no-result work.
🔌 Integrations
Dataset workflow
Download the run dataset from Apify and pass the structured rows to your research, reporting, or data pipeline after the run.
Video guide
❓ FAQ
Which target returns measured values?
Choose observations when you need a value for an aggregate, period, variable, and territorial level. The row includes the numeric value and its original source representation when available.
Which target tells me what an aggregate contains?
Choose aggregateMetadata to get its variables and units. The row can also include classifications, supported territorial levels, and frequency when published.
Can I see available periods before collecting observations?
Yes. Choose availablePeriods and provide the aggregate IDs. The result lists periods with a source modification time when IBGE publishes one.
What happens when I leave a scope list empty?
An empty periods, variableIds, or territorialLevels list uses all values available for the selected target. The run continues until the source is exhausted.
Can one run combine several targets?
No. One run covers one target. You can send a simple list of up to 100 aggregate IDs for the supported aggregate-oriented targets, but you cannot combine catalogue, territory, metadata, periods, and observations in one run.
Do I need an IBGE API key?
No source credential is required in the input. The Actor uses the supported public IBGE workflows.
Can I verify a returned value?
Yes. Each returned row includes an official sourceUrl, and it can include sourceModifiedAt when IBGE publishes that time.
Does the Actor calculate forecasts or custom statistics?
No. It returns published IBGE catalogue, territorial, metadata, period, and observation records. It does not add forecasts, custom calculations, or interpretations.
📝 Changelog
v1.0 (17-09-2026)
- Observation runs use a separate access path for IBGE data.
- Saved records no longer include a separate
collectedAttimestamp. - Each saved record is charged once, including when the default dataset is used.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- World Bank Projects Scraper helps compare public World Bank projects, financing, countries, and indicators with IBGE statistics.
- IBGE Brazil Statistics Scraper provides another workflow for official Brazilian SIDRA catalogue entries, metadata, periods, and observations.
- Norway SSB Public Statistics Scraper helps collect official Norwegian statistics with codes, labels, values, and periods.
- OECD Short-term Economic Statistics Scraper helps compare short-term economic indicators such as prices and industrial production across countries.
- ONS UK Statistics Scraper helps browse UK statistical catalogues, metadata, and observations with dimension filters.
Made with ❤️ by Maxime Dupré