IBGE SIDRA Statistics avatar

IBGE SIDRA Statistics

Pricing

from $25.30 / 1,000 catalogue entries

Go to Apify Store
IBGE SIDRA Statistics

IBGE SIDRA Statistics

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

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, an official sourceUrl, and a collectedAt time. The other fields depend on the target. IBGE source modification time appears as sourceModifiedAt when the source publishes it.

Catalogue entry

FieldTypeWhat it does
recordTypestringIdentifies this row as catalogueEntry.
aggregate.idstringOfficial SIDRA aggregate ID.
aggregate.namestringName of the aggregate when published.
aggregate.subjectstringSubject covered by the aggregate when published.
sourceUrlstring (URL)Official IBGE source page for the entry.
sourceModifiedAtstring (date-time, optional)Time the source last changed when IBGE publishes it.
collectedAtstring (date-time)Time this row was collected.

Territorial reference

FieldTypeWhat it does
recordTypestringIdentifies this row as territorialReference.
territory.idstringOfficial IBGE territory ID.
territory.namestringOfficial territory name.
territory.levelstringTerritory level: state, municipality, region, mesoregion, or microregion.
territory.abbreviationstring (optional)Official abbreviation when IBGE publishes one.
territory.regionalContext.stateIdstring (optional)ID of the related state.
territory.regionalContext.stateNamestring (optional)Name of the related state.
territory.regionalContext.regionIdstring (optional)ID of the related region.
territory.regionalContext.regionNamestring (optional)Name of the related region.
territory.regionalContext.mesoregionIdstring (optional)ID of the related mesoregion.
territory.regionalContext.mesoregionNamestring (optional)Name of the related mesoregion.
territory.regionalContext.microregionIdstring (optional)ID of the related microregion.
territory.regionalContext.microregionNamestring (optional)Name of the related microregion.
sourceUrlstring (URL)Official IBGE source page for the territory.
sourceModifiedAtstring (date-time, optional)Time the source last changed when IBGE publishes it.
collectedAtstring (date-time)Time this row was collected.

Example row

{
"recordType": "territorialReference",
"territory": {
"id": "1101",
"name": "Madeira-Guaporé",
"level": "mesoregion",
"regionalContext": {
"mesoregionId": "1101",
"mesoregionName": "Madeira-Guaporé",
"stateId": "11",
"stateName": "Rondônia",
"regionId": "1",
"regionName": "Norte"
}
},
"sourceUrl": "https://servicodados.ibge.gov.br/api/v1/localidades/mesorregioes",
"collectedAt": "2026-08-12T18:51:46.496Z"
}

Aggregate metadata

FieldTypeWhat it does
recordTypestringIdentifies this row as aggregateMetadata.
aggregate.idstringOfficial SIDRA aggregate ID.
aggregate.namestringName of the aggregate when published.
aggregate.subjectstringSubject covered by the aggregate when published.
variablesobject[]Variables published for the aggregate.
variables[].idstringOfficial variable ID.
variables[].namestringVariable label.
variables[].unitstringUnit used by the variable.
classificationsobject[]Classifications published for the aggregate.
classifications[].idstringOfficial classification ID.
classifications[].namestringClassification label.
supportedTerritorialLevelsstring[]Territorial levels supported by the aggregate.
frequencystringPublication frequency when available.
sourceUrlstring (URL)Official IBGE source page for the metadata.
sourceModifiedAtstring (date-time, optional)Time the source last changed when IBGE publishes it.
collectedAtstring (date-time)Time this row was collected.

Example row

{
"recordType": "aggregateMetadata",
"aggregate": {
"id": "4714",
"name": "População Residente, Área territorial e Densidade demográfica",
"subject": "Território"
},
"variables": [
{
"id": "93",
"name": "População residente",
"unit": "Pessoas"
},
{
"id": "6318",
"name": "Área da unidade territorial",
"unit": "Quilômetros quadrados"
},
{
"id": "614",
"name": "Densidade demográfica",
"unit": "Habitante por quilômetro quadrado"
}
],
"classifications": [],
"supportedTerritorialLevels": [
"region",
"municipality",
"state"
],
"frequency": "anual",
"sourceUrl": "https://sidra.ibge.gov.br/tabela/4714",
"collectedAt": "2026-08-12T18:51:45.775Z"
}

Available period

FieldTypeWhat it does
recordTypestringIdentifies this row as availablePeriod.
aggregate.idstringOfficial SIDRA aggregate ID.
aggregate.namestringName of the aggregate when published.
aggregate.subjectstringSubject covered by the aggregate when published.
periodstringPeriod available for the aggregate.
sourceUrlstring (URL)Official IBGE source page for the period.
sourceModifiedAtstring (date-time, optional)Time the source last changed when IBGE publishes it.
collectedAtstring (date-time)Time this row was collected.

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",
"collectedAt": "2026-08-12T18:51:45.342Z"
}

Observation

FieldTypeWhat it does
recordTypestringIdentifies this row as observation.
aggregate.idstringOfficial SIDRA aggregate ID.
aggregate.namestringName of the aggregate when published.
aggregate.subjectstringSubject covered by the aggregate when published.
variable.idstringOfficial variable ID.
variable.namestringVariable label.
variable.unitstringUnit used for the value.
territory.idstringOfficial territory ID.
territory.namestringTerritory name.
territory.levelstringTerritory level.
territory.abbreviationstring (optional)Official abbreviation when IBGE publishes one.
territory.regionalContext.stateIdstring (optional)ID of the related state.
territory.regionalContext.stateNamestring (optional)Name of the related state.
territory.regionalContext.regionIdstring (optional)ID of the related region.
territory.regionalContext.regionNamestring (optional)Name of the related region.
territory.regionalContext.mesoregionIdstring (optional)ID of the related mesoregion.
territory.regionalContext.mesoregionNamestring (optional)Name of the related mesoregion.
territory.regionalContext.microregionIdstring (optional)ID of the related microregion.
territory.regionalContext.microregionNamestring (optional)Name of the related microregion.
periodstringPeriod for the observation.
valuenumberNumeric value published by IBGE.
valueOriginalstring (optional)Original source representation of the value when available.
sourceUrlstring (URL)Official IBGE source page for the observation.
sourceModifiedAtstring (date-time, optional)Time the source last changed when IBGE publishes it.
collectedAtstring (date-time)Time this row was collected.

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",
"collectedAt": "2026-08-12T18:48:26.213Z"
}

▶️ Run an IBGE SIDRA lookup

Run steps

  1. Pick one target in the input form.
  2. Add aggregate IDs for metadata, periods, or observations. You can send up to 100 IDs for these targets.
  3. Add periods, variable IDs, or territorial levels when you want a narrower observation scope.
  4. 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 and collection time. 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

FieldTypeWhat it does
targetstringRequired. Choose catalogue, territorialReference, aggregateMetadata, availablePeriods, or observations.
periodsstring[]For observations, select one or more published periods. Leave empty to use all available periods. Other targets ignore this field.
variableIdsstring[]For observations, select one or more variable IDs. Leave empty to use all available variables. Other targets ignore this field.
aggregateIdsstring[]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.
territorialLevelsstring[]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",
"aggregateIds": [
"4714"
],
"periods": [
"2022"
],
"variableIds": [
"93"
],
"territorialLevels": [
"states"
]
}

🧾 Output

Run output

FieldTypeWhat it does
datasetUrlstring (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:

EventCharged for
Catalogue entryOne successful catalogue entry with its ID, name, subject, and source link.
ObservationOne successful observation for its aggregate, period, variable, and territorial level.
TerritoryOne successful territory with its ID, name, level, and regional context when available.
Aggregate metadataOne successful aggregate metadata entry with its variables and units.
Available periodOne successful available period for an aggregate.

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. collectedAt tells you when the Actor fetched the row.

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

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré