IBGE Brasil MCP
One-line summary: This MCP server gives AI assistants live, exact, citable Brazilian public data from official IBGE APIs across geography, demographics, economics, health, and news.
List Brazilian states and their regions, municipalities (all 5,570), and search municipalities by name
Resolve, decode, and navigate IBGE geographic codes (regions, states, municipalities, districts) and their full hierarchies
Find neighboring municipalities via shared mesoregion, with optional population data
Query SIDRA tables directly (Census, PNAD, GDP, IPCA, etc.) with filters, pagination, and statistics mode (min/max/mean/median/percentiles, top/bottom rankings, grouped rankings) over all rows
Discover SIDRA tables and inspect their metadata (variables, periods, territorial levels) with accent-insensitive, vocabulary-translated search
Get simplified Demographic Census data (1970–2022) across 16 themes like population, literacy, housing, age/sex, religion, race, income, education, work, Indigenous and Quilombola populations, sanitation, disability
Access economic and social indicators: GDP, GDP per capita, IPCA, INPC, unemployment, employment, income, informality, agriculture
Compare and rank 2–10 municipalities or states on one indicator with aggregated statistics
Retrieve municipal panels (Cidades@ style): population, HDI, GDP per capita, schooling, mortality, salaries, revenues, expenses and historical series
Query international country data (UN M49): lists, details, search, regional filters, indicators
Get name frequency and rankings in Brazil by decade, sex, and locality
Search and explore the CNAE economic activity classification hierarchy with vocabulary-aware search
Fetch geographic meshes (GeoJSON, TopoJSON, SVG) for Brazil, regions, states, municipalities with resolution and quality options
Explore thematic territorial recortes (biomes, Legal Amazon, semi-arid, coastal, border, metropolitan regions, RIDEs) with geometry download URLs
Query health indicators (infant mortality, life expectancy, births, deaths, fertility, water, sewage, health insurance)
Browse IBGE news/press releases and the release and collection calendar with filters by type, product, and date
Support ChatGPT Deep Research via the contract-mandated
searchandfetchtools over an IBGE catalogEvery response includes a provenance block (source, canonical URL, reference period, real extraction timestamp, citation, license) with structuredContent,
_meta, and a Markdown footer
Implements the OpenAI Deep Research contract with search and fetch tools over the IBGE catalog, allowing ChatGPT Deep Research to find and retrieve citable IBGE documents such as tables, municipalities, and indicators.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
IBGE Brasil MCP Server
Live, exact Brazilian public data for your AI assistant — with provenance, not guesswork.
Ask an LLM "what was Belo Horizonte's population in the 2022 Census?" and you get a plausible number from its training data: maybe right, maybe outdated, with no source. ibge-br-mcp instead has your assistant query the official IBGE APIs in real time — returning the exact figure together with the table and period it came from.
This server implements the Model Context Protocol (MCP) to give AI assistants live, structured access to Brazil's public geographic, demographic, economic, and health data — sourced from the IBGE APIs (including health indicators served through IBGE's SIDRA system).
See it in action
Ask your assistant, in English or Portuguese:
"What was Belo Horizonte's population in the 2022 Census?" →
ibge_cidades/ibge_censo"List the municipalities of Espírito Santo." →
ibge_municipios"Compare GDP across the Southeast state capitals." →
ibge_comparar
The answers come live from the official IBGE APIs — exact figures with the table and period they came from, not numbers guessed from training data.
Want to see a whole analysis rather than a single answer? The end-to-end demo works one real question — which state grew most between the 2010 and 2022 Censuses, and what drove it — from first call to conclusion, with every figure as it came back. The practical examples are seven shorter recipes, including ranking all 5,570 municipalities in a single call.
Related MCP server: Brazilian CEP MCP
Features
23 tools covering all major IBGE data domains — 21
ibge_*data tools plussearch/fetchfor ChatGPT Deep ResearchProvenance block on every response — source, canonical URL, reference period, real extraction timestamp, ready-to-use citation, and legal regime (see Data provenance)
Reference resources & analysis prompts (MCP catalogs + ready-made templates)
565 automated tests — 88% overall coverage, 92% across the tools
Automatic caching with configurable TTL for optimal performance
Retry mechanism with exponential backoff for network resilience
Comprehensive validation for all input parameters
Standardized error handling with helpful suggestions
Full TypeScript support with strict typing
📖 Article (in Portuguese): Como achar a tabela certa no SIDRA — e como saber que é a certa — finding the right SIDRA table, the metadata that settles it, a full worked example on 2022 Census data, and the four traps that cost the most. Also published on the site, in Portuguese and English: sidneybissoli.com.
🔌 Tutorial: Querying SIDRA through MCP in Claude and ChatGPT — how to connect this server in claude.ai, Claude Desktop, Claude Code, ChatGPT (developer mode and Deep Research), Cursor, VS Code and Gemini CLI, then one real query end to end with the provenance block it returns. Em português.
Data provenance
Since v3.3.0 every successful tool response carries a provenance block (portfolio contract v1.0), so each number is citable, auditable, and reproducible. The block is emitted on three channels:
structuredContent.provenance(parseable, visible to the model) — exactly six keys:source(the IBGE API queried),source_url(canonical URL that reproduces the query),data_vintage(reference period when the source exposes one;nullotherwise),retrieved_at(the REAL upstream extraction instant, preserved across cache hits, Brasília time),citation("Fonte: IBGE — [pesquisa/tabela], [URL], extraído em [data]."), andlicense— plusattribution, the canonical list of source URLs._metaunderbr.com.sidneybissoli.ibge/provenanceand.../attribution(out-of-band mirror for audit/UI, zero model tokens).A compact text footer appended to the Markdown, for text-only clients.
The IBGE APIs declare no license of their own; the legal regime is Brazil's
open-data framework — Lei 12.527/2011 (LAI) and Decreto 8.777/2016
(unrestricted reuse, free use, obligation limited to crediting the source).
Statistics-mode responses (estatisticas=true) and ibge_comparar are marked
derived with an explanatory note in the canonical block, since the
aggregates are computed server-side from the raw IBGE values.
What each number is, and which version of it. A SIDRA value says neither
its period nor whether it is a monthly change, a year-to-date or 12-month
accumulation, an index or a level — the record's period column and its
Variável label do, and each ibge_indicadores entry is pinned to the one
variable its name promises (since 5.7.0; before, nine of them mixed every
variable of the table). data_vintage is ordered by the SIDRA period code, so
a January–December request reads "janeiro 2024–dezembro 2024". Every value is
the version SIDRA publishes at retrieved_at: IBGE revises published figures
(quarterly GDP, PNAD reweighting, PIM/PMC/PMS) and keeps no earlier version.
Available Tools
Localities & Geography
Tool | Description |
| List Brazilian states with region filtering |
| List municipalities by state or search by name |
| Get details of a locality by IBGE code |
| Decode IBGE codes or search codes by name |
| Find neighboring municipalities |
Statistical Data (SIDRA)
Tool | Description |
| Query SIDRA tables (Census, PNAD, GDP, etc.) |
| List and search available SIDRA tables (accent-insensitive; everyday Portuguese resolved to the IBGE's wording, and the response says so) |
| Get table metadata (variables, periods, levels) |
| List IBGE research surveys and their tables |
Economic & Social Indicators
Tool | Description |
| Economic and social indicators (GDP, IPCA, unemployment) |
| Census data (1970-2022) with 16 themes |
| Compare indicators across localities with rankings |
Municipal Data (Cidades@)
Tool | Description |
| Municipal indicators (population, HDI, GDP per capita, etc.) |
International Data
Tool | Description |
| Country data following UN M49 methodology |
Demographics
Tool | Description |
| Name frequency and rankings in Brazil |
Classifications
Tool | Description |
| CNAE (National Classification of Economic Activities) |
Maps & Geographic Meshes
Tool | Description |
| Geographic meshes (GeoJSON, TopoJSON, SVG) |
| What a thematic recorte contains (biomes, Legal Amazon, semi-arid, coastal, border strip, metro regions, RIDEs) + the URL to download its geometry |
Health
Tool | Description |
| Health indicators via IBGE's SIDRA |
News & Calendar
Tool | Description |
| IBGE news and press releases |
| IBGE release and collection calendar |
ChatGPT Deep Research
Tool | Description |
| Searches the IBGE catalog (SIDRA tables, municipalities, known indicators) — OpenAI Deep Research contract |
| Returns one catalog document (table metadata, municipality hierarchy + population, indicator series) with its public URL for citation |
The two are the only tools without the ibge_ prefix: their names are fixed by the OpenAI contract. For data queries keep using the ibge_* tools.
Which tool should I use?
With 23 tools, several can touch the same topic. Quick guide for the common overlaps:
Population & demographics
You want… | Use |
A single municipality/state panel (population, HDI, GDP…) |
|
Census data or historical series (1970–2022) |
|
Rank/compare 2–10 localities on one indicator |
|
A macro indicator time series (GDP, IPCA, unemployment…) |
|
A specific SIDRA table / fine control |
|
The largest/smallest/mean/median across a whole table |
|
Economic indicators
You want… | Use |
IPCA, INPC, GDP, unemployment (IBGE, primary source) |
|
Localities & codes
You want… | Use |
List/search municipalities |
|
List states |
|
Resolve a name→code at any level, or decode a code's structure |
|
Full record of one locality you already have the code for |
|
Neighboring municipalities |
|
SIDRA workflow
Discover → inspect → query: ibge_pesquisas / ibge_sidra_tabelas (find a table) → ibge_sidra_metadados (its structure) → ibge_sidra (query). For common data, the wrappers above (ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades) are usually easier.
Ask in your words, not the IBGE's
The IBGE names its tables in official statistical Portuguese, and ibge_sidra_tabelas matched
your words against the table name as a plain substring, accents included — so populacao
(no tilde, as anyone types it) returned nothing at all, and so did the everyday word for a
concept the IBGE names differently. Measured over the 9,336 tables of the Aggregates API
(2026-09-16), fixed since 5.1.0: both sides are normalised, every word must match (AND), and
the everyday word is expanded to the IBGE's own — the response says so in notas_vocabulario,
and zero results come with a way out.
you ask | hits before | the IBGE writes | hits |
| 0 | população, ocupação, instrução, saúde, área, água | 520, 364, 698, 518, 956, 256 |
| 4 | desocupação | 33 |
| 72 | rendimento | 1,126 |
| 0 | IPCA, INPC, preços | 37, 15, 75 |
| 14, 101 | domicílio | 3,606 |
| 110 | município | 455 |
| 0, 1 | nascidos vivos, óbitos | 84, 33 |
| 40 | sexo | 2,020 |
| 0 | cor ou raça | 1,134 |
| 0 | ensino superior | 12 |
| 0 | energia elétrica, indústria, fumante, plano de saúde, 60 anos | 43, 248, 94, 101, 89 |
Only measured pairs enter the table (src/vocabulario.ts, counts in the header): the word you ask
with absent from the catalogue, the IBGE's word present. What the IBGE does not publish as an
aggregate stays out and still returns zero — turismo, aposentadoria, frota — because an alias
for data that does not exist promises what the source does not have. The same table feeds the
Deep Research search index, which gets the everyday word as a keyword of the table whose name
carries the IBGE's word.
Maps (meshes)
You want… | Use |
Administrative outlines (Brazil/region/state/municipality) |
|
Thematic areas (biomes, Legal Amazon, semi-arid, metro regions) |
|
Installation
Prerequisites
Node.js 22.x or higher (
engines.node)npm or yarn
From npm (recommended)
npm install -g ibge-br-mcpFrom source
# Clone the repository
git clone https://github.com/SidneyBissoli/ibge-br-mcp.git
cd ibge-br-mcp
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
Remote endpoint (nothing to install)
The server is also hosted, with the same tools, over Streamable HTTP and without a key:
https://ibge.sidneybissoli.com/mcpIt works with any client that accepts a remote MCP server — a custom connector in claude.ai (Settings → Connectors → Add custom connector), claude mcp add --transport http ibge https://ibge.sidneybissoli.com/mcp in Claude Code, an app in ChatGPT, the mcp.json of Cursor and VS Code. The step-by-step for each client is in the tutorial. The sections below cover the local form, via npx.
Claude Desktop
Add to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"ibge-br-mcp": {
"command": "npx",
"args": ["-y", "ibge-br-mcp"]
}
}
}Or if installed from source:
{
"mcpServers": {
"ibge-br-mcp": {
"command": "node",
"args": ["/path/to/ibge-br-mcp/dist/index.js"]
}
}
}Claude Code
{
"mcpServers": {
"ibge-br-mcp": {
"command": "npx",
"args": ["-y", "ibge-br-mcp"]
}
}
}ChatGPT (Deep Research)
ChatGPT deep research (and company knowledge, and research workflows over the Responses API) only uses an MCP server that exposes exactly search and fetch — this server does, on top of the ibge_* tools. Point the connector at the hosted endpoint, no key required:
https://ibge.sidneybissoli.com/mcpsearch ranks the query against SIDRA tables, municipalities and the known indicators and returns { id, title, url }; fetch returns the document as readable Markdown with the canonical public URL (sidra.ibge.gov.br or cidades.ibge.gov.br), which is what ChatGPT cites. Both carry the same provenance block as every other tool. In ChatGPT's developer mode (Settings → Security and login → Developer mode) any tool is callable — the ibge_* tools remain the ones to use for data.
Tool Usage Examples
ibge_estados
List all Brazilian states.
# List all states
ibge_estados
# States in Northeast region
ibge_estados(regiao="NE")
# States sorted by abbreviation
ibge_estados(ordenar="sigla")ibge_municipios
List Brazilian municipalities.
# Municipalities of São Paulo state
ibge_municipios(uf="SP")
# Search municipalities by name
ibge_municipios(busca="Campinas")
# Municipalities in MG containing "Belo"
ibge_municipios(uf="MG", busca="Belo")ibge_cidades
Query municipal indicators (similar to Cidades@ portal).
# Panorama of São Paulo
ibge_cidades(tipo="panorama", municipio="3550308")
# Population history
ibge_cidades(tipo="historico", municipio="3550308", indicador="populacao")
# List available research
ibge_cidades(tipo="pesquisas")Available indicators: populacao, area, densidade, pib_per_capita, idh, escolarizacao, mortalidade, salario_medio, receitas, despesas
ibge_paises
Query international country data.
# List all countries
ibge_paises(tipo="listar")
# Brazil details
ibge_paises(tipo="detalhes", pais="BR")
# Search countries
ibge_paises(tipo="buscar", busca="Argentina")
# Countries in Americas
ibge_paises(tipo="listar", regiao="americas")Regions: americas, europa, africa, asia, oceania
ibge_sidra
Query SIDRA tables (IBGE's Automatic Recovery System).
# Brazil population in 2023
ibge_sidra(tabela="6579", periodos="2023")
# Population by state
ibge_sidra(tabela="6579", nivel_territorial="3", periodos="2023")
# Census 2022 for São Paulo municipality
ibge_sidra(tabela="9514", nivel_territorial="6", localidades="3550308")Common tables:
Code | Description |
6579 | Population estimates (annual) |
9514 | Census 2022 population |
4714 | Population, territorial area and density (Census 2022) |
4099 | Unemployment rate (PNAD Contínua, quarterly) |
1846 | Quarterly GDP at current prices (Brazil) |
5938 | Municipal GDP at current prices (annual) |
6784 | Annual GDP and GDP per capita (Brazil) |
Territorial levels:
Code | Level |
1 | Brazil |
2 | Region (North, Northeast, etc.) |
3 | State (UF) |
6 | Municipality |
7 | Metropolitan Region |
106 | Health Region |
127 | Legal Amazon |
128 | Semi-arid |
Statistics mode (also on ibge_censo, ibge_indicadores, ibge_datasaude):
for largest/smallest/mean/median/distribution/ranking questions, pass
estatisticas=true — the server computes the full distribution (min/max/mean/
median/std-dev/labeled percentiles) over all rows before pagination and
returns top/bottom rankings (topN, default 10). agruparPor="<column label>" ranks groups by descending sum, each with its own mini-distribution.
# Which state has the largest estimated population?
ibge_sidra(tabela="6579", nivel_territorial="3", estatisticas=true)
# Census 2022 population distribution grouped by state
ibge_censo(ano="2022", tema="populacao", nivel_territorial="3", estatisticas=true, agruparPor="Unidade da Federação")ibge_censo
Query Census data (1970-2022).
# Population Census 2022
ibge_censo(ano="2022", tema="populacao")
# Historical population series
ibge_censo(ano="todos", tema="populacao")
# Literacy by state in 2010
ibge_censo(ano="2010", tema="alfabetizacao", nivel_territorial="3")Available themes: populacao, alfabetizacao, domicilios, idade_sexo, religiao, cor_raca, rendimento, migracao, educacao, trabalho
ibge_indicadores
Query economic and social indicators.
# GDP
ibge_indicadores(indicador="pib")
# IPCA last 12 months
ibge_indicadores(indicador="ipca", periodos="last 12")
# Unemployment by state
ibge_indicadores(indicador="desemprego", nivel_territorial="3")
# List all indicators
ibge_indicadores(indicador="listar")Available indicators:
Category | Indicators |
Economic | pib, pib_variacao, pib_per_capita, industria, comercio, servicos |
Prices | ipca, ipca_acumulado, inpc |
Labor | desemprego, ocupacao, rendimento, informalidade |
Population | populacao, densidade |
Agriculture | agricultura, pecuaria |
ibge_nomes
Query name frequency and rankings.
# Frequency of "Maria"
ibge_nomes(tipo="frequencia", nomes="Maria")
# Compare names
ibge_nomes(tipo="frequencia", nomes="João,José,Pedro")
# Ranking of names in 2000s
ibge_nomes(tipo="ranking", decada=2000)
# Female names ranking
ibge_nomes(tipo="ranking", sexo="F")ibge_malhas
Get geographic meshes (maps).
# Brazil with states
ibge_malhas(localidade="BR", resolucao="2")
# São Paulo with municipalities
ibge_malhas(localidade="SP", resolucao="5")
# Specific municipality
ibge_malhas(localidade="3550308")
# SVG format
ibge_malhas(localidade="BR", formato="svg")Resolution levels:
Value | Internal Divisions |
0 | No divisions (outline only) |
2 | States |
5 | Municipalities |
ibge_datasaude
Query Brazilian health indicators served through IBGE's SIDRA (some originally produced by DataSUS, e.g. mortality and births).
# Infant mortality in Brazil
ibge_datasaude(indicador="mortalidade_infantil")
# Life expectancy by state
ibge_datasaude(indicador="esperanca_vida", nivel_territorial="3")
# List indicators
ibge_datasaude(indicador="listar")Available indicators: mortalidade_infantil, esperanca_vida, nascidos_vivos, obitos, fecundidade, saneamento_agua, saneamento_esgoto, plano_saude
APIs Used
IBGE APIs
Localities:
servicodados.ibge.gov.br/api/v1/localidadesNames:
servicodados.ibge.gov.br/api/v2/censos/nomesAggregates/SIDRA:
servicodados.ibge.gov.br/api/v3/agregados(SIDRA tables are read here withview=flat;apisidra.ibge.gov.brhas been behind a browser-only Cloudflare challenge since 2026-09-15)Meshes:
servicodados.ibge.gov.br/api/v3/malhasNews:
servicodados.ibge.gov.br/api/v3/noticiasPopulation:
servicodados.ibge.gov.br/api/v1/projecoes/populacaoCNAE:
servicodados.ibge.gov.br/api/v2/cnaeCalendar:
servicodados.ibge.gov.br/api/v3/calendarioCountries:
servicodados.ibge.gov.br/api/v1/paisesResearch:
servicodados.ibge.gov.br/api/v1/pesquisas
Development
# Build
npm run build
# Watch mode
npm run watch
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Lint
npm run lint
# Format
npm run format
# Test with MCP inspector
npm run inspectorProject Structure
ibge-br-mcp/
├── src/
│ ├── index.ts # Main MCP server
│ ├── types.ts # TypeScript types
│ ├── config.ts # Configuration and constants
│ ├── cache.ts # Request caching system
│ ├── retry.ts # Trip to the source over @sbissoli/mcp-upstream (retry, timeout, budget, retrieval count)
│ ├── errors.ts # Standardized error handling
│ ├── validation.ts # Input validation helpers
│ ├── metrics.ts # Metrics and logging
│ ├── utils/
│ │ └── formatters.ts # Formatting utilities
│ └── tools/
│ ├── index.ts # Tool exports
│ ├── estados.ts # ibge_estados
│ ├── municipios.ts # ibge_municipios
│ ├── localidade.ts # ibge_localidade
│ ├── geocodigo.ts # ibge_geocodigo
│ ├── censo.ts # ibge_censo
│ ├── sidra.ts # ibge_sidra
│ ├── sidra-tabelas.ts # ibge_sidra_tabelas
│ ├── sidra-metadados.ts# ibge_sidra_metadados
│ ├── indicadores.ts # ibge_indicadores
│ ├── cnae.ts # ibge_cnae
│ ├── calendario.ts # ibge_calendario
│ ├── comparar.ts # ibge_comparar
│ ├── malhas.ts # ibge_malhas
│ ├── malhas-tema.ts # ibge_malhas_tema
│ ├── vizinhos.ts # ibge_vizinhos
│ ├── datasaude.ts # ibge_datasaude
│ ├── pesquisas.ts # ibge_pesquisas
│ ├── nomes.ts # ibge_nomes
│ ├── noticias.ts # ibge_noticias
│ ├── paises.ts # ibge_paises
│ └── cidades.ts # ibge_cidades
├── tests/ # Test files
├── dist/ # Compiled files
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.mdTesting
The project includes a comprehensive test suite with 565 tests covering:
Validation functions
Retry mechanism
Formatting utilities
Error handling
Cache operations
Integration tests with mocks
npm testQuality Assurance
This project maintains high code quality standards:
565 automated tests covering validation, caching, retry logic, formatting, and integrations
88% overall test coverage — cache and validation modules above 97%
ESLint for code linting with zero warnings
Prettier for consistent code formatting
TypeScript strict mode for type safety
Automated CI/CD via GitHub Actions
Run tests locally:
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run linter
npm run lintSurface fingerprint, checkable from the registry
Every release publishes, in its MCP Registry entry,
the sha256 of the surface this version serves (initialize, tools, resources, prompts) and which
methods answer without a credential. A surface change without a version bump fails the build;
the fingerprint in the registry lets a client check the same thing on its own side. Canonical
form and procedure: SPEC.md of @sbissoli/mcp-surface.
To check it yourself (Node 18+, no dependencies):
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.SidneyBissoli/ibge-br-mcpLicense
MIT
Author
Sidney da Silva Pereira Bissoli
References
Available Tools
23 toolsfetchDocumento para Deep ResearchARead-onlyIdempotentInspect
Returns the full document for an id obtained from search, as { id, title, text, url, metadata }: text is the readable content (Markdown) and url the canonical public page to cite.
Companion of search in the OpenAI Deep Research contract, over the IBGE (Brazilian official statistics: SIDRA tables, municipalities, known indicators) catalog. Only ids returned by search are valid; an unknown id returns an error.
The ibge_* tools (ibge_sidra, ibge_cidades, ibge_indicadores, ibge_comparar…) remain the tools for data queries.
Behavior: read-only and idempotent — a live GET against the public source when the document needs it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identificador de um documento devolvido por `search` |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Identificador único do documento no servidor; é o que `fetch` recebe |
| url | Yes | URL pública canônica do documento — a citação do ChatGPT depende dela |
| text | Yes | Conteúdo integral do documento, legível (Markdown) |
| title | Yes | Título legível do documento |
| metadata | No | Pares chave/valor adicionais sobre o documento (tipo, fonte, período…) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive. The description reinforces this and adds beyond it: the error behavior on unknown ids, the Markdown nature of `text`, the canonical `url` for citation, and the note that it performs a live GET against the public source when needed. Slightly more on caching/freshness would earn a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the return shape, then contract context, then routing to siblings, then behavior. Every paragraph carries information, though the 'OpenAI Deep Research contract' framing is slightly more verbose than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool, the description covers the return shape, error semantics, source semantics, and sibling routing. An output schema exists so return values need not be fully explained, yet the key fields are still highlighted — nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `id` parameter is documented in-schema as coming from `search`. The description still adds constraint semantics the schema lacks — that an unknown id produces an error — which is genuine added value over the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource — 'Returns the full document for an id obtained from `search`' — and immediately describes the return shape { id, title, text, url, metadata }. It also explicitly differentiates itself from the ibge_* siblings, stating those remain the tools for data queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: only ids from `search` are valid, unknown ids error, and the ibge_* family is named as the alternative for actual data queries. Both the when-to-use and when-not-to-use conditions are stated, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_calendarioCalendário de divulgaçõesARead-onlyIdempotentInspect
Queries IBGE release and collection calendar.
Features:
List upcoming survey releases
Filter by product (IPCA, PNAD, GDP, etc.)
Filter by period
Distinguish releases from field collections
Event types:
Release: Publication of survey results
Collection: Field research period
Examples:
Upcoming releases: (no parameters)
IPCA releases: produto="IPCA"
2024 calendar: de="01/01/2024", ate="31/12/2024"
Field collections: tipo="coleta"
Use a different tool when:
Already-published news and releases → ibge_noticias
Behavior: read-only and idempotent — a live GET against the public IBGE Calendário API. Returns a Markdown list.
| Name | Required | Description | Default |
|---|---|---|---|
| de | No | Data inicial no formato DD/MM/AAAA (ex: '01/01/2024') | |
| ate | No | Data final no formato DD/MM/AAAA (ex: '31/12/2024') | |
| tipo | No | Tipo de evento: 'divulgacao' (publicações), 'coleta' (pesquisas de campo), ou 'todos' | divulgacao |
| pagina | No | Número da página (padrão: 1) | |
| produto | No | Filtrar por produto/pesquisa (ex: 'IPCA', 'PNAD', 'PIB') | |
| quantidade | No | Quantidade de resultados por página (padrão: 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Total de eventos disponíveis para os critérios |
| pagina | No | Página atual retornada |
| eventos | Yes | Lista de eventos do calendário (divulgações/coletas) |
| produto | No | Filtro de produto aplicado, quando informado |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| totalPaginas | No | Total de páginas disponíveis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the description's closing line largely restates them. It adds that it is a live GET against the public IBGE Calendário API and returns a Markdown list, but with an output schema present the return-format note is partly redundant. Modest added value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and organized under clear headers (Features, Event types, Examples, Use a different tool when). Slightly long — the example lines partially overlap the schema descriptions — but every section is functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a read-only query tool: all six parameters are documented in schema, the enum semantics are explained in prose, and an output schema exists so return values need not be described. The routing to ibge_noticias closes the main ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further by mapping 'Release'/'Collection' to the tipo enum values and showing worked examples (produto="IPCA", de/ate date strings, tipo="coleta"). This gives an agent usable calling patterns beyond the raw field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queries IBGE release and collection calendar'), and immediately distinguishes the two event types it returns (Release vs Collection). The routing line to ibge_noticias makes it separable from the nearest sibling without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete when-to-use scenarios (upcoming releases, IPCA filter, 2024 calendar, field collections) and an explicit exclusion ('Already-published news and releases → ibge_noticias'). Nothing is left to inference about when to pick this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_censoCenso DemográficoARead-onlyIdempotentInspect
Queries IBGE Demographic Census data (1970-2022).
Simplified tool to access census data without knowing SIDRA table codes.
Available years: 1970, 1980, 1991, 2000, 2010, 2022
Available themes:
populacao: Resident population
alfabetizacao: Literacy rate
domicilios: Housing characteristics
idade_sexo: Age pyramid
religiao: Religion distribution
cor_raca: Race/color
rendimento: Monthly income
educacao: Education level
trabalho: Employment
Examples:
Population 2022: ano="2022", tema="populacao"
Historical series: ano="todos", tema="populacao"
Literacy 2010 by state: ano="2010", tema="alfabetizacao", nivel_territorial="3"
List tables: tema="listar"
Statistics mode: for largest/smallest/mean/median/distribution/ranking questions over census data ("which municipality had the largest 2022 population?") use estatisticas=true — full distribution + top/bottom computed over ALL rows before truncation; agruparPor="" ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty.
Use a different tool when:
One municipality's current panel (estimate, HDI, GDP) → ibge_cidades
Comparing/ranking localities → ibge_comparar
An arbitrary SIDRA table → ibge_sidra
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano do censo (1970, 1980, 1991, 2000, 2010, 2022) ou 'todos' para série histórica | |
| tema | No | Tema dos dados: - populacao: População residente - alfabetizacao: Taxa de alfabetização - domicilios: Características dos domicílios - idade_sexo: Pirâmide etária - religiao: Distribuição por religião - cor_raca: Cor ou raça - rendimento: Rendimento mensal - migracao: Migração - educacao: Nível de instrução - trabalho: Ocupação e trabalho - indigenas: População indígena - quilombolas: População quilombola - saneamento: Abastecimento de água e esgoto - deficiencia: Pessoas com deficiência - nupcialidade: Estado civil - fecundidade: Taxa de fecundidade - listar: Lista tabelas disponíveis | populacao |
| topN | No | Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100) | |
| campos | No | Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. | |
| formato | No | Formato de saída | tabela |
| agruparPor | No | Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido | |
| localidades | No | Códigos das localidades ou 'all' | all |
| estatisticas | No | Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato | |
| nivel_territorial | No | Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município | 1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ano | No | Ano(s) de referência |
| tema | No | Tema do censo consultado |
| tabela | No | Tabela SIDRA de origem |
| colunas | Yes | Rótulos das colunas, na ordem |
| unidades | Yes | Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas |
| descricao | No | Descrição da tabela |
| registros | Yes | Registros: cada um mapeia rótulo da coluna -> valor |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| estatisticas | No | Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo) |
| totalRegistros | Yes | Total de registros de dados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the description's restatement adds limited new safety information. It does add useful behavior beyond annotations: that it is a live GET against the public SIDRA API, that it returns Markdown plus structuredContent, and that estatisticas mode ignores campos/formato and leaves registros empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then years, themes, examples, exclusions, and behavior in a scannable block structure. Some redundancy between the theme list in the description and the tema enum, but each section serves routing or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Nine optional parameters, an output schema present, and full theme/year enumeration are all covered; return shape, statistics mode, and sibling disambiguation are addressed. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes further by documenting cross-parameter interactions (estatisticas overrides campos/formato/pagina) and by giving worked call examples mapping ano/tema/nivel_territorial values. agruparPor's partial-label resolution caveat is also surfaced in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queries IBGE Demographic Census data (1970-2022)') and immediately frames scope as a simplified alternative to raw SIDRA table access. The 'Use a different tool when' block distinguishes it from ibge_cidades, ibge_comparar and ibge_sidra explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use examples (population by year, historical series, literacy by state, listing tables) and explicit routing exclusions to three sibling tools. The statistics-mode trigger ('which municipality had the largest 2022 population?') removes ambiguity about when to set estatisticas=true.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_cidadesPanorama municipal (Cidades@)ARead-onlyIdempotentInspect
Queries municipal indicators from IBGE (similar to Cidades@ portal).
Features:
General overview of a municipality (population, HDI, GDP, etc.)
Query specific indicators
Historical indicator data over years
List available surveys and indicators
Available indicators: populacao, area, densidade, pib_per_capita, idh, escolarizacao, mortalidade, salario_medio, receitas, despesas
Examples:
São Paulo overview: tipo="panorama", municipio="3550308"
Population history: tipo="historico", municipio="3550308", indicador="populacao"
View surveys: tipo="pesquisas"
Available indicators: tipo="indicador"
This tool is the panel for a SINGLE municipality (Cidades@). Use a different tool when:
Census themes / historical series → ibge_censo
Comparing multiple municipalities → ibge_comparar
A macro indicator time series → ibge_indicadores
Behavior: read-only and idempotent — a live GET against the public IBGE APIs (Cidades@/agregados). Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Código ou sigla da UF para filtrar (ex: 35 ou SP) | |
| tipo | No | Tipo de consulta: panorama (resumo geral), indicador (específico), pesquisas (listar), historico | panorama |
| pesquisa | No | ID da pesquisa para filtrar indicadores | |
| indicador | No | ID do indicador ou nome para busca | |
| municipio | No | Código IBGE do município (7 dígitos) |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | No | Nome do município/indicador |
| tipo | Yes | Tipo de consulta (panorama, indicador, pesquisas, historico) |
| municipio | No | Código IBGE do município |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| indicadores | Yes | Indicadores retornados (vazio para respostas de catálogo) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond them: it discloses that this is a live GET against public IBGE APIs and returns Markdown plus a typed structuredContent payload. Rate limits or error behavior are not mentioned, keeping it just short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then features, examples, exclusions, and behavior in clearly delimited sections. Bullets and labeled groups make it scannable; every line (indicator list, examples, exclusions) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be detailed, yet the description still notes the response shape. With annotations covering safety, 100% schema coverage, and explicit routing to alternatives, an agent has everything needed to select and call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further by enumerating valid indicator names (populacao, area, pib_per_capita, ...) and pairing parameter values in worked examples, adding meaning the schema's terse 'ID do indicador ou nome para busca' does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Queries municipal indicators from IBGE') and immediately scopes it as the panel for a SINGLE municipality (Cidades@). The feature bullets and the explicit sibling exclusions make it unmistakably distinct from ibge_censo, ibge_comparar, and ibge_indicadores.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains an explicit 'Use a different tool when:' block naming three alternatives and the condition that selects each. The examples show concrete parameter combinations per 'tipo', so an agent knows not just when but how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_cnaeClassificação CNAEARead-onlyIdempotentInspect
Queries CNAE (National Classification of Economic Activities) from IBGE.
CNAE is the official classification for economic activities in Brazil.
Hierarchical structure:
Section (letter A-U): 21 main categories
Division (2 digits): 87 divisions
Group (3 digits): 285 groups
Class (4-5 digits): 673 classes
Subclass (7 digits): 1,332 subclasses
Features:
Search by CNAE code
Search by activity description
List by hierarchical level
Show complete hierarchy
Examples:
Search software: busca="software"
Specific code: codigo="6201-5/01"
View section: codigo="J"
List divisions: nivel="divisoes"
Behavior: read-only and idempotent — a live GET against the public IBGE CNAE API. Returns Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| busca | No | Termo para buscar na descrição das atividades (ex: 'software', 'restaurante', 'comércio'). Acento e caixa não importam, e várias palavras casam em E ('comercio varejista'). A palavra de todo dia é traduzida para a da CNAE quando preciso — farmácia → produtos farmacêuticos, academia → condicionamento físico, lixo → resíduos — e a resposta diz quando traduziu. | |
| nivel | No | Nível hierárquico para listar (padrão: mostra todos os níveis relevantes) | |
| codigo | No | Código CNAE para buscar (seção, divisão, grupo, classe ou subclasse). Exemplos: - Seção: "A" (agricultura) - Divisão: "01" (agricultura e pecuária) - Grupo: "01.1" (produção de lavouras) - Classe: "01.11" (cultivo de cereais) - Subclasse: "0111-3/01" (cultivo de arroz) | |
| limite | No | Número máximo de resultados (padrão: 20) |
Output Schema
| Name | Required | Description |
|---|---|---|
| modo | Yes | Modo de resposta que gerou os dados |
| busca | No | Presente no modo de busca por termo |
| lista | No | Presente no modo de listagem por nível |
| codigo | No | Presente no modo de consulta por código |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so 'read-only and idempotent' is largely repetition. The line adds two genuinely new facts — it is a live GET against the public IBGE API (no auth/rate-limit detail) and responses come back as Markdown — which is modest value beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sectioned into purpose, hierarchy, features and examples with a front-loaded opening sentence, so an agent can skim to the relevant part. The reference counts for every hierarchy level are informational but slightly verbose, and the closing 'Behavior' line partly duplicates the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to spell out return values, and it instead supplies the domain scaffolding (hierarchy levels, code formats) an agent needs to interpret the results correctly. Annotations cover the safety profile, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself carries richer semantics than the description (accent/case-insensitivity, multi-word AND matching, everyday-term translation). The description's examples for busca/codigo/nivel mostly restate what the schema already documents, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queries CNAE... from IBGE') and immediately frames it as Brazil's official economic-activity classification, which separates it from the other ibge_* data tools. The hierarchical breakdown and feature list make the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Features' bullets plus four concrete examples ('busca="software"', 'codigo="6201-5/01"', list by level) tell the agent exactly which parameter pattern to reach for in common situations. It never names a sibling tool or says when NOT to use this (e.g. vs ibge_pesquisas or ibge_sidra), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_compararComparação entre localidadesARead-onlyIdempotentInspect
Compares data between localities (municipalities or states).
Available indicators:
populacao: Current population estimate
populacao_censo: Census 2022 population
pib: GDP per capita
area: Territorial area (km²)
densidade: Population density (inhab/km²)
alfabetizacao: Literacy rate
domicilios: Number of households
Features:
Compare up to 10 localities at once
Calculate statistics (max, min, average, variation)
Generate ranked output
Accept municipality codes (7 digits) or state codes (2 digits)
Examples:
Compare capitals: localidades="3550308,3304557,4106902", indicador="populacao"
Compare states: localidades="35,33,41", indicador="pib"
Area ranking: localidades="3550308,3304557", formato="ranking"
List indicators: indicador="listar"
Use this tool ONLY to rank/compare 2–10 localities on one indicator. For a single locality, use ibge_cidades (municipal panel), ibge_censo, or ibge_sidra.
Behavior: read-only and idempotent — a live GET against the public IBGE APIs (SIDRA and Localidades). Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| formato | No | Formato de saída: tabela, json ou ranking (ordenado) | tabela |
| indicador | No | Indicador para comparação: - populacao: Estimativa populacional atual - populacao_censo: População do Censo 2022 - pib: PIB a preços correntes (Mil Reais) - area: Área territorial (km²) - densidade: Densidade demográfica (hab/km²) - alfabetizacao: Taxa de alfabetização - domicilios: Número de domicílios - listar: Lista indicadores disponíveis | populacao |
| localidades | Yes | Códigos IBGE das localidades separados por vírgula (ex: "3550308,3304557,4106902"). Use 7 dígitos para municípios, 2 dígitos para UFs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | No | Nome do indicador |
| tabela | No | Tabela SIDRA de origem |
| formato | No | Formato solicitado |
| unidades | Yes | Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas |
| indicador | No | Indicador comparado |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| localidades | Yes | Localidades comparadas, com o valor do indicador |
| estatisticas | No | Estatísticas agregadas (quando há ao menos 2 valores positivos) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered; the description adds useful extra context about the live GET against public IBGE APIs (SIDRA and Localidades) and the Markdown plus structuredContent return. The 10-locality cap is also disclosed behaviourally. It stops short of noting failure modes (invalid codes, missing indicators).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a scannable indicator list, features, examples, and a routing line. Every block earns its place and the exclusions appear before the examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full annotations, the description only needs to cover intent, scope, routing, and input shape — all of which it does, including a 'listar' escape hatch for indicator discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little — and where it does it can mislead: it describes 'pib' as 'GDP per capita', while the schema defines pib as 'PIB a preços correntes (Mil Reais)', a total at current prices. An agent relying on the description would misinterpret the returned value. The code-format guidance (7-digit municipality, 2-digit UF) matches the schema rather than extending it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compares data between localities') and immediately scopes the resource type (municipalities or states, 2–10 at once, one indicator). The closing line 'Use this tool ONLY to rank/compare 2–10 localities on one indicator' makes it unambiguously distinguishable from siblings like ibge_indicadores or ibge_sidra.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit both ways: 'Use this tool ONLY to rank/compare 2–10 localities on one indicator' gives the when, and 'For a single locality, use ibge_cidades, ibge_censo, or ibge_sidra' names the alternatives and the condition that selects them. Concrete example calls reinforce the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_datasaudeIndicadores de saúdeARead-onlyIdempotentInspect
Queries Brazil health indicators, served through IBGE's SIDRA (some originally produced by DataSUS, e.g. mortality and births).
Mortality and Birth:
mortalidade_infantil: Infant mortality rate
nascidos_vivos: Live births by location
obitos: Deaths by residence
Demographic Indicators:
esperanca_vida: Life expectancy at birth
fecundidade: Fertility rate
Sanitation:
saneamento_agua: Water supply
saneamento_esgoto: Sewage system
Health Coverage:
plano_saude: Health insurance coverage
autoavaliacao_saude: Self-rated health status
Territorial levels: 1=Brazil, 2=Region, 3=State, 6=Municipality
Examples:
Infant mortality: indicador="mortalidade_infantil"
Life expectancy by state: indicador="esperanca_vida", nivel_territorial="3"
Deaths in SP: indicador="obitos", nivel_territorial="3", localidade="35"
List indicators: indicador="listar"
Statistics mode: for largest/smallest/mean/median/distribution/ranking questions ("which state has the highest infant mortality?", "median life expectancy across states") use estatisticas=true — full distribution + top/bottom over ALL rows before truncation; agruparPor="" ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty.
Use a different tool when:
A single municipality's general panel (which also includes infant mortality) → ibge_cidades
Population/demographic counts (not health-specific) → ibge_censo or ibge_sidra
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100) | |
| campos | No | Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. | |
| formato | No | Formato de saída | tabela |
| periodo | No | Período: 'last', 'all', ou ano específico | last |
| indicador | Yes | Indicador de saúde. Disponíveis: - mortalidade_infantil: Taxa de mortalidade infantil - esperanca_vida: Esperança de vida ao nascer - nascidos_vivos: Nascidos vivos - obitos: Óbitos por local de residência - fecundidade: Taxa de fecundidade - saneamento_agua: Abastecimento de água - saneamento_esgoto: Esgotamento sanitário - plano_saude: Cobertura de plano de saúde - listar: Lista indicadores disponíveis | |
| agruparPor | No | Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido | |
| localidade | No | Código da localidade ou 'all' | all |
| estatisticas | No | Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato | |
| nivel_territorial | No | Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município | 1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | No | Nome do indicador |
| fonte | No | Fonte do dado |
| colunas | Yes | Rótulos das colunas, na ordem |
| unidades | Yes | Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas |
| indicador | No | Chave do indicador de saúde consultado |
| registros | Yes | Registros: cada um mapeia rótulo da coluna -> valor |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| estatisticas | No | Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo) |
| totalRegistros | Yes | Total de registros de dados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/openWorldHint, so the safety profile is covered; the description still adds real value by disclosing that statistics mode ignores campos/formato, returns empty registros, and computes over ALL rows before truncation, plus the Markdown + structuredContent return shape. The 'read-only and idempotent' sentence largely restates annotations and is the only wasted line.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but well front-loaded: purpose first, then a scannable indicator taxonomy, territorial legend, worked examples, statistics-mode rules, and exclusions. The indicator list is partly duplicated from the schema's indicador description, which is the main redundancy, but no section is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full annotation coverage, and 100% param documentation, the description only needs to cover selection and mode-switching semantics — which it does thoroughly, including edge behavior of statistics mode and the fallback routing to siblings. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns above that by documenting cross-parameter interactions the schema states only piecemeal (estatisticas overrides campos/formato; agruparPor ranks by descending sum) and by giving concrete usage examples for nivel_territorial and localidade. Territorial codes and indicator values are effectively demonstrated, not just listed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queries Brazil health indicators, served through IBGE's SIDRA'), names the upstream producers (DataSUS) and enumerates all nine indicator groups with one-line glosses. An agent can immediately tell this apart from ibge_sidra, ibge_cidades or ibge_censo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has an explicit 'Use a different tool when' block routing to three named siblings with the selecting condition for each, plus dedicated guidance for statistics questions ('which state has the highest infant mortality?') with the estatisticas=true switch. Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_estadosEstados do BrasilARead-onlyIdempotentInspect
Lists all Brazilian states from IBGE.
Features:
Lists all 27 states (26 states + Federal District)
Filter by region (North, Northeast, Southeast, South, Central-West)
Sort by ID, name, or abbreviation
Examples:
List all states: (no parameters)
Northeast states: regiao="NE"
Sorted by abbreviation: ordenar="sigla"
Use a different tool when:
Municipalities of a state → ibge_municipios
Details/hierarchy of one locality by code → ibge_localidade
Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown table.
| Name | Required | Description | Default |
|---|---|---|---|
| regiao | No | Filtrar por região: N (Norte), NE (Nordeste), SE (Sudeste), S (Sul), CO (Centro-Oeste) | |
| ordenar | No | Campo para ordenação dos resultados | nome |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Total de estados retornados |
| estados | Yes | Lista de estados |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior, and the description repeats read-only/idempotent while adding that it is a live GET against the public IBGE Localidades API and returns a Markdown table. That return-format and source-API context is useful beyond the annotations, though it does not cover rate limits, auth, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with a one-line purpose, then organized into features, examples, alternatives, and behavior. It is appropriately sized, though there is minor redundancy between the opening sentence and the first feature bullet ('Lists all 27 states').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich structured context — safety annotations, fully described enum parameters, and an output schema — the description covers purpose, usage examples, sibling alternatives, and behavior. Nothing essential for selecting or invoking this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage and enumerates both parameters with meanings and allowed values. The description's feature list and examples (regiao="NE", ordenar="sigla") are helpful but largely restate what the schema already documents, so this meets the baseline rather than adding substantially new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Lists all Brazilian states from IBGE.' It also distinguishes itself from sibling tools by naming ibge_municipios and ibge_localidade as alternatives for different scopes, so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage examples, including no-parameter listing, regional filtering, and sorting. It also provides clear when-not-to-use guidance by naming the tools for municipalities and single-locality details, leaving no ambiguity about when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_geocodigoCódigos geográficos do IBGEARead-onlyIdempotentInspect
Decodes IBGE codes or searches codes by locality name.
Features:
Decode region, state, municipality, or district codes
Search IBGE code by name
Show complete geographic hierarchy
Return related codes
Code structure:
1 digit: Region (1=North, 2=Northeast, 3=Southeast, 4=South, 5=Central-West)
2 digits: State (11-53)
7 digits: Municipality
9 digits: District
Examples:
Decode municipality: codigo="3550308"
Decode state: codigo="35"
Search by name: nome="São Paulo"
Municipality in state: nome="Campinas", uf="SP"
This tool decodes a code's structure and resolves name→code at any level. Use a different tool when:
You only need to list/search municipalities → ibge_municipios
You want the full detailed record of one locality → ibge_localidade
Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) para restringir a busca por nome de município | |
| nome | No | Nome da localidade para encontrar o código IBGE (estado ou município) | |
| codigo | No | Código IBGE para decodificar. Formatos aceitos: - 1 dígito: Região (1-5) - 2 dígitos: UF (11-53) - 7 dígitos: Município - 9 dígitos: Distrito |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | No | Nome da localidade resolvida |
| tipo | Yes | Tipo do resultado: localidade decodificada (regiao/uf/municipio/distrito) ou lista de municípios encontrados (lista) |
| sigla | No | Sigla da região ou UF, quando aplicável |
| total | No | Quantidade de municípios encontrados na busca por nome (apenas tipo lista) |
| codigo | No | Código IBGE da localidade resolvida (ausente em resultados do tipo lista) |
| regiao | No | Nome da região à qual a UF pertence (apenas tipo uf) |
| estados | No | Estados pertencentes à região (apenas tipo regiao) |
| matches | No | Municípios encontrados na busca por nome (apenas tipo lista) |
| hierarquia | No | Hierarquia geográfica completa, da região ao município/distrito (tipo municipio/distrito) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| codigoSidra | No | Código SIDRA de 6 dígitos do município (apenas tipo municipio) |
| regiaoCodigo | No | Código IBGE da região à qual a UF pertence (apenas tipo uf) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description goes beyond them by disclosing the execution model ('a live GET against the public IBGE Localidades API') and the response format ('Returns Markdown'), which annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose first, then features, code structure, examples, alternatives, and behavior. The 'Code structure' block largely repeats the schema's codigo description, so a small amount of redundancy exists, but the structure is scannable and every section is labeled.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't explain return values, and it covers purpose, routing alternatives, input examples, code semantics, and runtime behavior. Nothing an agent needs in order to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 and the schema already documents all three params. The description adds value through worked examples, notably the combined call nome="Campinas", uf="SP", which demonstrates how the optional params interact in a way the schema does not state explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource pair ('Decodes IBGE codes or searches codes by locality name') and enumerates the levels it operates on (region, state, municipality, district). It explicitly names the siblings it is not (ibge_municipios, ibge_localidade), so an agent can route correctly without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains an explicit 'Use a different tool when' section that names both alternatives and the exact condition that selects each ('only need to list/search municipalities' → ibge_municipios; 'full detailed record of one locality' → ibge_localidade). This is the strongest form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_indicadoresIndicadores econômicos e sociaisARead-onlyIdempotentInspect
Queries IBGE economic and social indicators.
Available indicators:
Economic:
pib: quarterly GDP at current prices, R$ million (Brazil only)
pib_variacao: quarterly GDP volume change, % over the same quarter of the previous year (Brazil only)
pib_per_capita: annual GDP per capita at current prices, R$ (Brazil only)
industria: industrial production index, general industry (2022=100)
comercio: retail sales volume index (2022=100)
servicos: services volume index (2022=100, Brazil only)
Prices:
ipca: IPCA monthly change, %
ipca_acumulado: IPCA accumulated over 12 months, %
inpc: INPC monthly change, %
Labor:
desemprego: Unemployment rate
ocupacao: Employed people (thousands)
rendimento: average real income from all jobs, R$ — each period is a ROLLING quarter (e.g. "jun-jul-ago 2026"), Brazil only
informalidade: Informality rate
Population:
populacao: Population estimate
densidade: Population density
Examples:
GDP: indicador="pib"
IPCA last 12 months: indicador="ipca", periodos="last 12"
Unemployment by state: indicador="desemprego", nivel_territorial="3"
List indicators: indicador="listar"
Each indicator returns ONE variable — the one its name says; for another one of the same table (e.g. the year-to-date change) use ibge_sidra with variaveis.
What each number is: every record carries the SIDRA period column (code and label, e.g. "Mês (Código)" 202403 / "Mês" "março 2024") and the "Variável" label — the only place that says whether a value is a monthly change, a year-to-date or 12-month accumulation, an index number or a level; read it before adding, subtracting or comparing values. A PNAD rolling quarter ("jun-jul-ago 2026") is a three-month window that moves every month, not a calendar quarter. Revisions: values are what SIDRA publishes at the extraction instant (retrieved_at); IBGE revises published figures (quarterly GDP at each release, PNAD reweighting, annual revisions of PIM/PMC/PMS) and the API keeps no earlier version.
Statistics mode: for largest/smallest/mean/median/distribution/ranking questions ("which state has the highest unemployment?", "median informality rate across states") use estatisticas=true — full distribution + top/bottom over ALL rows before truncation; agruparPor="" (e.g. "Unidade da Federação", "Trimestre") ranks groups by descending sum. In this mode campos/formato are ignored and registros comes empty.
Use a different tool when:
Comparing/ranking localities → ibge_comparar
Census themes → ibge_censo
One municipality's panel → ibge_cidades
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100) | |
| campos | No | Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. | |
| formato | No | Formato de saída | tabela |
| periodos | No | Períodos (ex: '2023', 'last', 'last 4') | last |
| categoria | No | Filtrar por categoria de indicadores | |
| indicador | No | Nome do indicador (ex: "pib", "ipca", "desemprego", "populacao"). Use "listar" para ver todos os indicadores disponíveis. | |
| agruparPor | No | Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido | |
| localidades | No | Códigos das localidades ou 'all' | all |
| estatisticas | No | Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato | |
| nivel_territorial | No | Nível territorial (código N): 1=Brasil, 2=Região, 3=UF | 1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | No | Nome do indicador |
| tabela | No | Tabela SIDRA de origem |
| colunas | Yes | Rótulos das colunas, na ordem |
| unidades | Yes | Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas |
| indicador | No | Chave do indicador consultado |
| registros | Yes | Registros: cada um mapeia rótulo da coluna -> valor |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| estatisticas | No | Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo) |
| totalRegistros | Yes | Total de registros de dados |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent, but the description goes well beyond them: it discloses the live GET against the public SIDRA API, the Markdown + structuredContent return shape, the revision policy (IBGE revises figures and no earlier version is kept, retrieved_at marks the extraction instant), and the PNAD rolling-quarter semantics that would otherwise be misread as calendar quarters. This is the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The indicator catalogue is front-loaded and every entry earns its place by giving unit and territorial scope; the closing behavior line is a single efficient sentence. It is long, and the 'Statistics mode' paragraph partially restates the estatisticas/agruparPor schema descriptions, which is the main redundancy preventing a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, an output schema, and full annotation coverage, the description supplies everything else an agent needs: which indicator names exist, how periods and territorial levels map to examples, how statistics mode changes output shape, and how to interpret the returned labels. Nothing required for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning: it warns that the 'Variável' and period columns are the only source of truth for what a number means before comparing values, that estatisticas also controls topN list size, and that campos/formato are ignored and registros comes empty in statistics mode. It does not re-explain periodos syntax or localidades codes beyond the schema, keeping it short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queries IBGE economic and social indicators') and then enumerates every available indicator with its unit and scope, so an agent knows exactly what data domain this covers. It explicitly separates itself from siblings via the 'Use a different tool when' block and points to ibge_sidra for other variables from the same table.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides four concrete invocation examples (GDP, IPCA last 12 months, unemployment by state, listing indicators), explicit routing rules to ibge_comparar / ibge_censo / ibge_cidades / ibge_sidra, and a clear trigger condition for estatisticas=true ('largest/smallest/mean/median/distribution/ranking'). When to use and when to use something else are both spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_localidadeDetalhes de localidadeARead-onlyIdempotentInspect
Returns details of a specific locality by IBGE code.
Features:
State information (2-digit code)
Municipality information (7-digit code)
District information (9-digit code)
Complete hierarchy (region, mesoregion, microregion)
Examples:
São Paulo state: codigo=35
São Paulo city: codigo=3550308
District: codigo=355030805
This tool returns the full record of ONE locality you already have the code for. Use a different tool when:
You have a name and need the code → ibge_municipios (municipalities) or ibge_geocodigo (any level)
You want to decompose/understand a code's structure → ibge_geocodigo
Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown record.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo da localidade. Se não informado, será inferido pelo tamanho do código. | |
| codigo | Yes | Código IBGE da localidade (estado: 2 dígitos, município: 7 dígitos, distrito: 9 dígitos) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Código IBGE da localidade |
| nome | Yes | Nome da localidade |
| tipo | Yes | Tipo da localidade retornada |
| sigla | No | Sigla da UF (apenas para estados) |
| estado | No | Estado da localidade (município ou distrito) |
| regiao | No | Região do estado (apenas para estados) |
| municipio | No | Município ao qual o distrito pertence (apenas para distritos) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| mesorregiao | No | Mesorregião do município |
| microrregiao | No | Microrregião do município |
| regiaoImediata | No | Região imediata do município |
| regiaoIntermediaria | No | Região intermediária do município |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the description's 'read-only and idempotent' line earns no credit. It does add the live GET against the public IBGE Localidades API and a Markdown return record, but since an output schema exists the return-format note is marginal, leaving only modest value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then features, examples, routing rules and behavior in clearly labeled blocks; every section is useful. Slight waste in restating the read-only/idempotent annotations already covered by structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, 100% schema coverage and an output schema in place, the description only needs to cover purpose, routing and input formatting — all of which it does, including sibling disambiguation and code examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds concrete worked examples of valid codigo values at each level (35, 3550308, 355030805) and repeats the size-based inference for the optional tipo, which helps an agent format a call correctly beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns details of a specific locality by IBGE code') and explicitly names the sibling tools it is not (ibge_municipios, ibge_geocodigo) plus the scenario it doesn't serve. An agent can distinguish it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains an explicit 'Use a different tool when' block with two conditions and the correct alternative for each (name-to-code, code decomposition). The precondition 'you already have the code for' is stated outright, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_malhasMalhas geográficasARead-onlyIdempotentInspect
Gets geographic meshes (maps) from IBGE in GeoJSON, TopoJSON, or SVG format.
Features:
Meshes for Brazil, regions, states, municipalities
Different resolution levels (internal divisions)
Different quality levels
Formats: GeoJSON (data), TopoJSON (compact), SVG (image)
Locality types:
"BR" or "1" = Entire Brazil
State abbreviation (e.g., "SP", "RJ")
State code (e.g., "35" for SP)
Municipality code (7 digits)
Resolution (internal divisions):
0 = Outline only
2 = States
5 = Municipalities
Examples:
Brazil with states: localidade="BR", resolucao="2"
São Paulo with municipalities: localidade="SP", resolucao="5"
SVG format: localidade="BR", formato="svg"
Use a different tool when:
Thematic meshes (biomes, Legal Amazon, semi-arid, metropolitan regions) → ibge_malhas_tema
Behavior: read-only and idempotent — a live GET against the public IBGE Malhas API. Returns the mesh in the requested format (GeoJSON, TopoJSON, or SVG).
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Tipo de divisão territorial | |
| formato | No | Formato de saída (padrão: geojson) | geojson |
| qualidade | No | Qualidade do traçado: 'minima', 'intermediaria' ou 'maxima' (padrão). Os números 1–4 do IBGE antigo continuam aceitos e são traduzidos. | maxima |
| resolucao | No | Divisões internas a desenhar dentro da malha pedida: 0 = Sem divisões internas (só o contorno) 1 = Macrorregiões (apenas quando localidade=BR) 2 = Unidades da Federação (BR ou uma região) 3 = Mesorregiões 4 = Microrregiões 5 = Municípios Cada nível aceita só as divisões menores que ele: município aceita nenhuma, UF aceita 3, 4 e 5. | 0 |
| localidade | Yes | Código IBGE ou sigla da localidade (ex: 'BR', 'SP', '35', '3550308') | |
| intrarregiao | No | Divisão interna pelo nome, alternativa a resolucao: 'regiao', 'UF', 'regiao-intermediaria', 'regiao-imediata', 'mesorregiao', 'microrregiao' ou 'municipio'. Quando informado, prevalece sobre resolucao. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | URL para download da malha completa |
| tipo | No | Tipo de divisão territorial, quando informado |
| formato | Yes | Formato de saída solicitado (geojson, topojson ou svg) |
| qualidade | No | Qualidade do traçado solicitada |
| resolucao | No | Resolução/divisões internas solicitada |
| localidade | Yes | Código IBGE ou sigla da localidade consultada |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| intrarregiao | No | Divisão interna desenhada dentro da malha (vocabulário da API v3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds value beyond that by disclosing it is 'a live GET against the public IBGE Malhas API' and that output is returned in the requested format. It doesn't discuss rate limits or error behavior, but the annotation bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded with the operation in the first sentence and organized under clear headers. Some redundancy exists (resolution meanings are restated from the schema), which prevents a perfect score, but every section is scannable and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations carrying the safety profile, 100% parameter coverage, and an explicit sibling alternative, the description supplies everything an agent needs to call this tool correctly. No material gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it classifies formats functionally (GeoJSON=data, TopoJSON=compact, SVG=image) and shows combined parameter usage (localidade + resolucao + formato) that the schema alone does not. The 'tipo' parameter is left to the schema, keeping this at 4 rather than 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Gets) and resource (geographic meshes/maps from IBGE) plus the three output formats, and explicitly differentiates itself from the sibling ibge_malhas_tema for thematic meshes. An agent can identify the tool's function without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage examples (Brazil with states, São Paulo with municipalities, SVG format) and an explicit exclusion rule naming the alternative ('Thematic meshes → ibge_malhas_tema'). Both when-to-use and when-not-to-use are covered, with the alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_malhas_temaMalhas temáticasARead-onlyIdempotentInspect
Lists what a THEMATIC territorial recorte of Brazil contains: how many features, with which codes and names, and the URL to download its geometry.
Available recortes:
biomas: the six continental biomes
amazonia_legal: Legal Amazon boundary
semiarido: semi-arid area
costeiro: coastal municipalities
fronteira: border-strip municipalities
metropolitana: metropolitan regions
ride: Integrated Development Regions
listar: the catalogue itself, without querying the source
Filtering with codigo: only the recortes that have a per-feature code accept it — biomas (the biome code) and the two municipality ones, costeiro and fronteira (the 7-digit IBGE municipality code). Ask without codigo to see what exists; biome codes come from the source, not from a fixed table.
GEOMETRY IS NOT IN THE RESPONSE, on purpose: one biome polygon alone is over 9 MB. The response carries the attributes plus a canonical WFS URL that returns the recorte with geometry in GeoJSON.
Use a different tool when:
Administrative meshes WITH geometry (country/region/state/municipality outlines) → ibge_malhas
Behavior: read-only and idempotent — a live GET against the public IBGE Geosserviços WFS (IBGE Geociências), which is a different service from the Malhas API and the only one that publishes these recortes. Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| tema | Yes | Recorte temático do território: - biomas: os seis biomas continentais - amazonia_legal: limite da Amazônia Legal - semiarido: área do semiárido - costeiro: municípios da zona costeira - fronteira: municípios da faixa de fronteira - metropolitana: regiões metropolitanas - ride: Regiões Integradas de Desenvolvimento - listar: lista os recortes disponíveis, sem consultar a fonte | |
| codigo | No | Filtra uma feição do recorte. Só os recortes que têm código próprio aceitam: biomas (cd_bioma, ex. "1") e os dois de municípios, costeiro e fronteira (código IBGE de 7 dígitos). Nos demais a chamada é recusada com a lista do que aceita. | |
| limite | No | Quantas feições trazer (padrão 50, máx. 600). O total do recorte vem sempre, mesmo quando o limite corta a lista. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tema | Yes | Recorte solicitado (ou 'listar') |
| temas | No | Lista de recortes disponíveis (somente no modo 'listar') |
| camada | No | Camada WFS do IBGE Geosserviços consultada |
| codigo | No | Código usado como filtro, quando informado |
| feicoes | No | Total de feições do recorte na fonte |
| registros | No | Atributos de cada feição (sem geometria) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| url_geometria | No | URL canônica do WFS que devolve a malha COM geometria, em GeoJSON |
| feicoes_retornadas | No | Quantas vieram nesta resposta |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld/non-destructive, and the description adds genuinely new behavioral facts: geometry is deliberately excluded because a single biome polygon exceeds 9 MB, a canonical WFS URL is returned instead, the call is a live GET against IBGE Geosserviços WFS (a different service from the Malhas API), and the response shape is Markdown plus typed structuredContent. That is substantive context beyond the annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded and sectioned (purpose, recorte list, filtering, exclusions, behavior), but the bulleted recorte list largely duplicates the enum descriptions in the schema, adding length without new meaning. Efficient overall, with one redundant block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, enum-driven tool with an output schema and full annotation coverage, the description closes every remaining gap an agent would face: which recortes exist, which accept `codigo`, that geometry is intentionally absent and where to fetch it, and the upstream service. No material information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description clears that bar by explaining that `codigo` is only honored by biomas/costeiro/fronteira and that biome codes originate from the source rather than a fixed table. It adds a little over the schema, though much of the recorte enumeration restates the enum descriptions already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Lists what a THEMATIC territorial recorte of Brazil contains') and enumerates exactly what comes back: feature count, codes, names, and a geometry download URL. It also explicitly differentiates itself from the sibling ibge_malhas ('Administrative meshes WITH geometry'), so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states when to use an alternative ('Use a different tool when: Administrative meshes WITH geometry → ibge_malhas') and gives the condition that selects each recorte, including a dedicated 'listar' mode to inspect the catalogue without hitting the source. It also spells out when `codigo` applies versus when the call is refused, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_municipiosMunicípios do BrasilARead-onlyIdempotentInspect
Lists Brazilian municipalities from IBGE.
Features:
List municipalities by state (using state abbreviation)
List all municipalities in Brazil (5,570 municipalities)
Search by municipality name
Returns 7-digit IBGE code
Examples:
São Paulo municipalities: uf="SP"
Search by name: busca="Campinas"
MG municipalities containing "Belo": uf="MG", busca="Belo"
Use a different tool when:
Resolve/decode a code at any level (region, state, district), not just municipalities → ibge_geocodigo
Full details/hierarchy of one locality by code → ibge_localidade
Neighboring municipalities → ibge_vizinhos
Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown table.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Estado por sigla (SP), nome (São Paulo) ou código IBGE (35). Se não informado, retorna todos os municípios do Brasil. | |
| busca | No | Termo para buscar no nome do município | |
| limite | No | Número máximo de resultados (padrão: 100, máximo: 5570) |
Output Schema
| Name | Required | Description |
|---|---|---|
| uf | No | UF informada no filtro (como recebida na entrada) |
| busca | No | Termo de busca aplicado ao nome do município |
| total | Yes | Total de municípios encontrados antes do limite |
| municipios | Yes | Lista de municípios retornados (após filtro e limite) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the description's 'read-only and idempotent' phrasing is largely redundant. It does add genuinely new context though: the backing source (live GET against the public IBGE Localidades API) and the return format (Markdown table), which annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose first, then features, examples, exclusions, behavior. All sections are short and scannable. The closing 'read-only and idempotent' clause is the one line that partially restates annotations rather than earning its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-optional-param lookup tool with a 100%-documented schema and an output schema in place, the description covers purpose, filtering modes, worked examples, sibling routing and data source. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents uf/busca/limite, so the baseline would be 3. The examples add value beyond the schema by showing that busca performs substring matching ('Belo') and that uf and busca compose as a narrowed filter, plus noting the 7-digit code in the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists Brazilian municipalities from IBGE') and enumerates the three concrete capabilities: filter by state, list all 5,570, and name search. It also names the sibling tools it is not (ibge_geocodigo, ibge_localidade, ibge_vizinhos), so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use a different tool when' block gives three named alternatives with the exact condition that selects each (code resolution at any level, full hierarchy of one locality, neighbors). Usage examples with real parameter values reinforce how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_nomesFrequência e ranking de nomesARead-onlyIdempotentInspect
Queries name frequency and rankings in Brazil (IBGE).
Features:
Name frequency (tipo='frequencia'):
Birth frequency by decade
Multiple names separated by comma
Filter by sex and locality
Name ranking (tipo='ranking'):
Most popular names
Filter by decade, sex, and locality
Available decades: 1930-2010
Examples:
Frequency of "Maria": tipo="frequencia", nomes="Maria"
Compare names: tipo="frequencia", nomes="João,José,Pedro"
2000s ranking: tipo="ranking", decada=2000
Female names: tipo="ranking", sexo="F"
Behavior: read-only and idempotent — a live GET against the public IBGE Nomes (Censo) API. Returns a Markdown table.
| Name | Required | Description | Default |
|---|---|---|---|
| sexo | No | Filtrar por sexo: M (masculino) ou F (feminino) | |
| tipo | Yes | Tipo de consulta: 'frequencia' para buscar nomes específicos ou 'ranking' para ver os mais populares | |
| nomes | No | Para tipo='frequencia': Nome ou nomes separados por vírgula | |
| decada | No | Para tipo='ranking': Década do ranking (ex: 1990, 2000, 2010) | |
| limite | No | Para tipo='ranking': Número de nomes (padrão: 20) | |
| localidade | No | Código IBGE da localidade (UF: 2 dígitos, Município: 7 dígitos) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tipo | Yes | Tipo da consulta realizada |
| ranking | No | Resultado do ranking (presente quando tipo='ranking') |
| frequencia | No | Resultados de frequência (presente quando tipo='frequencia') |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false; the description reinforces this and adds genuinely new context: a live GET against the public IBGE Nomes (Censo) API and a Markdown-table return format. It does not note rate limits or error behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a scannable two-mode feature list, examples, and a one-line behavior note. Every section earns its place, though the examples partially duplicate the schema's enum descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained further, and the description still tells the agent the response is a Markdown table. Both query modes, the decade bound, sex/locality filters, and read-only behavior are covered, leaving nothing an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a real constraint absent from the schema: the available decade range 1930-2010, which bounds the free-form 'decada' number. It also frames nomes as comma-separated for multi-name queries, matching the schema's wording directly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource pair (queries name frequency and rankings in Brazil via IBGE) and explicitly splits the tool's two operating modes (tipo='frequencia' vs tipo='ranking'), each with its own scope. An agent can distinguish this from ibge_censo or ibge_comparar without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use each mode and supplies four concrete invocation examples, including comma-separated multi-name comparison and sex filtering. It does not, however, mention when to prefer a sibling such as ibge_censo or ibge_comparar, so routing at the tool-selection level is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_noticiasNotícias do IBGEARead-onlyIdempotentInspect
Searches and lists already-published IBGE news articles and press releases.
Use this to find recent IBGE publications or announcements about a survey or topic — when an indicator was released, or news mentioning a term like "censo". Results are sorted newest-first; with no parameters it returns the 10 most recent items.
Parameters:
busca: free-text term to match (e.g. "PIB", "censo")
tipo: "release" (official publication of survey results) or "noticia" (general news); omit for both
de / ate: date range, format DD/MM/AAAA (e.g. de="01/01/2024", ate="31/12/2024")
destaque: true to return only featured items
quantidade: how many to return (default 10, max 100); pagina: page number to page through more
Each item returns: title, type (release/news), publication date, editoria (section), related products/surveys, a featured flag, a plain-text summary, and a link to the full article. The header reports the total count and current page.
Examples:
Latest 10 news: (no parameters)
Search census: busca="censo"
2024 news: de="01/01/2024", ate="31/12/2024"
Releases only: tipo="release"
Use a different tool when:
Scheduled/upcoming release dates (not yet published) → ibge_calendario
Behavior: read-only and idempotent — a live GET against the public IBGE Notícias API. Returns a Markdown list.
| Name | Required | Description | Default |
|---|---|---|---|
| de | No | Data inicial no formato DD/MM/AAAA (ex: 01/01/2024) | |
| ate | No | Data final no formato DD/MM/AAAA (ex: 31/12/2024) | |
| tipo | No | Tipo de publicação: 'release' ou 'noticia' | |
| busca | No | Termo para buscar nas notícias | |
| pagina | No | Número da página para paginação | |
| destaque | No | Filtrar apenas notícias em destaque | |
| quantidade | No | Quantidade de notícias a retornar (padrão: 10, máximo: 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| busca | No | Termo de busca aplicado, se houver |
| total | Yes | Total de notícias encontradas na consulta |
| pagina | Yes | Página atual |
| noticias | Yes | Lista de notícias retornadas |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| totalPaginas | Yes | Número total de páginas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the safety annotations (readOnly, idempotent, openWorld, non-destructive), it discloses sorting (newest-first), the no-parameter default (10 most recent), the pagination header behavior, and that it is a live GET returning Markdown. These are operational traits the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by clearly labeled parameters, examples, and exclusions. Slightly long, and the parameter list partially duplicates the schema descriptions, but the added enum semantics justify most of it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param, zero-required search tool with an output schema, the definition covers selection, defaults, parameter meaning, return-field inventory, and the alternative tool. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds real meaning: it explains what 'release' vs 'noticia' semantically denote and that omitting 'tipo' returns both, plus worked date-format and search examples. This goes beyond restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Searches and lists already-published IBGE news articles and press releases') and immediately frames the scope as published-only content, which distinguishes it from the calendar sibling. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use triggers (finding recent publications, release dates, term mentions), concrete examples, and a dedicated 'Use a different tool when' section routing scheduled/upcoming dates to ibge_calendario. Nothing about selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_paisesDados de paísesARead-onlyIdempotentInspect
Queries international country data via IBGE.
Features:
List all countries (following UN M49 methodology)
Country details (area, languages, currency, location) with the latest published value of country indicators — by default population, GDP, GDP per capita, HDI and life expectancy
Pick other indicators with indicadores="<ids or aliases separated by |>"
Indicator catalog as published by IBGE (34 indicators: economy, population, health, environment, networks), with unit and scale
Search countries by name
Filter by region/continent
Each indicator value is the most recent one the source publishes for that country, with its year or period (some are 3- or 5-year ranges like "2021-2023"), as text (it can be "<2.5"), plus unit and scale (multiplicador) — null when the source has none.
Available regions: americas, europa, africa, asia, oceania
Country codes: Use ISO-ALPHA-2 (e.g., BR, US, AR, PT, JP)
Examples:
List all: tipo="listar"
Brazil details: tipo="detalhes", pais="BR"
Chosen indicators: tipo="detalhes", pais="AR", indicadores="idh|77852"
Search: tipo="buscar", busca="Argentina"
Americas countries: tipo="listar", regiao="americas"
Indicator catalog: tipo="indicadores"
Behavior: read-only and idempotent — a live GET against the public IBGE Países API. Returns Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| pais | No | Código ISO-ALPHA-2 do país (ex: BR, US, AR) ou código M49 | |
| tipo | No | Tipo de consulta: listar (todos), detalhes (de um país), indicadores, buscar | listar |
| busca | No | Termo de busca para filtrar países pelo nome | |
| regiao | No | Filtrar por região/continente: americas, europa, africa, asia, oceania | |
| indicadores | No | Indicadores a trazer no modo detalhes, separados por | — IDs ou apelidos (ex: 77819|77820 ou idh|populacao). Lista completa: tipo='indicadores'. Sem este parâmetro: população, PIB, PIB per capita, IDH e esperança de vida |
Output Schema
| Name | Required | Description |
|---|---|---|
| pais | No | Detalhes de um país específico (modo detalhes) |
| tipo | Yes | Modo de consulta que originou este resultado |
| busca | No | Termo de busca aplicado, se houver |
| total | No | Total de países encontrados (modos listar/buscar) |
| paises | No | Lista de países (modos listar/buscar). Limitada aos 50 primeiros na exibição |
| regiao | No | Filtro de região/continente aplicado, se houver |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| indicadores | No | Catálogo de indicadores de países publicado pelo IBGE (modo indicadores) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower, and the description adds genuinely useful behavior: it is a live GET against the public IBGE API, returns Markdown, values carry a year/period (sometimes 3- or 5-year ranges), can be text like '<2.5', and are null when the source has none. The '<2.5' and null-handling caveats are exactly the kind of thing an agent cannot infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then organized into Features, value-semantics, allowed regions/codes, and labeled examples, so an agent can skim to the needed section. It is somewhat long and repeats the region list and default-indicator set that already live in the schema, which is mild redundancy rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter, four-mode tool with no required params, the description covers mode selection, code format, region vocabulary, indicator defaults and syntax, and data-freshness caveats, while an output schema already exists so return values need not be enumerated. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description exceeds the schema by stating the default indicator set returned when indicadores is omitted, the pipe-separated ID-or-alias syntax, and worked combinations of tipo with pais/regiao/indicadores/busca. This clarifies parameter interaction (which params apply to which tipo) rather than just restating field docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Queries international country data via IBGE') and immediately enumerates the four query modes, which cleanly separates it from Brazilian-scope siblings like ibge_estados and ibge_municipios. An agent knows this is the international-country endpoint without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one concrete example per mode (listar, detalhes, buscar, indicadores) plus examples of region filtering and custom indicator selection, so the agent can map intent to parameters. It stops short of naming when to prefer a sibling (e.g., ibge_comparar for multi-country comparisons) or stating exclusions, so it is clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_pesquisasPesquisas do IBGEARead-onlyIdempotentInspect
Lists available IBGE surveys and their tables.
Features:
List all IBGE surveys (Census, PNAD, GDP, etc.)
Search by name or code
Show details and tables of a specific survey
Categorize surveys by theme
Main surveys:
Census: Demographic, Agricultural, MUNIC
PNAD Contínua: Employment, income, education
National Accounts: GDP, investments
Economic Surveys: Industry, Commerce, Services
Price Indices: IPCA, INPC
Examples:
List all: (no parameters)
Search population: busca="população"
PNAD details: detalhes="pnad"
This lists surveys, not data. To find table codes use ibge_sidra_tabelas; to query data use ibge_sidra (or a wrapper: ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades).
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA/Pesquisas API. Returns a Markdown list.
| Name | Required | Description | Default |
|---|---|---|---|
| busca | No | Termo para buscar no nome ou ID da pesquisa | |
| detalhes | No | Código da pesquisa para ver detalhes e tabelas disponíveis |
Output Schema
| Name | Required | Description |
|---|---|---|
| modo | Yes | Modo de consulta que originou este resultado: lista de pesquisas ou detalhes de uma |
| busca | No | Termo de busca aplicado, se houver (modo lista) |
| total | No | Total de pesquisas encontradas (modo lista) |
| pesquisa | No | Detalhes de uma pesquisa específica (modo detalhes) |
| pesquisas | No | Lista de pesquisas (modo lista) |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive; the description repeats those but adds genuinely new context: a live GET against the public IBGE SIDRA/Pesquisas API (not cached) and a Markdown-list return. Return format is partly covered by the output schema, so the marginal gain is modest but real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in one sentence, then features, examples, and behavior in scannable sections. The 'Main surveys' catalogue and duplicated examples are somewhat verbose relative to a two-parameter list tool, but every block is relevant and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. Description covers purpose, routing, examples, and behavior fully; nothing an agent needs to select or invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further by demonstrating concrete parameter usage (busca="população", detalhes="pnad") and clarifying that no parameters lists everything, adding practical meaning beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (IBGE surveys and their tables), and explicitly contrasts with siblings: 'This lists surveys, not data.' The agent can tell it apart from ibge_sidra and ibge_sidra_tabelas without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: use ibge_sidra_tabelas for table codes, ibge_sidra or the wrappers for data. Names concrete alternatives and the condition selecting each, plus worked examples (busca="população", detalhes="pnad").
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_sidraConsulta de tabelas SIDRAARead-onlyIdempotentInspect
Queries SIDRA tables (IBGE's Automatic Recovery System).
SIDRA contains data from IBGE surveys like Census, PNAD, GDP, etc.
Common tables:
6579: Population estimates (annual)
9514: Census 2022 population
200: Census population (1970-2010)
4714: Population, territorial area and density (Census 2022)
4099: Unemployment rate (PNAD Contínua, quarterly)
5436: Average real income (PNAD Contínua, quarterly)
1846: Quarterly GDP at current prices (Brazil)
5938: Municipal GDP at current prices (annual, down to municipality)
6784: Annual GDP and GDP per capita (Brazil)
Territorial levels:
1: Brazil
2: Region (North, Northeast, etc.)
3: State (UF)
6: Municipality
7: Metropolitan Region
Examples:
Brazil population 2023: tabela="6579", periodos="2023"
Population by state: tabela="6579", nivel_territorial="3"
Census 2022 by municipality: tabela="9514", nivel_territorial="6", localidades="3550308"
What each number is: every record carries the SIDRA period column (code and label, e.g. "Mês (Código)" 202403 / "Mês" "março 2024") and the "Variável" label — the only place that says whether a value is a monthly change, a year-to-date or 12-month accumulation, an index number or a level; read it before adding, subtracting or comparing values. A PNAD rolling quarter ("jun-jul-ago 2026") is a three-month window that moves every month, not a calendar quarter. Revisions: values are what SIDRA publishes at the extraction instant (retrieved_at); IBGE revises published figures (quarterly GDP at each release, PNAD reweighting, annual revisions of PIM/PMC/PMS) and the API keeps no earlier version.
Statistics mode: for largest/smallest/mean/median/distribution/ranking questions ("which municipality has the largest population?", "median GDP by state") use estatisticas=true — it computes min/max/mean/median/std-dev/labeled percentiles over ALL data rows BEFORE pagination and returns top/bottom rankings (default 10, cap 100 via topN), so one call answers what would otherwise require paging thousands of records. With agruparPor="" (e.g. "Unidade da Federação", "Ano") it ranks groups by descending sum, each with its own mini-distribution. Queries mixing several variables auto-group by "Variável" (units differ). SIDRA absence markers ("-", "..", "...", "X") are excluded from n. In this mode pagina/campos/formato are ignored and registros comes empty. Very large queries are refused by the source (since 2026-09-16 SIDRA tables are read through the Aggregates API, whose ceiling is lower than SIDRA's old 100,000-value cap: all municipalities × 12 yearly periods fails, × 8 works) — narrow periodos (e.g. "last 4") or raise nivel_territorial.
ibge_sidra is the low-level engine. Prefer a friendlier wrapper when it fits:
Census themes (1970–2022) → ibge_censo
Economic/social time series → ibge_indicadores
Rank/compare 2–10 localities → ibge_comparar
One municipality's panel → ibge_cidades Use ibge_sidra_tabelas and ibge_sidra_metadados to find a table code and its structure before querying.
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown plus a typed structuredContent payload.
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100) | |
| campos | No | Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. Omitir traz todas. | |
| pagina | No | Página de resultados (100 registros por página) | |
| tabela | Yes | Código da tabela SIDRA (ex: 6579 para estimativas de população, 9514 para censo 2022) | |
| formato | No | Formato de saída: 'json' para dados brutos ou 'tabela' para formato legível | tabela |
| periodos | No | Períodos: 'last' para último, 'all' para todos, ou anos específicos (ex: 2020,2021,2022) | last |
| variaveis | No | IDs das variáveis separados por vírgula, ou 'allxp' para todas | allxp |
| agruparPor | No | Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido | |
| localidades | No | Códigos das localidades separados por vírgula, ou 'all' para todas | all |
| estatisticas | No | Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato | |
| classificacoes | No | Classificações no formato 'id[categorias]' (ex: '2[6794]' para sexo masculino) | |
| nivel_territorial | No | Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município, 7=Região Metropolitana, 8=Mesorregião, 9=Microrregião, 10=Distrito, 11=Subdistrito, 13=RM/RIDE, 14=RIDE, 15=Aglomeração Urbana, 17=Região Geográfica Imediata, 18=Região Geográfica Intermediária, 105=Macrorregião de Saúde, 106=Região de Saúde, 114=Aglomerado Subnormal, 127=Amazônia Legal, 128=Semiárido | 1 |
Output Schema
| Name | Required | Description |
|---|---|---|
| nome | Yes | Nome da tabela (quando conhecido) |
| tabela | Yes | Código da tabela SIDRA consultada |
| colunas | Yes | Rótulos das colunas, na ordem |
| unidades | Yes | Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas |
| paginacao | Yes | Metadados de paginação para continuação |
| registros | Yes | Registros da página atual: cada um mapeia rótulo da coluna -> valor |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| estatisticas | No | Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo) |
| totalRegistros | Yes | Total de registros de dados disponíveis (todas as páginas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, but the description adds substantial context beyond them: values are a point-in-time snapshot with no revision history, absence markers are excluded from n, estatisticas ignores pagina/campos/formato and returns empty registros, and the Aggregates API ceiling rejects all-municipalities × 12 periods while × 8 works. It also discloses the return shape (Markdown plus typed structuredContent).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and routing, which is right, but it runs very long and partly duplicates the schema: the table-code list and the territorial-level code list restate what is already in the tabela and nivel_territorial parameter descriptions. The 'What each number is' paragraph is valuable but buried mid-document rather than signposted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a 12-parameter query engine: with an output schema present, return-value shape need only be named, and it is. Revisions, source-side size limits, statistics-mode overrides, and sibling routing together cover everything an agent needs to call this correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description goes further by giving worked examples (tabela="6579", nivel_territorial="3", localidades="3550308") and explaining cross-parameter interactions, e.g. agruparPor ranking groups by descending sum with a named "Variável" auto-grouping when units differ. It stops short of explaining classificacoes or variaveis syntax, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ("Queries SIDRA tables") and immediately scopes what SIDRA contains. It explicitly positions itself as "the low-level engine" and enumerates which sibling wrappers cover which use cases, so an agent can distinguish it from ibge_censo, ibge_indicadores, ibge_comparar and ibge_cidades without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing rules for four sibling tools plus a prerequisite step ("Use ibge_sidra_tabelas and ibge_sidra_metadados to find a table code…before querying"). It also defines when to switch on estatisticas (largest/smallest/mean/median/ranking) and when to narrow periodos or raise nivel_territorial to avoid source refusals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_sidra_metadadosMetadados de tabela SIDRAARead-onlyIdempotentInspect
Returns metadata for a specific SIDRA table.
Features:
General info (name, survey, subject, periodicity)
Available territorial levels
Variable list with units
Classifications and categories
Available periods
Use this tool to understand table structure BEFORE querying data with ibge_sidra.
Examples:
Population table metadata: tabela="6579"
Census 2022 metadata: tabela="9514"
PNAD unemployment: tabela="4714"
Use this after finding a table code (ibge_sidra_tabelas) and before querying with ibge_sidra.
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| tabela | Yes | Código da tabela/agregado SIDRA (ex: '6579', '9514', '4714') | |
| incluir_periodos | No | Incluir lista de períodos disponíveis (padrão: true) | |
| incluir_localidades | No | Incluir níveis territoriais disponíveis (padrão: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | URL da tabela no SIDRA |
| nome | Yes | Nome da tabela |
| codigo | Yes | Código da tabela/agregado SIDRA |
| assunto | No | Assunto/tema da tabela |
| periodos | No | Períodos disponíveis para a tabela (quando incluir_periodos) |
| pesquisa | No | Nome da pesquisa de origem |
| variaveis | No | Variáveis da tabela, com unidades e classificações/categorias |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| periodicidade | No | Periodicidade da pesquisa |
| niveisTerritoriais | No | Níveis territoriais disponíveis para a tabela |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive, and the description partially repeats them; however it adds real value by specifying the output format ('Returns Markdown') and that it is a live GET against the public IBGE SIDRA API. It does not mention auth or rate limits, which is a minor gap for a public API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a scannable feature list, usage sequencing, and concrete examples. Slightly longer than strictly necessary, but each block (features, when-to-use, examples) earns its place for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained, yet the description still previews the metadata sections. Combined with explicit workflow placement and examples, an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter is documented in the schema, so the description need not explain them. It adds usage examples for 'tabela' values but no syntax or behavioral detail for incluir_periodos/incluir_localidades beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns metadata for a specific SIDRA table') and enumerates exactly what that metadata contains (info, territorial levels, variables, classifications, periods). It is clearly distinguishable from ibge_sidra (data query) and ibge_sidra_tabelas (table discovery).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing: 'Use this after finding a table code (ibge_sidra_tabelas) and before querying with ibge_sidra', plus a 'BEFORE querying' directive. Both the predecessor and successor tools are named, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_sidra_tabelasBusca de tabelas SIDRAARead-onlyIdempotentInspect
Lists and searches available SIDRA tables.
Features:
List all SIDRA tables (aggregates)
Search by table name: every word must match (AND), accents and case ignored, and everyday Portuguese is resolved to the IBGE's own wording (renda→rendimento, desemprego→desocupação, cidade→município, gênero→sexo); when that happens the response says so in notas_vocabulario
Filter by survey (Census, PNAD, GDP, etc.)
Shows code and name of each table
SIDRA contains data from various surveys:
Demographic Census
PNAD Contínua (employment, income)
National Accounts (GDP)
Industrial Survey
Agricultural Survey
Examples:
List tables: (no parameters)
Search population tables: busca="população"
Census tables: pesquisa="censo"
This is step 1 of the SIDRA workflow: find a table code → ibge_sidra_metadados (structure) → ibge_sidra (query). For common data, a wrapper is usually easier: ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades.
Behavior: read-only and idempotent — a live GET against the public IBGE SIDRA API. Returns a Markdown table.
| Name | Required | Description | Default |
|---|---|---|---|
| busca | No | Termos para buscar no nome das tabelas/agregados (sem distinção de acento ou caixa; AND entre as palavras; a palavra de todo dia é traduzida para a do IBGE — renda→rendimento, desemprego→desocupação, cidade→município) | |
| limite | No | Número máximo de resultados (padrão: 20) | |
| pesquisa | No | Filtrar por código ou nome da pesquisa (ex: 'censo', 'pnad', 'pib') |
Output Schema
| Name | Required | Description |
|---|---|---|
| busca | No | Termo de busca aplicado, se houver |
| total | Yes | Total de tabelas que correspondem aos critérios |
| tabelas | Yes | Lista de tabelas SIDRA retornadas |
| pesquisa | No | Filtro de pesquisa aplicado, se houver |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
| notas_vocabulario | No | Quando a busca foi ampliada para a palavra que o IBGE usa (renda→rendimento), diz qual |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds live GET against the public IBGE SIDRA API, returns a Markdown table, and details search behavior (AND matching, accent/case insensitivity, vocabulary mapping with notas_vocabulario in the response). This is substantial beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and organized under clear headings, but somewhat long. The survey list and multiple examples add context but could be trimmed; every section is relevant though not strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, return values need not be explained. The description covers purpose, usage, alternatives, behavior, search semantics, and response format, leaving no critical gap for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for busca, limite, and pesquisa. The description largely repeats schema semantics (AND, accent insensitivity, vocabulary mapping) and adds only minor examples (gênero→sexo, busca="população"), so the schema already carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Lists and searches available SIDRA tables') and distinguishes from siblings by positioning as step 1 of the SIDRA workflow and naming ibge_sidra_metadados and ibge_sidra. It also clarifies what each result shows (code and name).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: step 1 of the SIDRA workflow to find a table code, and when to use alternatives ('For common data, a wrapper is usually easier: ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades'). Provides concrete examples for listing and searching.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ibge_vizinhosMunicípios vizinhosARead-onlyIdempotentInspect
Finds nearby/neighboring municipalities.
Features:
Search by IBGE code (7 digits) or municipality name
Returns municipalities in the same mesoregion (proximity approximation)
Optionally includes population data
Note: Uses mesoregion as geographic proximity proxy. For exact spatial neighborhood, mesh processing would be required.
Examples:
By code: municipio="3550308"
By name: municipio="Campinas", uf="SP"
With population: municipio="3550308", incluir_dados=true
Note: proximity is approximated by shared mesoregion (not exact spatial adjacency). For listing/searching municipalities, use ibge_municipios.
Behavior: read-only and idempotent — a live GET against the public IBGE Localidades API. Returns a Markdown list.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) — obrigatório se usar nome do município | |
| raio | No | Raio em km para buscar municípios próximos (usa centróides) | |
| municipio | Yes | Código IBGE do município (7 dígitos) ou nome do município | |
| incluir_dados | No | Incluir dados populacionais dos vizinhos |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Quantidade de municípios próximos encontrados |
| vizinhos | Yes | Lista de municípios próximos (mesma mesorregião) |
| municipio | Yes | Município de referência da consulta |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world, so safety is covered. The description adds meaningful context beyond that: it is a live GET against the public IBGE Localidades API and returns a Markdown list. It also discloses the important caveat that 'proximity' is a mesoregion proxy, not true spatial adjacency — a behavioral limitation not visible in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The features and examples are front-loaded and useful, but the mesoregion-proxy caveat is stated twice in near-identical wording ('Uses mesoregion as geographic proximity proxy' and 'proximity is approximated by shared mesoregion'), which is wasteful. Trimming the duplicate would earn back a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is correctly omitted; the description still notes the Markdown list format. Features, both input modes, examples, and the central proximity limitation are all covered. The only gap is that the raio parameter is unexplained while the description implies proximity is exclusively mesoregion-based.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters and the baseline is 3. The description's examples illustrate municipio/uf combinations, adding minor value. However, it never addresses the 'raio' parameter (radius in km, centroid-based), and its repeated claim that proximity is only a mesoregion proxy sits in tension with the schema's raio semantics, which could mislead an agent about how proximity actually works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Finds nearby/neighboring municipalities') and immediately distinguishes itself from the sibling ibge_municipios for listing/searching. The 'Features' block clarifies the two input modes (IBGE code or name) and the optional population enrichment. An agent can place this against its siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage context (search by code or name, optional population data), three worked examples, and an explicit alternative ('for listing/searching municipalities, use ibge_municipios'). It also states the condition under which this tool is not appropriate (exact spatial adjacency requires mesh processing). Lacks a broader when-not-to-use enumeration across the other ibge_* siblings, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchBusca para Deep ResearchARead-onlyIdempotentInspect
Searches the IBGE (Brazilian official statistics: SIDRA tables, municipalities, known indicators) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched).
This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools search and fetch. Pass one of the returned ids to fetch to read the document.
For direct questions and for data (values, series, rankings) prefer the ibge_* tools (ibge_sidra, ibge_cidades, ibge_indicadores, ibge_comparar…), which return the actual data with provenance — this is a catalog index, not a data query.
Query: natural language or keywords, Portuguese or English; accents and case are ignored.
Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Termos de busca em linguagem natural ou palavras-chave (acentos e caixa são ignorados) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Documentos encontrados, em ordem de relevância |
| provenance | Yes | Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and non-destructive, and the description still adds real context beyond them: results are capped at 10, empty list signals no match, results are relevance-ordered, and the catalog comes from a public source cached in memory. The 'read-only and idempotent' sentence partially restates annotations but the surrounding facts are genuinely additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and return shape, then workflow, then alternatives, then query semantics — a sensible order with no wasted sentences. Slight redundancy in the final paragraph, where 'read-only and idempotent' repeats the annotations rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema and full annotations, the description covers everything an agent needs: what it searches, what it returns, how many, what empty means, and how it feeds `fetch`. Return-value detail is backed by the output schema, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter's own description already covers natural-language/keyword input and accent/case insensitivity, so the baseline is 3. The description adds that queries may be in Portuguese or English, which the schema does not state, giving a modest lift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches) and resource (the IBGE catalog), names the return shape { id, title, url } and the ordering (relevance), and explicitly distinguishes itself from the ibge_* siblings by calling itself 'a catalog index, not a data query'. An agent can tell this apart from ibge_sidra or ibge_indicadores without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (the OpenAI Deep Research contract requiring exactly `search` and `fetch`), an explicit hand-off ('Pass one of the returned ids to `fetch`'), and an explicit when-not/prefer-instead rule routing data questions to the ibge_* tools. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v5.11.0- Changed
ibge_censo14 fields changed- added
Output schema / properties / estatisticas / properties / distribuicao / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / soma / descriptionAdded value: +"Soma dos valores considerados" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / soma / descriptionAdded value: +"Soma dos valores considerados"
- Changed
ibge_comparar4 fields changed- added
Output schema / properties / estatisticas / properties / maior / descriptionAdded value: +"Maior valor entre as localidades com valor" - added
Output schema / properties / estatisticas / properties / media / descriptionAdded value: +"Média aritmética dos valores das localidades" - added
Output schema / properties / estatisticas / properties / menor / descriptionAdded value: +"Menor valor entre as localidades com valor" - added
Output schema / properties / estatisticas / properties / variacaoPct / descriptionAdded value: +"Quanto o maior supera o menor, em % ((maior/menor - 1) x 100; 0 se o menor for 0)"
- Changed
ibge_datasaude14 fields changed- added
Output schema / properties / estatisticas / properties / distribuicao / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / soma / descriptionAdded value: +"Soma dos valores considerados" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / soma / descriptionAdded value: +"Soma dos valores considerados"
- Changed
ibge_indicadores14 fields changed- added
Output schema / properties / estatisticas / properties / distribuicao / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / soma / descriptionAdded value: +"Soma dos valores considerados" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / soma / descriptionAdded value: +"Soma dos valores considerados"
- Changed
ibge_sidra18 fields changed- added
Output schema / properties / estatisticas / properties / distribuicao / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / distribuicao / properties / soma / descriptionAdded value: +"Soma dos valores considerados" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / desvioPadrao / descriptionAdded value: +"Desvio-padrão populacional (divide por n: os dados são censitários, não amostra)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / maximo / descriptionAdded value: +"Maior valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / media / descriptionAdded value: +"Média aritmética" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / mediana / descriptionAdded value: +"Mediana (percentil 50, interpolação linear)" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / minimo / descriptionAdded value: +"Menor valor" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / percentis / descriptionAdded value: +"Percentis 25, 50, 75, 90, 95 e 99, cada um com o enunciado por extenso em rotulo" - added
Output schema / properties / estatisticas / properties / grupos / items / properties / soma / descriptionAdded value: +"Soma dos valores considerados" - added
Output schema / properties / paginacao / properties / pagina / descriptionAdded value: +"Página devolvida (o pedido é ajustado ao intervalo 1..totalPaginas)" - added
Output schema / properties / paginacao / properties / porPagina / descriptionAdded value: +"Registros por página (fixo em 100)" - added
Output schema / properties / paginacao / properties / temMais / descriptionAdded value: +"true quando há página seguinte (use pagina+1); sempre false com estatisticas=true" - added
Output schema / properties / paginacao / properties / totalPaginas / descriptionAdded value: +"Total de páginas disponíveis"
23 tool updates
v5.10.0- Changed
fetch7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_calendario7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_censo9 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +} - added
Output schema / properties / unidadesAdded value: +{ + "description": "Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas", + "items": { + "additionalProperties": false, + "properties": { + "multiplicador": { + "description": "Multiplicador de escala publicado à parte; o SIDRA não publica — sempre null, a escala está no texto da unidade", + "type": [ + "number", + "null" + ] + }, + "nomeVariavel": { + "description": "Nome da variável", + "type": [ + "string", + "null" + ] + }, + "unidade": { + "description": "Unidade de medida como a fonte publica, com a escala no texto (ex.: 'Mil pessoas', 'Milhões de Reais'); null se a fonte não diz", + "type": [ + "string", + "null" + ] + }, + "variavel": { + "description": "Código da variável SIDRA (null se a resposta não tem a dimensão Variável)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "variavel", + "nomeVariavel", + "unidade", + "multiplicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros", - "provenance", - "attribution" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "unidades", + "provenance", + "attribution" +]
- Changed
ibge_cidades7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_cnae7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_comparar9 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +} - added
Output schema / properties / unidadesAdded value: +{ + "description": "Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas", + "items": { + "additionalProperties": false, + "properties": { + "multiplicador": { + "description": "Multiplicador de escala publicado à parte; o SIDRA não publica — sempre null, a escala está no texto da unidade", + "type": [ + "number", + "null" + ] + }, + "nomeVariavel": { + "description": "Nome da variável", + "type": [ + "string", + "null" + ] + }, + "unidade": { + "description": "Unidade de medida como a fonte publica, com a escala no texto (ex.: 'Mil pessoas', 'Milhões de Reais'); null se a fonte não diz", + "type": [ + "string", + "null" + ] + }, + "variavel": { + "description": "Código da variável SIDRA (null se a resposta não tem a dimensão Variável)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "variavel", + "nomeVariavel", + "unidade", + "multiplicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "localidades", - "provenance", - "attribution" -]New value: +[ + "localidades", + "unidades", + "provenance", + "attribution" +]
- Changed
ibge_datasaude9 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +} - added
Output schema / properties / unidadesAdded value: +{ + "description": "Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas", + "items": { + "additionalProperties": false, + "properties": { + "multiplicador": { + "description": "Multiplicador de escala publicado à parte; o SIDRA não publica — sempre null, a escala está no texto da unidade", + "type": [ + "number", + "null" + ] + }, + "nomeVariavel": { + "description": "Nome da variável", + "type": [ + "string", + "null" + ] + }, + "unidade": { + "description": "Unidade de medida como a fonte publica, com a escala no texto (ex.: 'Mil pessoas', 'Milhões de Reais'); null se a fonte não diz", + "type": [ + "string", + "null" + ] + }, + "variavel": { + "description": "Código da variável SIDRA (null se a resposta não tem a dimensão Variável)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "variavel", + "nomeVariavel", + "unidade", + "multiplicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros", - "provenance", - "attribution" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "unidades", + "provenance", + "attribution" +]
- Changed
ibge_estados7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_geocodigo7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_indicadores9 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +} - added
Output schema / properties / unidadesAdded value: +{ + "description": "Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas", + "items": { + "additionalProperties": false, + "properties": { + "multiplicador": { + "description": "Multiplicador de escala publicado à parte; o SIDRA não publica — sempre null, a escala está no texto da unidade", + "type": [ + "number", + "null" + ] + }, + "nomeVariavel": { + "description": "Nome da variável", + "type": [ + "string", + "null" + ] + }, + "unidade": { + "description": "Unidade de medida como a fonte publica, com a escala no texto (ex.: 'Mil pessoas', 'Milhões de Reais'); null se a fonte não diz", + "type": [ + "string", + "null" + ] + }, + "variavel": { + "description": "Código da variável SIDRA (null se a resposta não tem a dimensão Variável)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "variavel", + "nomeVariavel", + "unidade", + "multiplicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros", - "provenance", - "attribution" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "unidades", + "provenance", + "attribution" +]
- Changed
ibge_localidade7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_malhas7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_malhas_tema7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_municipios7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_nomes7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_noticias7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_paises23 fields changed- changed
Input schema / properties / indicadores / descriptionPrevious value: -"IDs dos indicadores separados por | (ex: 77819|77820)"New value: +"Indicadores a trazer no modo detalhes, separados por | — IDs ou apelidos (ex: 77819|77820 ou idh|populacao). Lista completa: tipo='indicadores'. Sem este parâmetro: população, PIB, PIB per capita, IDH e esperança de vida" - changed
Output schema / properties / indicadores / descriptionPrevious value: -"Indicadores disponíveis para consulta de países (modo indicadores)"New value: +"Catálogo de indicadores de países publicado pelo IBGE (modo indicadores)" - changed
Output schema / properties / indicadores / items / properties / alias / descriptionPrevious value: -"Apelido amigável do indicador"New value: +"O que passar no parâmetro `indicadores`: o apelido (ex.: 'idh'), ou o próprio ID quando o indicador não tem apelido" - added
Output schema / properties / indicadores / items / properties / multiplicadorAdded value: +{ + "description": "Escala dos valores; null se a fonte não informa", + "type": [ + "number", + "null" + ] +} - changed
Output schema / properties / indicadores / items / properties / nome / descriptionPrevious value: -"Nome do indicador"New value: +"Nome do indicador, como a fonte o publica" - added
Output schema / properties / indicadores / items / properties / unidadeAdded value: +{ + "description": "Unidade do indicador; null se a fonte não informa", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / indicadores / items / requiredPrevious value: -[ - "id", - "nome", - "alias" -]New value: +[ + "id", + "nome", + "alias", + "unidade", + "multiplicador" +] - changed
Output schema / properties / pais / properties / indicadores / descriptionPrevious value: -"Indicadores principais com o valor mais recente disponível"New value: +"Indicadores pedidos, cada um com o valor mais recente publicado" - changed
Output schema / properties / pais / properties / indicadores / items / properties / ano / descriptionPrevious value: -"Ano de referência do valor"New value: +"Ano ou período (ex.: '2021-2023') do valor" - added
Output schema / properties / pais / properties / indicadores / items / properties / idAdded value: +{ + "description": "ID do indicador na API do IBGE", + "type": "number" +} - changed
Output schema / properties / pais / properties / indicadores / items / properties / indicador / descriptionPrevious value: -"Nome do indicador"New value: +"Nome do indicador, como a fonte o publica" - added
Output schema / properties / pais / properties / indicadores / items / properties / multiplicadorAdded value: +{ + "description": "Escala do valor (ex.: 1000000000 = valor em bilhões da unidade); null se a fonte não informa", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / pais / properties / indicadores / items / properties / unidadeAdded value: +{ + "description": "Unidade do valor (ex.: 'US$', '% do PIB'); null se a fonte não informa", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / pais / properties / indicadores / items / properties / valor / descriptionPrevious value: -"Valor mais recente do indicador"New value: +"Valor mais recente publicado, como texto da fonte (pode ser não numérico, ex.: '<2.5')" - changed
Output schema / properties / pais / properties / indicadores / items / requiredPrevious value: -[ - "indicador", - "valor", - "ano" -]New value: +[ + "id", + "indicador", + "valor", + "ano", + "unidade", + "multiplicador" +] - added
Output schema / properties / pais / properties / indicadoresSemValorAdded value: +{ + "description": "Indicadores pedidos para os quais a fonte não publica valor algum para o país (série inteira em branco) — ausência na fonte, não zero", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "ID do indicador na API do IBGE", + "type": "number" + }, + "indicador": { + "description": "Nome do indicador, como a fonte o publica", + "type": "string" + } + }, + "required": [ + "id", + "indicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_pesquisas7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_sidra9 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +} - added
Output schema / properties / unidadesAdded value: +{ + "description": "Unidade de medida de cada variável da resposta, FORA de `registros`: não some com `campos` nem com a paginação. Leia antes de citar um valor — 'Mil pessoas' significa que 1.234 são 1,234 milhão de pessoas", + "items": { + "additionalProperties": false, + "properties": { + "multiplicador": { + "description": "Multiplicador de escala publicado à parte; o SIDRA não publica — sempre null, a escala está no texto da unidade", + "type": [ + "number", + "null" + ] + }, + "nomeVariavel": { + "description": "Nome da variável", + "type": [ + "string", + "null" + ] + }, + "unidade": { + "description": "Unidade de medida como a fonte publica, com a escala no texto (ex.: 'Mil pessoas', 'Milhões de Reais'); null se a fonte não diz", + "type": [ + "string", + "null" + ] + }, + "variavel": { + "description": "Código da variável SIDRA (null se a resposta não tem a dimensão Variável)", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "variavel", + "nomeVariavel", + "unidade", + "multiplicador" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / requiredPrevious value: -[ - "tabela", - "nome", - "totalRegistros", - "colunas", - "registros", - "paginacao", - "provenance", - "attribution" -]New value: +[ + "tabela", + "nome", + "totalRegistros", + "colunas", + "registros", + "unidades", + "paginacao", + "provenance", + "attribution" +]
- Changed
ibge_sidra_metadados7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_sidra_tabelas7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
ibge_vizinhos7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
- Changed
search7 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença"New value: +"Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / derivation_noteAdded value: +{ + "description": "O que o servidor calculou; presente junto com derived", + "type": "string" +} - added
Output schema / properties / provenance / properties / derivedAdded value: +{ + "description": "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE", + "type": "boolean" +} - added
Output schema / properties / provenance / properties / field_sourcesAdded value: +{ + "description": "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração", + "items": { + "additionalProperties": false, + "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído", + "properties": { + "data_vintage": { + "description": "Vintage/competência da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "dataset_id": { + "description": "Identificador do conjunto da sub-fonte", + "type": [ + "string", + "null" + ] + }, + "fields": { + "description": "Campos do payload atribuídos a esta sub-fonte", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "retrieved_at": { + "description": "ISO-8601 da extração desta sub-fonte na origem", + "type": [ + "string", + "null" + ] + }, + "served_from_cache": { + "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue", + "type": [ + "boolean", + "null" + ] + }, + "source_url": { + "description": "URL canônica da sub-fonte que originou estes campos", + "type": "string" + } + }, + "required": [ + "fields", + "source_url", + "dataset_id", + "data_vintage", + "retrieved_at" + ], + "type": "object" + }, + "minItems": 1, + "type": "array" +} - added
Output schema / properties / provenance / properties / noticesAdded value: +{ + "description": "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" +} - changed
Output schema / properties / provenance / properties / retrieval / descriptionPrevious value: -"Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)"New value: +"Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" - added
Output schema / properties / provenance / properties / revisionAdded value: +{ + "additionalProperties": false, + "description": "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há", + "properties": { + "note": { + "description": "O específico da fonte: o que revisa, quando, por quê", + "type": [ + "string", + "null" + ] + }, + "status": { + "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte", + "enum": [ + "current", + "provisional", + "final" + ], + "type": "string" + } + }, + "required": [ + "status", + "note" + ], + "type": "object" +}
2 tool updates
v5.5.1- Changed
fetch1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
23 tool updates
v5.4.0- Changed
fetch3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_calendario3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_censo3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_cidades3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_cnae3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_comparar3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_datasaude3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_estados3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_geocodigo3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_indicadores3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_localidade3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_malhas3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_malhas_tema3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_municipios3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_nomes3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_noticias3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_paises3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_pesquisas3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_sidra3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_sidra_metadados3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_sidra_tabelas3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
ibge_vizinhos3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
- Changed
search3 fields changed- changed
Output schema / properties / provenance / descriptionPrevious value: -"Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença"New value: +"Bloco de proveniência (contrato v1.1): fonte, URL, período, extração, diagnóstico de origem e licença" - added
Output schema / properties / provenance / properties / retrievalAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "anomalies": { + "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma", + "items": { + "additionalProperties": false, + "properties": { + "count": { + "description": "Ocorrências desta classe na chamada", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "kind": { + "description": "Classe da anomalia (vocabulário fechado do contrato)", + "enum": [ + "timeout", + "network", + "http_4xx", + "http_5xx", + "rate_limited", + "malformed_body" + ], + "type": "string" + } + }, + "required": [ + "kind", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "attempts": { + "description": "Tentativas somadas, incluindo as repetidas (>= requests)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "requests": { + "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "unstable": { + "description": "true se houve repetição (attempts > requests) ou alguma anomalia", + "type": "boolean" + } + }, + "required": [ + "requests", + "attempts", + "anomalies", + "unstable" + ], + "type": "object" + }, + { + "type": "null" + } + ], + "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)" +} - changed
Output schema / properties / provenance / requiredPrevious value: -[ - "source", - "source_url", - "data_vintage", - "retrieved_at", - "citation", - "license" -]New value: +[ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "retrieval", + "citation", + "license" +]
1 tool update
v5.2.0- Changed
ibge_cnae4 fields changed- changed
Input schema / properties / busca / descriptionPrevious value: -"Termo para buscar na descrição das atividades (ex: 'software', 'restaurante', 'comércio')"New value: +"Termo para buscar na descrição das atividades (ex: 'software', 'restaurante', 'comércio').\nAcento e caixa não importam, e várias palavras casam em E ('comercio varejista').\nA palavra de todo dia é traduzida para a da CNAE quando preciso — farmácia →\nprodutos farmacêuticos, academia → condicionamento físico, lixo → resíduos — e a\nresposta diz quando traduziu." - added
Output schema / properties / busca / properties / encontradosAdded value: +{ + "description": "Quantidade de atividades que casam o termo no catálogo inteiro (pode ser maior que 'total', que é limitado por 'limite')", + "type": "number" +} - added
Output schema / properties / busca / properties / notas_vocabularioAdded value: +{ + "description": "Presente quando o termo foi traduzido para a palavra que a CNAE usa (ex: farmácia → produtos farmacêuticos)", + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / properties / busca / requiredPrevious value: -[ - "termo", - "nivel", - "total", - "resultados" -]New value: +[ + "termo", + "nivel", + "total", + "encontrados", + "resultados" +]
1 tool update
v5.1.1- Changed
ibge_sidra_tabelas2 fields changed- changed
Input schema / properties / busca / descriptionPrevious value: -"Termo para buscar no nome das tabelas/agregados"New value: +"Termos para buscar no nome das tabelas/agregados (sem distinção de acento ou caixa; AND entre as palavras; a palavra de todo dia é traduzida para a do IBGE — renda→rendimento, desemprego→desocupação, cidade→município)" - added
Output schema / properties / notas_vocabularioAdded value: +{ + "description": "Quando a busca foi ampliada para a palavra que o IBGE usa (renda→rendimento), diz qual", + "items": { + "type": "string" + }, + "type": "array" +}
21 tool updates
v5.0.0- Changed
ibge_calendario1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_censo2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / agruparPor / descriptionPrevious value: -"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição"New value: +"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"
- Changed
ibge_cidades1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_cnae1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_comparar1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_datasaude2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / agruparPor / descriptionPrevious value: -"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição"New value: +"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"
- Changed
ibge_estados1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_geocodigo1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_indicadores2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / agruparPor / descriptionPrevious value: -"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição"New value: +"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"
- Changed
ibge_localidade1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_malhas8 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / intrarregiao / descriptionPrevious value: -"Código de região para filtrar (apenas quando localidade=BR)"New value: +"Divisão interna pelo nome, alternativa a resolucao: 'regiao', 'UF', 'regiao-intermediaria', 'regiao-imediata', 'mesorregiao', 'microrregiao' ou 'municipio'. Quando informado, prevalece sobre resolucao." - changed
Input schema / properties / qualidade / defaultPrevious value: -"4"New value: +"maxima" - changed
Input schema / properties / qualidade / descriptionPrevious value: -"Qualidade do traçado: 1=mínima, 2=baixa, 3=intermediária, 4=máxima"New value: +"Qualidade do traçado: 'minima', 'intermediaria' ou 'maxima' (padrão). Os números 1–4 do IBGE antigo continuam aceitos e são traduzidos." - changed
Input schema / properties / qualidade / enumPrevious value: -[ - "1", - "2", - "3", - "4" -]New value: +[ + "1", + "2", + "3", + "4", + "minima", + "intermediaria", + "maxima" +] - changed
Input schema / properties / resolucao / descriptionPrevious value: -"Resolução/divisões internas:\n0 = Sem divisões internas\n1 = Macrorregiões (apenas para BR)\n2 = Unidades da Federação\n3 = Mesorregiões\n4 = Microrregiões\n5 = Municípios"New value: +"Divisões internas a desenhar dentro da malha pedida:\n0 = Sem divisões internas (só o contorno)\n1 = Macrorregiões (apenas quando localidade=BR)\n2 = Unidades da Federação (BR ou uma região)\n3 = Mesorregiões\n4 = Microrregiões\n5 = Municípios\nCada nível aceita só as divisões menores que ele: município aceita nenhuma, UF aceita 3, 4 e 5." - changed
Input schema / properties / tipo / enumPrevious value: -[ - "paises", - "regioes", - "estados", - "mesorregioes", - "microrregioes", - "municipios", - "distritos", - "regioes-imediatas", - "regioes-intermediarias" -]New value: +[ + "paises", + "regioes", + "estados", + "mesorregioes", + "microrregioes", + "municipios", + "regioes-imediatas", + "regioes-intermediarias" +] - changed
Output schema / properties / intrarregiao / descriptionPrevious value: -"Código de região usado para filtrar (apenas quando localidade=BR)"New value: +"Divisão interna desenhada dentro da malha (vocabulário da API v3)"
- Changed
ibge_malhas_tema20 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / codigo / descriptionPrevious value: -"Código específico do tema (ex: código do bioma, da região metropolitana)"New value: +"Filtra uma feição do recorte. Só os recortes que têm código próprio aceitam: biomas (cd_bioma, ex. \"1\") e os dois de municípios, costeiro e fronteira (código IBGE de 7 dígitos). Nos demais a chamada é recusada com a lista do que aceita." - removed
Input schema / properties / formatoRemoved value: -{ - "default": "geojson", - "description": "Formato de saída", - "enum": [ - "geojson", - "topojson", - "svg" - ], - "type": "string" -} - added
Input schema / properties / limiteAdded value: +{ + "default": 50, + "description": "Quantas feições trazer (padrão 50, máx. 600). O total do recorte vem sempre, mesmo quando o limite corta a lista.", + "maximum": 600, + "minimum": 1, + "type": "integer" +} - removed
Input schema / properties / qualidadeRemoved value: -{ - "default": "4", - "description": "Qualidade do traçado: 1=mínima, 4=máxima", - "enum": [ - "1", - "2", - "3", - "4" - ], - "type": "string" -} - removed
Input schema / properties / resolucaoRemoved value: -{ - "default": "0", - "description": "0 = Apenas contorno, 5 = Com municípios", - "enum": [ - "0", - "5" - ], - "type": "string" -} - changed
Input schema / properties / tema / descriptionPrevious value: -"Tema da malha:\n- biomas: Biomas brasileiros (Amazônia, Cerrado, etc.)\n- amazonia_legal: Área da Amazônia Legal\n- semiarido: Região do semiárido\n- costeiro: Zona costeira\n- fronteira: Faixa de fronteira\n- metropolitana: Regiões metropolitanas\n- ride: Regiões Integradas de Desenvolvimento\n- listar: Lista temas disponíveis"New value: +"Recorte temático do território:\n- biomas: os seis biomas continentais\n- amazonia_legal: limite da Amazônia Legal\n- semiarido: área do semiárido\n- costeiro: municípios da zona costeira\n- fronteira: municípios da faixa de fronteira\n- metropolitana: regiões metropolitanas\n- ride: Regiões Integradas de Desenvolvimento\n- listar: lista os recortes disponíveis, sem consultar a fonte" - added
Output schema / properties / camadaAdded value: +{ + "description": "Camada WFS do IBGE Geosserviços consultada", + "type": "string" +} - changed
Output schema / properties / codigo / descriptionPrevious value: -"Código específico do tema, quando informado"New value: +"Código usado como filtro, quando informado" - added
Output schema / properties / feicoesAdded value: +{ + "description": "Total de feições do recorte na fonte", + "type": "number" +} - added
Output schema / properties / feicoes_retornadasAdded value: +{ + "description": "Quantas vieram nesta resposta", + "type": "number" +} - removed
Output schema / properties / formatoRemoved value: -{ - "description": "Formato de saída (geojson, topojson, svg)", - "type": "string" -} - added
Output schema / properties / registrosAdded value: +{ + "description": "Atributos de cada feição (sem geometria)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" +} - removed
Output schema / properties / resolucaoRemoved value: -{ - "description": "Resolução da malha (0 = contorno, 5 = com municípios)", - "type": "string" -} - changed
Output schema / properties / tema / descriptionPrevious value: -"Tema da malha solicitada (ou 'listar')"New value: +"Recorte solicitado (ou 'listar')" - changed
Output schema / properties / temas / descriptionPrevious value: -"Lista de temas disponíveis (somente no modo 'listar')"New value: +"Lista de recortes disponíveis (somente no modo 'listar')" - changed
Output schema / properties / temas / items / properties / descricao / descriptionPrevious value: -"Descrição do tema"New value: +"Descrição do recorte" - changed
Output schema / properties / temas / items / properties / nome / descriptionPrevious value: -"Nome do tema"New value: +"Nome do recorte" - changed
Output schema / properties / temas / items / properties / tema / descriptionPrevious value: -"Identificador do tema"New value: +"Identificador do recorte" - added
Output schema / properties / url_geometriaAdded value: +{ + "description": "URL canônica do WFS que devolve a malha COM geometria, em GeoJSON", + "type": "string" +}
- Changed
ibge_municipios1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_nomes1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_noticias1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_paises1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_pesquisas1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_sidra2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / agruparPor / descriptionPrevious value: -"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição"New value: +"Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição. Nome curto ('UF', 'estado', 'cidade', 'região') e rótulo parcial ('Federação') são resolvidos, e a resposta diz em `aviso` por qual coluna agrupou; rótulo que casa com duas colunas é recusado em vez de escolhido"
- Changed
ibge_sidra_metadados1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_sidra_tabelas1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
ibge_vizinhos1 field changed- added
Input schema / additionalPropertiesAdded value: +false
2 tool updates
v4.3.0- Added
fetch - Added
search
22 tool updates
v4.0.0- Changed
ibge_calendario4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_censo4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_cidades4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_cnae4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_comparar6 fields changed- changed
Input schema / properties / indicador / descriptionPrevious value: -"Indicador para comparação:\n- populacao: Estimativa populacional atual\n- populacao_censo: População do Censo 2022\n- pib: PIB per capita\n- area: Área territorial (km²)\n- densidade: Densidade demográfica (hab/km²)\n- alfabetizacao: Taxa de alfabetização\n- domicilios: Número de domicílios\n- listar: Lista indicadores disponíveis"New value: +"Indicador para comparação:\n- populacao: Estimativa populacional atual\n- populacao_censo: População do Censo 2022\n- pib: PIB a preços correntes (Mil Reais)\n- area: Área territorial (km²)\n- densidade: Densidade demográfica (hab/km²)\n- alfabetizacao: Taxa de alfabetização\n- domicilios: Número de domicílios\n- listar: Lista indicadores disponíveis" - changed
Output schema / properties / localidades / items / properties / valor / typePrevious value: -"number"New value: +[ + "number", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_datasaude5 fields changed- changed
Input schema / properties / indicador / descriptionPrevious value: -"Indicador de saúde. Disponíveis:\n- mortalidade_infantil: Taxa de mortalidade infantil\n- esperanca_vida: Esperança de vida ao nascer\n- nascidos_vivos: Nascidos vivos\n- obitos: Óbitos por local de residência\n- obitos_causas: Óbitos por causas (CID-10)\n- fecundidade: Taxa de fecundidade\n- saneamento_agua: Abastecimento de água\n- saneamento_esgoto: Esgotamento sanitário\n- plano_saude: Cobertura de plano de saúde\n- listar: Lista indicadores disponíveis"New value: +"Indicador de saúde. Disponíveis:\n- mortalidade_infantil: Taxa de mortalidade infantil\n- esperanca_vida: Esperança de vida ao nascer\n- nascidos_vivos: Nascidos vivos\n- obitos: Óbitos por local de residência\n- fecundidade: Taxa de fecundidade\n- saneamento_agua: Abastecimento de água\n- saneamento_esgoto: Esgotamento sanitário\n- plano_saude: Cobertura de plano de saúde\n- listar: Lista indicadores disponíveis" - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_estados4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_geocodigo4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_indicadores4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_localidade4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_malhas4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_malhas_tema4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_municipios4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_nomes8 fields changed- removed
Output schema / properties / frequencia / items / properties / sexo / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / frequencia / items / properties / sexo / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / ranking / properties / sexo / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / ranking / properties / sexo / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_noticias4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_paises4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_pesquisas4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Removed
ibge_populacao - Changed
ibge_sidra4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_sidra_metadados4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_sidra_tabelas4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
- Changed
ibge_vizinhos4 fields changed- removed
Output schema / properties / provenance / properties / data_vintage / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / data_vintage / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / provenance / properties / license / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / provenance / properties / license / typeAdded value: +[ + "string", + "null" +]
22 tool updates
v3.3.0- Changed
ibge_calendario6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "eventos", - "total" -]New value: +[ + "eventos", + "total", + "provenance", + "attribution" +]
- Changed
ibge_censo11 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / agruparPorAdded value: +{ + "description": "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição", + "type": "string" +} - added
Input schema / properties / estatisticasAdded value: +{ + "default": false, + "description": "Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato", + "type": "boolean" +} - added
Input schema / properties / topNAdded value: +{ + "default": 10, + "description": "Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / estatisticasAdded value: +{ + "additionalProperties": false, + "description": "Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)", + "properties": { + "agrupadoPor": { + "description": "Rótulo da coluna de agrupamento (com agruparPor)", + "type": "string" + }, + "aviso": { + "description": "Avisos sobre agrupamento automático, mistura de unidades ou truncamento", + "type": "string" + }, + "bottom": { + "description": "Menores valores (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "colunaValor": { + "description": "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)", + "type": "string" + }, + "distribuicao": { + "additionalProperties": false, + "description": "Distribuição do conjunto inteiro (sem agruparPor)", + "properties": { + "desvioPadrao": { + "type": "number" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis" + ], + "type": "object" + }, + "grupos": { + "description": "Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)", + "items": { + "additionalProperties": false, + "properties": { + "desvioPadrao": { + "type": "number" + }, + "grupo": { + "type": "string" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis", + "grupo" + ], + "type": "object" + }, + "type": "array" + }, + "registrosConsiderados": { + "description": "Registros com valor numérico (contam no n)", + "type": "number" + }, + "registrosSemValor": { + "description": "Registros excluídos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico", + "type": "number" + }, + "top": { + "description": "Maiores valores, com as colunas de identificação do registro (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "totalGrupos": { + "description": "Total de grupos existentes antes do teto (com agruparPor)", + "type": "number" + } + }, + "required": [ + "colunaValor", + "registrosConsiderados", + "registrosSemValor" + ], + "type": "object" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - added
Output schema / properties / registros / items / propertyNamesAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "provenance", + "attribution" +]
- Changed
ibge_cidades6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tipo", - "indicadores" -]New value: +[ + "tipo", + "indicadores", + "provenance", + "attribution" +]
- Changed
ibge_cnae6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "modo" -]New value: +[ + "modo", + "provenance", + "attribution" +]
- Changed
ibge_comparar6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "localidades" -]New value: +[ + "localidades", + "provenance", + "attribution" +]
- Changed
ibge_datasaude11 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / agruparPorAdded value: +{ + "description": "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição", + "type": "string" +} - added
Input schema / properties / estatisticasAdded value: +{ + "default": false, + "description": "Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato", + "type": "boolean" +} - added
Input schema / properties / topNAdded value: +{ + "default": 10, + "description": "Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / estatisticasAdded value: +{ + "additionalProperties": false, + "description": "Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)", + "properties": { + "agrupadoPor": { + "description": "Rótulo da coluna de agrupamento (com agruparPor)", + "type": "string" + }, + "aviso": { + "description": "Avisos sobre agrupamento automático, mistura de unidades ou truncamento", + "type": "string" + }, + "bottom": { + "description": "Menores valores (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "colunaValor": { + "description": "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)", + "type": "string" + }, + "distribuicao": { + "additionalProperties": false, + "description": "Distribuição do conjunto inteiro (sem agruparPor)", + "properties": { + "desvioPadrao": { + "type": "number" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis" + ], + "type": "object" + }, + "grupos": { + "description": "Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)", + "items": { + "additionalProperties": false, + "properties": { + "desvioPadrao": { + "type": "number" + }, + "grupo": { + "type": "string" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis", + "grupo" + ], + "type": "object" + }, + "type": "array" + }, + "registrosConsiderados": { + "description": "Registros com valor numérico (contam no n)", + "type": "number" + }, + "registrosSemValor": { + "description": "Registros excluídos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico", + "type": "number" + }, + "top": { + "description": "Maiores valores, com as colunas de identificação do registro (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "totalGrupos": { + "description": "Total de grupos existentes antes do teto (com agruparPor)", + "type": "number" + } + }, + "required": [ + "colunaValor", + "registrosConsiderados", + "registrosSemValor" + ], + "type": "object" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - added
Output schema / properties / registros / items / propertyNamesAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "provenance", + "attribution" +]
- Changed
ibge_estados6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "estados", - "total" -]New value: +[ + "estados", + "total", + "provenance", + "attribution" +]
- Changed
ibge_geocodigo6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tipo" -]New value: +[ + "tipo", + "provenance", + "attribution" +]
- Changed
ibge_indicadores11 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / agruparPorAdded value: +{ + "description": "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição", + "type": "string" +} - added
Input schema / properties / estatisticasAdded value: +{ + "default": false, + "description": "Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato", + "type": "boolean" +} - added
Input schema / properties / topNAdded value: +{ + "default": 10, + "description": "Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / estatisticasAdded value: +{ + "additionalProperties": false, + "description": "Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)", + "properties": { + "agrupadoPor": { + "description": "Rótulo da coluna de agrupamento (com agruparPor)", + "type": "string" + }, + "aviso": { + "description": "Avisos sobre agrupamento automático, mistura de unidades ou truncamento", + "type": "string" + }, + "bottom": { + "description": "Menores valores (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "colunaValor": { + "description": "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)", + "type": "string" + }, + "distribuicao": { + "additionalProperties": false, + "description": "Distribuição do conjunto inteiro (sem agruparPor)", + "properties": { + "desvioPadrao": { + "type": "number" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis" + ], + "type": "object" + }, + "grupos": { + "description": "Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)", + "items": { + "additionalProperties": false, + "properties": { + "desvioPadrao": { + "type": "number" + }, + "grupo": { + "type": "string" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis", + "grupo" + ], + "type": "object" + }, + "type": "array" + }, + "registrosConsiderados": { + "description": "Registros com valor numérico (contam no n)", + "type": "number" + }, + "registrosSemValor": { + "description": "Registros excluídos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico", + "type": "number" + }, + "top": { + "description": "Maiores valores, com as colunas de identificação do registro (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "totalGrupos": { + "description": "Total de grupos existentes antes do teto (com agruparPor)", + "type": "number" + } + }, + "required": [ + "colunaValor", + "registrosConsiderados", + "registrosSemValor" + ], + "type": "object" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - added
Output schema / properties / registros / items / propertyNamesAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "totalRegistros", - "colunas", - "registros" -]New value: +[ + "totalRegistros", + "colunas", + "registros", + "provenance", + "attribution" +]
- Changed
ibge_localidade6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tipo", - "id", - "nome" -]New value: +[ + "tipo", + "id", + "nome", + "provenance", + "attribution" +]
- Changed
ibge_malhas6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "localidade", - "formato" -]New value: +[ + "localidade", + "formato", + "provenance", + "attribution" +]
- Changed
ibge_malhas_tema6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tema" -]New value: +[ + "tema", + "provenance", + "attribution" +]
- Changed
ibge_municipios6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "municipios", - "total" -]New value: +[ + "municipios", + "total", + "provenance", + "attribution" +]
- Changed
ibge_nomes10 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / frequencia / items / properties / sexo / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / frequencia / items / properties / sexo / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - added
Output schema / properties / ranking / properties / sexo / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / ranking / properties / sexo / typeRemoved value: -[ - "string", - "null" -] - changed
Output schema / requiredPrevious value: -[ - "tipo" -]New value: +[ + "tipo", + "provenance", + "attribution" +]
- Changed
ibge_noticias6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "noticias", - "total", - "pagina", - "totalPaginas" -]New value: +[ + "noticias", + "total", + "pagina", + "totalPaginas", + "provenance", + "attribution" +]
- Changed
ibge_paises6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tipo" -]New value: +[ + "tipo", + "provenance", + "attribution" +]
- Changed
ibge_pesquisas6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "modo" -]New value: +[ + "modo", + "provenance", + "attribution" +]
- Changed
ibge_populacao6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "localidade", - "horario", - "populacao", - "periodoMedio" -]New value: +[ + "localidade", + "horario", + "populacao", + "periodoMedio", + "provenance", + "attribution" +]
- Changed
ibge_sidra12 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / agruparPorAdded value: +{ + "description": "Com estatisticas=true, agrupa pela coluna informada (rótulo, ex: 'Unidade da Federação', 'Ano') e ranqueia os grupos por soma decrescente (grupos[0] = maior total), cada grupo com sua mini-distribuição", + "type": "string" +} - added
Input schema / properties / estatisticasAdded value: +{ + "default": false, + "description": "Computa estatísticas (mínimo/máximo/média/mediana/desvio-padrão/percentis) sobre TODOS os registros da consulta, antes da paginação, + ranking top/bottom. Use para 'qual o maior/menor', 'média', 'mediana', 'distribuição', 'ranking'. Quando true, ignora pagina, campos e formato", + "type": "boolean" +} - added
Input schema / properties / pagina / maximumAdded value: +9007199254740991 - added
Input schema / properties / topNAdded value: +{ + "default": 10, + "description": "Tamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / estatisticasAdded value: +{ + "additionalProperties": false, + "description": "Bloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)", + "properties": { + "agrupadoPor": { + "description": "Rótulo da coluna de agrupamento (com agruparPor)", + "type": "string" + }, + "aviso": { + "description": "Avisos sobre agrupamento automático, mistura de unidades ou truncamento", + "type": "string" + }, + "bottom": { + "description": "Menores valores (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "colunaValor": { + "description": "Rótulo da coluna numérica analisada (sempre 'Valor' no SIDRA)", + "type": "string" + }, + "distribuicao": { + "additionalProperties": false, + "description": "Distribuição do conjunto inteiro (sem agruparPor)", + "properties": { + "desvioPadrao": { + "type": "number" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis" + ], + "type": "object" + }, + "grupos": { + "description": "Grupos ordenados por soma decrescente, cada um com sua mini-distribuição (com agruparPor)", + "items": { + "additionalProperties": false, + "properties": { + "desvioPadrao": { + "type": "number" + }, + "grupo": { + "type": "string" + }, + "maximo": { + "type": "number" + }, + "media": { + "type": "number" + }, + "mediana": { + "type": "number" + }, + "minimo": { + "type": "number" + }, + "n": { + "description": "Registros com valor numérico considerados", + "type": "number" + }, + "percentis": { + "items": { + "additionalProperties": false, + "properties": { + "percentil": { + "description": "Percentil (50 = mediana)", + "type": "number" + }, + "rotulo": { + "description": "Enunciado por extenso, pronto para citar ao leitor", + "type": "string" + }, + "valor": { + "type": "number" + } + }, + "required": [ + "percentil", + "valor", + "rotulo" + ], + "type": "object" + }, + "type": "array" + }, + "soma": { + "type": "number" + } + }, + "required": [ + "n", + "soma", + "minimo", + "maximo", + "media", + "mediana", + "desvioPadrao", + "percentis", + "grupo" + ], + "type": "object" + }, + "type": "array" + }, + "registrosConsiderados": { + "description": "Registros com valor numérico (contam no n)", + "type": "number" + }, + "registrosSemValor": { + "description": "Registros excluídos por marcador de ausência SIDRA ('-', '..', '...', 'X') ou valor não numérico", + "type": "number" + }, + "top": { + "description": "Maiores valores, com as colunas de identificação do registro (sem agruparPor)", + "items": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "totalGrupos": { + "description": "Total de grupos existentes antes do teto (com agruparPor)", + "type": "number" + } + }, + "required": [ + "colunaValor", + "registrosConsiderados", + "registrosSemValor" + ], + "type": "object" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - added
Output schema / properties / registros / items / propertyNamesAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "tabela", - "nome", - "totalRegistros", - "colunas", - "registros", - "paginacao" -]New value: +[ + "tabela", + "nome", + "totalRegistros", + "colunas", + "registros", + "paginacao", + "provenance", + "attribution" +]
- Changed
ibge_sidra_metadados6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "codigo", - "nome" -]New value: +[ + "codigo", + "nome", + "provenance", + "attribution" +]
- Changed
ibge_sidra_tabelas6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "tabelas", - "total" -]New value: +[ + "tabelas", + "total", + "provenance", + "attribution" +]
- Changed
ibge_vizinhos6 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false - changed
Output schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - added
Output schema / properties / attributionAdded value: +{ + "description": "URLs canônicas das fontes desta resposta (lista de atribuição)", + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / provenanceAdded value: +{ + "additionalProperties": false, + "description": "Bloco de proveniência (contrato v1.0): fonte, URL, período, extração e licença", + "properties": { + "citation": { + "description": "Citação pronta para uso", + "type": "string" + }, + "data_vintage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Período de referência do dado segundo a fonte; null se a fonte não expõe" + }, + "license": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Regime legal do dado" + }, + "retrieved_at": { + "description": "Instante real da extração no upstream (ISO-8601, horário de Brasília)", + "type": "string" + }, + "source": { + "description": "Fonte oficial do dado (API do IBGE consultada)", + "type": "string" + }, + "source_url": { + "description": "URL canônica que reproduz a consulta", + "type": "string" + } + }, + "required": [ + "source", + "source_url", + "data_vintage", + "retrieved_at", + "citation", + "license" + ], + "type": "object" +} - changed
Output schema / requiredPrevious value: -[ - "municipio", - "vizinhos", - "total" -]New value: +[ + "municipio", + "vizinhos", + "total", + "provenance", + "attribution" +]
24 tool updates
v3.0.0- Removed
bcb - Removed
datasaude - Changed
ibge_calendario3 fields changed- changed
Input schema / properties / ate / descriptionPrevious value: -"Data final no formato MM-DD-AAAA (ex: '12-31-2024')"New value: +"Data final no formato DD/MM/AAAA (ex: '31/12/2024')" - changed
Input schema / properties / de / descriptionPrevious value: -"Data inicial no formato MM-DD-AAAA (ex: '01-01-2024')"New value: +"Data inicial no formato DD/MM/AAAA (ex: '01/01/2024')" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "eventos": { + "description": "Lista de eventos do calendário (divulgações/coletas)", + "items": { + "additionalProperties": false, + "properties": { + "dataDivulgacao": { + "description": "Data/hora de divulgação no formato 'DD/MM/AAAA HH:MM:SS'", + "type": "string" + }, + "id": { + "description": "Identificador do evento no calendário", + "type": "number" + }, + "link": { + "description": "Link para mais informações, quando disponível", + "type": "string" + }, + "produto": { + "description": "Nome do produto/pesquisa associado", + "type": "string" + }, + "tipo": { + "description": "Descrição do tipo do evento", + "type": "string" + }, + "tipoId": { + "description": "ID do tipo (1 = divulgação, 2 = coleta)", + "type": "number" + }, + "titulo": { + "description": "Título do evento", + "type": "string" + } + }, + "required": [ + "id", + "titulo", + "produto", + "dataDivulgacao", + "tipoId", + "tipo" + ], + "type": "object" + }, + "type": "array" + }, + "pagina": { + "description": "Página atual retornada", + "type": "number" + }, + "produto": { + "description": "Filtro de produto aplicado, quando informado", + "type": "string" + }, + "total": { + "description": "Total de eventos disponíveis para os critérios", + "type": "number" + }, + "totalPaginas": { + "description": "Total de páginas disponíveis", + "type": "number" + } + }, + "required": [ + "eventos", + "total" + ], + "type": "object" +}
- Changed
ibge_censo3 fields changed- added
Input schema / properties / camposAdded value: +{ + "description": "Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.", + "type": "string" +} - changed
Input schema / properties / nivel_territorial / descriptionPrevious value: -"Nível territorial: 1=Brasil, 2=Região, 3=UF, 6=Município"New value: +"Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "ano": { + "description": "Ano(s) de referência", + "type": "string" + }, + "colunas": { + "description": "Rótulos das colunas, na ordem", + "items": { + "type": "string" + }, + "type": "array" + }, + "descricao": { + "description": "Descrição da tabela", + "type": "string" + }, + "registros": { + "description": "Registros: cada um mapeia rótulo da coluna -> valor", + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "tabela": { + "description": "Tabela SIDRA de origem", + "type": "string" + }, + "tema": { + "description": "Tema do censo consultado", + "type": "string" + }, + "totalRegistros": { + "description": "Total de registros de dados", + "type": "number" + } + }, + "required": [ + "totalRegistros", + "colunas", + "registros" + ], + "type": "object" +}
- Changed
ibge_cidades1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "indicadores": { + "description": "Indicadores retornados (vazio para respostas de catálogo)", + "items": { + "additionalProperties": false, + "properties": { + "ano": { + "type": "string" + }, + "nome": { + "type": "string" + }, + "valor": { + "type": "string" + } + }, + "required": [ + "nome", + "valor" + ], + "type": "object" + }, + "type": "array" + }, + "municipio": { + "description": "Código IBGE do município", + "type": "string" + }, + "nome": { + "description": "Nome do município/indicador", + "type": "string" + }, + "tipo": { + "description": "Tipo de consulta (panorama, indicador, pesquisas, historico)", + "type": "string" + } + }, + "required": [ + "tipo", + "indicadores" + ], + "type": "object" +}
- Changed
ibge_cnae1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "additionalProperties": false, + "description": "Presente no modo de busca por termo", + "properties": { + "nivel": { + "description": "Nível hierárquico pesquisado (ex: subclasses, classes)", + "type": "string" + }, + "resultados": { + "description": "Atividades encontradas para o termo", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição da atividade", + "type": "string" + }, + "id": { + "description": "Código CNAE da atividade", + "type": "string" + } + }, + "required": [ + "id", + "descricao" + ], + "type": "object" + }, + "type": "array" + }, + "termo": { + "description": "Termo pesquisado", + "type": "string" + }, + "total": { + "description": "Quantidade de resultados retornados", + "type": "number" + } + }, + "required": [ + "termo", + "nivel", + "total", + "resultados" + ], + "type": "object" + }, + "codigo": { + "additionalProperties": false, + "description": "Presente no modo de consulta por código", + "properties": { + "descricao": { + "description": "Descrição do código", + "type": "string" + }, + "hierarquia": { + "description": "Cadeia hierárquica do código (do mais geral ao mais específico)", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição do nível", + "type": "string" + }, + "id": { + "description": "Código do nível", + "type": "string" + }, + "nivel": { + "description": "Nível hierárquico (Seção, Divisão, Grupo, Classe, Subclasse)", + "type": "string" + } + }, + "required": [ + "nivel", + "id", + "descricao" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "Código CNAE consultado", + "type": "string" + }, + "nivel": { + "description": "Nível do código (secao, divisao, grupo, classe ou subclasse)", + "type": "string" + }, + "observacoes": { + "description": "Observações/notas explicativas do código", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "id", + "descricao", + "nivel" + ], + "type": "object" + }, + "lista": { + "additionalProperties": false, + "description": "Presente no modo de listagem por nível", + "properties": { + "exibidos": { + "description": "Quantidade de registros exibidos (limitada por 'limite')", + "type": "number" + }, + "nivel": { + "description": "Nível hierárquico listado", + "type": "string" + }, + "registros": { + "description": "Registros do nível listado", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição do registro", + "type": "string" + }, + "id": { + "description": "Código CNAE do registro", + "type": "string" + } + }, + "required": [ + "id", + "descricao" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "description": "Total de registros existentes no nível", + "type": "number" + } + }, + "required": [ + "nivel", + "total", + "exibidos", + "registros" + ], + "type": "object" + }, + "modo": { + "description": "Modo de resposta que gerou os dados", + "enum": [ + "busca", + "codigo", + "lista", + "estrutura" + ], + "type": "string" + } + }, + "required": [ + "modo" + ], + "type": "object" +}
- Changed
ibge_comparar1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "estatisticas": { + "additionalProperties": false, + "description": "Estatísticas agregadas (quando há ao menos 2 valores positivos)", + "properties": { + "maior": { + "type": "number" + }, + "media": { + "type": "number" + }, + "menor": { + "type": "number" + }, + "variacaoPct": { + "type": "number" + } + }, + "required": [ + "maior", + "menor", + "media", + "variacaoPct" + ], + "type": "object" + }, + "formato": { + "description": "Formato solicitado", + "type": "string" + }, + "indicador": { + "description": "Indicador comparado", + "type": "string" + }, + "localidades": { + "description": "Localidades comparadas, com o valor do indicador", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "type": "string" + }, + "nome": { + "type": "string" + }, + "valor": { + "type": "number" + }, + "valorTexto": { + "type": "string" + } + }, + "required": [ + "codigo", + "nome", + "valor", + "valorTexto" + ], + "type": "object" + }, + "type": "array" + }, + "nome": { + "description": "Nome do indicador", + "type": "string" + }, + "tabela": { + "description": "Tabela SIDRA de origem", + "type": "string" + } + }, + "required": [ + "localidades" + ], + "type": "object" +}
- Added
ibge_datasaude - Changed
ibge_estados1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "estados": { + "description": "Lista de estados", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código IBGE do estado", + "type": "number" + }, + "nome": { + "description": "Nome do estado", + "type": "string" + }, + "regiao": { + "description": "Nome da região", + "type": "string" + }, + "sigla": { + "description": "Sigla da UF", + "type": "string" + } + }, + "required": [ + "id", + "sigla", + "nome", + "regiao" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "description": "Total de estados retornados", + "type": "number" + } + }, + "required": [ + "estados", + "total" + ], + "type": "object" +}
- Changed
ibge_geocodigo2 fields changed- changed
Input schema / properties / uf / descriptionPrevious value: -"Sigla da UF para restringir a busca por nome de município"New value: +"Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) para restringir a busca por nome de município" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código IBGE da localidade resolvida (ausente em resultados do tipo lista)", + "type": "number" + }, + "codigoSidra": { + "description": "Código SIDRA de 6 dígitos do município (apenas tipo municipio)", + "type": "string" + }, + "estados": { + "description": "Estados pertencentes à região (apenas tipo regiao)", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código IBGE da UF", + "type": "number" + }, + "nome": { + "description": "Nome da UF", + "type": "string" + }, + "sigla": { + "description": "Sigla da UF", + "type": "string" + } + }, + "required": [ + "codigo", + "sigla", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "hierarquia": { + "description": "Hierarquia geográfica completa, da região ao município/distrito (tipo municipio/distrito)", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código IBGE do nível", + "type": "number" + }, + "nivel": { + "description": "Nome do nível territorial (Região, UF, Município, etc.)", + "type": "string" + }, + "nome": { + "description": "Nome da localidade neste nível", + "type": "string" + } + }, + "required": [ + "nivel", + "codigo", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "matches": { + "description": "Municípios encontrados na busca por nome (apenas tipo lista)", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código IBGE (7 dígitos) do município", + "type": "number" + }, + "nome": { + "description": "Nome do município", + "type": "string" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "nome": { + "description": "Nome da localidade resolvida", + "type": "string" + }, + "regiao": { + "description": "Nome da região à qual a UF pertence (apenas tipo uf)", + "type": "string" + }, + "regiaoCodigo": { + "description": "Código IBGE da região à qual a UF pertence (apenas tipo uf)", + "type": "number" + }, + "sigla": { + "description": "Sigla da região ou UF, quando aplicável", + "type": "string" + }, + "tipo": { + "description": "Tipo do resultado: localidade decodificada (regiao/uf/municipio/distrito) ou lista de municípios encontrados (lista)", + "enum": [ + "regiao", + "uf", + "municipio", + "distrito", + "lista" + ], + "type": "string" + }, + "total": { + "description": "Quantidade de municípios encontrados na busca por nome (apenas tipo lista)", + "type": "number" + } + }, + "required": [ + "tipo" + ], + "type": "object" +}
- Changed
ibge_indicadores3 fields changed- added
Input schema / properties / camposAdded value: +{ + "description": "Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.", + "type": "string" +} - changed
Input schema / properties / nivel_territorial / descriptionPrevious value: -"Nível territorial: 1=Brasil, 2=Região, 3=UF"New value: +"Nível territorial (código N): 1=Brasil, 2=Região, 3=UF" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "colunas": { + "description": "Rótulos das colunas, na ordem", + "items": { + "type": "string" + }, + "type": "array" + }, + "indicador": { + "description": "Chave do indicador consultado", + "type": "string" + }, + "nome": { + "description": "Nome do indicador", + "type": "string" + }, + "registros": { + "description": "Registros: cada um mapeia rótulo da coluna -> valor", + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "tabela": { + "description": "Tabela SIDRA de origem", + "type": "string" + }, + "totalRegistros": { + "description": "Total de registros de dados", + "type": "number" + } + }, + "required": [ + "totalRegistros", + "colunas", + "registros" + ], + "type": "object" +}
- Changed
ibge_localidade1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "estado": { + "additionalProperties": false, + "description": "Estado da localidade (município ou distrito)", + "properties": { + "id": { + "description": "Código IBGE do estado", + "type": "number" + }, + "nome": { + "description": "Nome do estado", + "type": "string" + }, + "sigla": { + "description": "Sigla da UF", + "type": "string" + } + }, + "required": [ + "id", + "sigla", + "nome" + ], + "type": "object" + }, + "id": { + "description": "Código IBGE da localidade", + "type": "number" + }, + "mesorregiao": { + "additionalProperties": false, + "description": "Mesorregião do município", + "properties": { + "id": { + "description": "Código IBGE da mesorregião", + "type": "number" + }, + "nome": { + "description": "Nome da mesorregião", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "microrregiao": { + "additionalProperties": false, + "description": "Microrregião do município", + "properties": { + "id": { + "description": "Código IBGE da microrregião", + "type": "number" + }, + "nome": { + "description": "Nome da microrregião", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "municipio": { + "additionalProperties": false, + "description": "Município ao qual o distrito pertence (apenas para distritos)", + "properties": { + "id": { + "description": "Código IBGE do município", + "type": "number" + }, + "nome": { + "description": "Nome do município", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "nome": { + "description": "Nome da localidade", + "type": "string" + }, + "regiao": { + "additionalProperties": false, + "description": "Região do estado (apenas para estados)", + "properties": { + "id": { + "description": "Código IBGE da região", + "type": "number" + }, + "nome": { + "description": "Nome da região", + "type": "string" + }, + "sigla": { + "description": "Sigla da região", + "type": "string" + } + }, + "required": [ + "id", + "sigla", + "nome" + ], + "type": "object" + }, + "regiaoImediata": { + "additionalProperties": false, + "description": "Região imediata do município", + "properties": { + "id": { + "description": "Código IBGE da região imediata", + "type": "number" + }, + "nome": { + "description": "Nome da região imediata", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "regiaoIntermediaria": { + "additionalProperties": false, + "description": "Região intermediária do município", + "properties": { + "id": { + "description": "Código IBGE da região intermediária", + "type": "number" + }, + "nome": { + "description": "Nome da região intermediária", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "sigla": { + "description": "Sigla da UF (apenas para estados)", + "type": "string" + }, + "tipo": { + "description": "Tipo da localidade retornada", + "enum": [ + "estado", + "municipio", + "distrito" + ], + "type": "string" + } + }, + "required": [ + "tipo", + "id", + "nome" + ], + "type": "object" +}
- Changed
ibge_malhas1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "formato": { + "description": "Formato de saída solicitado (geojson, topojson ou svg)", + "type": "string" + }, + "intrarregiao": { + "description": "Código de região usado para filtrar (apenas quando localidade=BR)", + "type": "string" + }, + "localidade": { + "description": "Código IBGE ou sigla da localidade consultada", + "type": "string" + }, + "qualidade": { + "description": "Qualidade do traçado solicitada", + "type": "string" + }, + "resolucao": { + "description": "Resolução/divisões internas solicitada", + "type": "string" + }, + "tipo": { + "description": "Tipo de divisão territorial, quando informado", + "type": "string" + }, + "url": { + "description": "URL para download da malha completa", + "type": "string" + } + }, + "required": [ + "localidade", + "formato" + ], + "type": "object" +}
- Changed
ibge_malhas_tema1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código específico do tema, quando informado", + "type": "string" + }, + "formato": { + "description": "Formato de saída (geojson, topojson, svg)", + "type": "string" + }, + "resolucao": { + "description": "Resolução da malha (0 = contorno, 5 = com municípios)", + "type": "string" + }, + "tema": { + "description": "Tema da malha solicitada (ou 'listar')", + "type": "string" + }, + "temas": { + "description": "Lista de temas disponíveis (somente no modo 'listar')", + "items": { + "additionalProperties": false, + "properties": { + "descricao": { + "description": "Descrição do tema", + "type": "string" + }, + "nome": { + "description": "Nome do tema", + "type": "string" + }, + "tema": { + "description": "Identificador do tema", + "type": "string" + } + }, + "required": [ + "tema", + "nome", + "descricao" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "tema" + ], + "type": "object" +}
- Changed
ibge_municipios4 fields changed- changed
Input schema / properties / uf / descriptionPrevious value: -"Sigla do estado (ex: SP, RJ, MG). Se não informado, retorna todos os municípios do Brasil."New value: +"Estado por sigla (SP), nome (São Paulo) ou código IBGE (35). Se não informado, retorna todos os municípios do Brasil." - removed
Input schema / properties / uf / maxLengthRemoved value: -2 - removed
Input schema / properties / uf / minLengthRemoved value: -2 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "description": "Termo de busca aplicado ao nome do município", + "type": "string" + }, + "municipios": { + "description": "Lista de municípios retornados (após filtro e limite)", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código IBGE do município", + "type": "number" + }, + "nome": { + "description": "Nome do município", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "description": "Total de municípios encontrados antes do limite", + "type": "number" + }, + "uf": { + "description": "UF informada no filtro (como recebida na entrada)", + "type": "string" + } + }, + "required": [ + "municipios", + "total" + ], + "type": "object" +}
- Changed
ibge_nomes1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "frequencia": { + "description": "Resultados de frequência (presente quando tipo='frequencia')", + "items": { + "additionalProperties": false, + "properties": { + "localidade": { + "description": "Código IBGE da localidade (ou BR para Brasil)", + "type": "string" + }, + "nome": { + "description": "Nome consultado", + "type": "string" + }, + "periodos": { + "description": "Frequência do nome por período", + "items": { + "additionalProperties": false, + "properties": { + "frequencia": { + "description": "Frequência de registros do nome no período", + "type": "number" + }, + "periodo": { + "description": "Período/década (ex: '1930[', '1990,2000[')", + "type": "string" + } + }, + "required": [ + "periodo", + "frequencia" + ], + "type": "object" + }, + "type": "array" + }, + "sexo": { + "description": "Sexo do nome: M, F ou nulo", + "type": [ + "string", + "null" + ] + }, + "total": { + "description": "Soma das frequências de todos os períodos", + "type": "number" + } + }, + "required": [ + "nome", + "localidade", + "periodos", + "total" + ], + "type": "object" + }, + "type": "array" + }, + "ranking": { + "additionalProperties": false, + "description": "Resultado do ranking (presente quando tipo='ranking')", + "properties": { + "decada": { + "description": "Década do ranking, quando informada", + "type": "number" + }, + "itens": { + "description": "Itens do ranking, limitados pelo parâmetro 'limite'", + "items": { + "additionalProperties": false, + "properties": { + "frequencia": { + "description": "Frequência de registros do nome", + "type": "number" + }, + "nome": { + "description": "Nome", + "type": "string" + }, + "ranking": { + "description": "Posição no ranking", + "type": "number" + } + }, + "required": [ + "ranking", + "nome", + "frequencia" + ], + "type": "object" + }, + "type": "array" + }, + "localidade": { + "description": "Código IBGE da localidade (ou BR para Brasil)", + "type": "string" + }, + "sexo": { + "description": "Sexo do ranking: M, F ou nulo", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "localidade", + "itens" + ], + "type": "object" + }, + "tipo": { + "description": "Tipo da consulta realizada", + "enum": [ + "frequencia", + "ranking" + ], + "type": "string" + } + }, + "required": [ + "tipo" + ], + "type": "object" +}
- Changed
ibge_noticias3 fields changed- changed
Input schema / properties / ate / descriptionPrevious value: -"Data final no formato MM-DD-AAAA (ex: 12-31-2024)"New value: +"Data final no formato DD/MM/AAAA (ex: 31/12/2024)" - changed
Input schema / properties / de / descriptionPrevious value: -"Data inicial no formato MM-DD-AAAA (ex: 01-01-2024)"New value: +"Data inicial no formato DD/MM/AAAA (ex: 01/01/2024)" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "description": "Termo de busca aplicado, se houver", + "type": "string" + }, + "noticias": { + "description": "Lista de notícias retornadas", + "items": { + "additionalProperties": false, + "properties": { + "dataPublicacao": { + "description": "Data de publicação (formato original da API)", + "type": "string" + }, + "destaque": { + "description": "Indica se a publicação está em destaque", + "type": "boolean" + }, + "editorias": { + "description": "Editoria(s) associada(s) à publicação", + "type": "string" + }, + "introducao": { + "description": "Introdução/resumo da publicação (texto limpo)", + "type": "string" + }, + "link": { + "description": "URL para a publicação completa", + "type": "string" + }, + "produtos": { + "description": "Produtos do IBGE relacionados à publicação", + "type": "string" + }, + "tipo": { + "description": "Tipo de publicação (ex: 'Release' ou 'Notícia')", + "type": "string" + }, + "titulo": { + "description": "Título da notícia ou release", + "type": "string" + } + }, + "required": [ + "titulo", + "tipo", + "dataPublicacao", + "link" + ], + "type": "object" + }, + "type": "array" + }, + "pagina": { + "description": "Página atual", + "type": "number" + }, + "total": { + "description": "Total de notícias encontradas na consulta", + "type": "number" + }, + "totalPaginas": { + "description": "Número total de páginas", + "type": "number" + } + }, + "required": [ + "noticias", + "total", + "pagina", + "totalPaginas" + ], + "type": "object" +}
- Changed
ibge_paises1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "description": "Termo de busca aplicado, se houver", + "type": "string" + }, + "indicadores": { + "description": "Indicadores disponíveis para consulta de países (modo indicadores)", + "items": { + "additionalProperties": false, + "properties": { + "alias": { + "description": "Apelido amigável do indicador", + "type": "string" + }, + "id": { + "description": "ID do indicador na API do IBGE", + "type": "number" + }, + "nome": { + "description": "Nome do indicador", + "type": "string" + } + }, + "required": [ + "id", + "nome", + "alias" + ], + "type": "object" + }, + "type": "array" + }, + "pais": { + "additionalProperties": false, + "description": "Detalhes de um país específico (modo detalhes)", + "properties": { + "areaTotalKm2": { + "description": "Área territorial total em km²", + "type": "number" + }, + "historico": { + "description": "Texto histórico sobre o país", + "type": "string" + }, + "indicadores": { + "description": "Indicadores principais com o valor mais recente disponível", + "items": { + "additionalProperties": false, + "properties": { + "ano": { + "description": "Ano de referência do valor", + "type": "string" + }, + "indicador": { + "description": "Nome do indicador", + "type": "string" + }, + "valor": { + "description": "Valor mais recente do indicador", + "type": "string" + } + }, + "required": [ + "indicador", + "valor", + "ano" + ], + "type": "object" + }, + "type": "array" + }, + "isoAlpha2": { + "description": "Código ISO-ALPHA-2", + "type": "string" + }, + "isoAlpha3": { + "description": "Código ISO-ALPHA-3", + "type": "string" + }, + "linguas": { + "description": "Línguas faladas no país", + "items": { + "type": "string" + }, + "type": "array" + }, + "m49": { + "description": "Código M49 do país", + "type": "number" + }, + "moedas": { + "description": "Unidades monetárias do país", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código da unidade monetária", + "type": "string" + }, + "nome": { + "description": "Nome da unidade monetária", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "nome": { + "description": "Nome do país", + "type": "string" + }, + "regiao": { + "description": "Nome da região/continente", + "type": "string" + }, + "regiaoIntermediaria": { + "description": "Nome da região intermediária", + "type": "string" + }, + "subRegiao": { + "description": "Nome da sub-região", + "type": "string" + } + }, + "required": [ + "nome", + "m49", + "isoAlpha2", + "isoAlpha3" + ], + "type": "object" + }, + "paises": { + "description": "Lista de países (modos listar/buscar). Limitada aos 50 primeiros na exibição", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código ISO-ALPHA-2 do país (ou '-' se ausente)", + "type": "string" + }, + "nome": { + "description": "Nome do país", + "type": "string" + }, + "regiao": { + "description": "Nome da região/continente (ou '-' se ausente)", + "type": "string" + }, + "subRegiao": { + "description": "Nome da sub-região (ou '-' se ausente)", + "type": "string" + } + }, + "required": [ + "codigo", + "nome", + "regiao", + "subRegiao" + ], + "type": "object" + }, + "type": "array" + }, + "regiao": { + "description": "Filtro de região/continente aplicado, se houver", + "type": "string" + }, + "tipo": { + "description": "Modo de consulta que originou este resultado", + "enum": [ + "listar", + "buscar", + "detalhes", + "indicadores" + ], + "type": "string" + }, + "total": { + "description": "Total de países encontrados (modos listar/buscar)", + "type": "number" + } + }, + "required": [ + "tipo" + ], + "type": "object" +}
- Changed
ibge_pesquisas1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "description": "Termo de busca aplicado, se houver (modo lista)", + "type": "string" + }, + "modo": { + "description": "Modo de consulta que originou este resultado: lista de pesquisas ou detalhes de uma", + "enum": [ + "lista", + "detalhes" + ], + "type": "string" + }, + "pesquisa": { + "additionalProperties": false, + "description": "Detalhes de uma pesquisa específica (modo detalhes)", + "properties": { + "id": { + "description": "Código da pesquisa", + "type": "string" + }, + "nome": { + "description": "Nome da pesquisa", + "type": "string" + }, + "tabelas": { + "description": "Tabelas disponíveis na pesquisa", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código da tabela (agregado)", + "type": "string" + }, + "nome": { + "description": "Nome da tabela", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "totalTabelas": { + "description": "Quantidade de tabelas da pesquisa", + "type": "number" + } + }, + "required": [ + "id", + "nome", + "totalTabelas", + "tabelas" + ], + "type": "object" + }, + "pesquisas": { + "description": "Lista de pesquisas (modo lista)", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código da pesquisa", + "type": "string" + }, + "nome": { + "description": "Nome da pesquisa", + "type": "string" + }, + "totalTabelas": { + "description": "Quantidade de tabelas (agregados) da pesquisa", + "type": "number" + } + }, + "required": [ + "id", + "nome", + "totalTabelas" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "description": "Total de pesquisas encontradas (modo lista)", + "type": "number" + } + }, + "required": [ + "modo" + ], + "type": "object" +}
- Changed
ibge_populacao1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "horario": { + "description": "Data/hora da consulta", + "type": "string" + }, + "localidade": { + "description": "Localidade da projeção", + "type": "string" + }, + "periodoMedio": { + "additionalProperties": false, + "description": "Indicadores do período médio", + "properties": { + "incrementoPopulacional": { + "description": "Incremento populacional por dia", + "type": "number" + }, + "nascimento": { + "description": "Segundos entre nascimentos", + "type": "number" + }, + "obito": { + "description": "Segundos entre óbitos", + "type": "number" + } + }, + "required": [ + "incrementoPopulacional", + "nascimento", + "obito" + ], + "type": "object" + }, + "populacao": { + "description": "População projetada (habitantes)", + "type": "number" + } + }, + "required": [ + "localidade", + "horario", + "populacao", + "periodoMedio" + ], + "type": "object" +}
- Changed
ibge_sidra4 fields changed- added
Input schema / properties / camposAdded value: +{ + "description": "Selecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. Omitir traz todas.", + "type": "string" +} - changed
Input schema / properties / nivel_territorial / descriptionPrevious value: -"Nível territorial (código N sem o prefixo):\n1=Brasil, 2=Grande Região, 3=UF, 6=Município, 7=Região Metropolitana,\n8=Mesorregião, 9=Microrregião, 10=Distrito, 11=Subdistrito,\n13=RM e RIDE, 14=Região Integrada de Desenvolvimento, 15=Aglomeração Urbana,\n17=Região Geográfica Imediata, 18=Região Geográfica Intermediária,\n105=Macrorregião de Saúde, 106=Região de Saúde,\n114=Aglomerado Subnormal, 127=Amazônia Legal, 128=Semiárido"New value: +"Nível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município, 7=Região Metropolitana, 8=Mesorregião, 9=Microrregião, 10=Distrito, 11=Subdistrito, 13=RM/RIDE, 14=RIDE, 15=Aglomeração Urbana, 17=Região Geográfica Imediata, 18=Região Geográfica Intermediária, 105=Macrorregião de Saúde, 106=Região de Saúde, 114=Aglomerado Subnormal, 127=Amazônia Legal, 128=Semiárido" - added
Input schema / properties / paginaAdded value: +{ + "default": 1, + "description": "Página de resultados (100 registros por página)", + "minimum": 1, + "type": "integer" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "colunas": { + "description": "Rótulos das colunas, na ordem", + "items": { + "type": "string" + }, + "type": "array" + }, + "nome": { + "description": "Nome da tabela (quando conhecido)", + "type": "string" + }, + "paginacao": { + "additionalProperties": false, + "description": "Metadados de paginação para continuação", + "properties": { + "pagina": { + "type": "number" + }, + "porPagina": { + "type": "number" + }, + "temMais": { + "type": "boolean" + }, + "totalPaginas": { + "type": "number" + } + }, + "required": [ + "pagina", + "porPagina", + "totalPaginas", + "temMais" + ], + "type": "object" + }, + "registros": { + "description": "Registros da página atual: cada um mapeia rótulo da coluna -> valor", + "items": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "type": "array" + }, + "tabela": { + "description": "Código da tabela SIDRA consultada", + "type": "string" + }, + "totalRegistros": { + "description": "Total de registros de dados disponíveis (todas as páginas)", + "type": "number" + } + }, + "required": [ + "tabela", + "nome", + "totalRegistros", + "colunas", + "registros", + "paginacao" + ], + "type": "object" +}
- Changed
ibge_sidra_metadados1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "assunto": { + "description": "Assunto/tema da tabela", + "type": "string" + }, + "codigo": { + "description": "Código da tabela/agregado SIDRA", + "type": "string" + }, + "niveisTerritoriais": { + "description": "Níveis territoriais disponíveis para a tabela", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código do nível territorial (ex: N1, N3, N6)", + "type": "string" + }, + "nome": { + "description": "Nome do nível territorial (ex: Brasil, UF, Município)", + "type": "string" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "nome": { + "description": "Nome da tabela", + "type": "string" + }, + "periodicidade": { + "additionalProperties": false, + "description": "Periodicidade da pesquisa", + "properties": { + "fim": { + "description": "Ano/período final da série", + "type": "number" + }, + "frequencia": { + "description": "Frequência de coleta (ex: anual, mensal)", + "type": "string" + }, + "inicio": { + "description": "Ano/período inicial da série", + "type": "number" + } + }, + "type": "object" + }, + "periodos": { + "description": "Períodos disponíveis para a tabela (quando incluir_periodos)", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "Código do período", + "type": "string" + }, + "literais": { + "description": "Descrições textuais do período", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "id", + "literais" + ], + "type": "object" + }, + "type": "array" + }, + "pesquisa": { + "description": "Nome da pesquisa de origem", + "type": "string" + }, + "url": { + "description": "URL da tabela no SIDRA", + "type": "string" + }, + "variaveis": { + "description": "Variáveis da tabela, com unidades e classificações/categorias", + "items": { + "additionalProperties": false, + "properties": { + "classificacoes": { + "description": "Classificações aplicáveis à variável", + "items": { + "additionalProperties": false, + "properties": { + "categorias": { + "description": "Categorias da classificação", + "items": { + "additionalProperties": false, + "properties": { + "id": { + "description": "ID da categoria", + "type": "number" + }, + "nivel": { + "description": "Nível hierárquico da categoria", + "type": "number" + }, + "nome": { + "description": "Nome da categoria", + "type": "string" + }, + "unidade": { + "description": "Unidade da categoria", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "ID da classificação", + "type": "number" + }, + "nome": { + "description": "Nome da classificação", + "type": "string" + } + }, + "required": [ + "id", + "nome", + "categorias" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "ID da variável", + "type": "number" + }, + "nome": { + "description": "Nome da variável", + "type": "string" + }, + "unidade": { + "description": "Unidade de medida da variável", + "type": "string" + } + }, + "required": [ + "id", + "nome" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" +}
- Changed
ibge_sidra_tabelas1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "busca": { + "description": "Termo de busca aplicado, se houver", + "type": "string" + }, + "pesquisa": { + "description": "Filtro de pesquisa aplicado, se houver", + "type": "string" + }, + "tabelas": { + "description": "Lista de tabelas SIDRA retornadas", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código da tabela/agregado SIDRA", + "type": "string" + }, + "nome": { + "description": "Nome da tabela/agregado", + "type": "string" + }, + "pesquisa": { + "description": "Pesquisa de origem (código - nome)", + "type": "string" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "description": "Total de tabelas que correspondem aos critérios", + "type": "number" + } + }, + "required": [ + "tabelas", + "total" + ], + "type": "object" +}
- Changed
ibge_vizinhos2 fields changed- changed
Input schema / properties / uf / descriptionPrevious value: -"Sigla da UF (obrigatório se usar nome do município)"New value: +"Estado por sigla (SP), nome (São Paulo) ou código IBGE (35) — obrigatório se usar nome do município" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "municipio": { + "additionalProperties": false, + "description": "Município de referência da consulta", + "properties": { + "codigo": { + "description": "Código IBGE do município consultado", + "type": "string" + }, + "nome": { + "description": "Nome do município consultado", + "type": "string" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" + }, + "total": { + "description": "Quantidade de municípios próximos encontrados", + "type": "number" + }, + "vizinhos": { + "description": "Lista de municípios próximos (mesma mesorregião)", + "items": { + "additionalProperties": false, + "properties": { + "codigo": { + "description": "Código IBGE do município vizinho", + "type": "string" + }, + "nome": { + "description": "Nome do município vizinho", + "type": "string" + }, + "populacao": { + "description": "População do município vizinho (apenas quando incluir_dados=true)", + "type": "number" + }, + "uf": { + "description": "Sigla da UF do município vizinho", + "type": "string" + } + }, + "required": [ + "codigo", + "nome" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "municipio", + "vizinhos", + "total" + ], + "type": "object" +}
23 tool updates
v1.0.0- First observed
bcb - First observed
datasaude - First observed
ibge_calendario - First observed
ibge_censo - First observed
ibge_cidades - First observed
ibge_cnae - First observed
ibge_comparar - First observed
ibge_estados - First observed
ibge_geocodigo - First observed
ibge_indicadores - First observed
ibge_localidade - First observed
ibge_malhas - First observed
ibge_malhas_tema - First observed
ibge_municipios - First observed
ibge_nomes - First observed
ibge_noticias - First observed
ibge_paises - First observed
ibge_pesquisas - First observed
ibge_populacao - First observed
ibge_sidra - First observed
ibge_sidra_metadados - First observed
ibge_sidra_tabelas - First observed
ibge_vizinhos
TDQS
Scored across 23 tools
The set contains many tools, but descriptions explicitly cross-reference when to use alternatives, especially among the SIDRA wrappers (ibge_sidra, ibge_censo, ibge_indicadores, ibge_datasaude, ibge_cidades, ibge_comparar). A few boundaries still require judgment, such as choosing between low-level ibge_sidra and a themed wrapper, but most tools have clearly distinct purposes.
Almost all tools use a consistent ibge_* snake_case pattern with predictable resource-oriented suffixes, e.g. ibge_estados, ibge_municipios, ibge_noticias, ibge_sidra_tabelas. The only deviations are the unprefixed search and fetch tools, which are explicitly tied to an external Deep Research contract.
With 23 tools, the server sits in the heavy range for a single MCP server, and several data-query wrappers overlap in general purpose even though their themes differ. The breadth of IBGE's domain justifies many distinct endpoints, but the number of convenience wrappers adds meaningful selection overhead.
The surface covers a wide range of IBGE domains: SIDRA data and metadata, census, economic/social and health indicators, localities, geospatial meshes, CNAE, names, news, calendar, countries, and Deep Research search/fetch. Minor gaps remain, such as dedicated agricultural or education wrappers, but generic SIDRA access and the existing tools provide reasonable workarounds.
Maintenance
Related MCP Connectors
IBGE: Área territorial brasileira, official-source lookup. Platform-hosted, pay per query with prepa
IBGE: Código de Município, official-source lookup. Platform-hosted, pay per query with prepaid credi
Brazilian public data API for AI agents. BCB, IBGE, CVM, B3, compliance. x402 payments on Base.
IBGE (Instituto Brasileiro de Geografia e Estatística) MCP. Brazil's official statistics agency.…
Related MCP Servers
- FlicenseCqualityCmaintenanceProvides access to the Australian Bureau of Statistics (ABS) Data API. This server allows AI assistants to query and analyze ABS statistical data.19-
- AlicenseAqualityDmaintenanceAn MCP server that enables querying detailed address information from Brazilian postal codes (CEPs) via the ViaCEP API, returning data such as street names, neighborhoods, cities, states, regions, and IBGE codes.12MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that connects AI assistants to Brazilian public data services, providing access to postal codes, company registrations, bank information, area codes, IBGE data, currency exchange rates, and domain registration status.115 npm4MIT
- AlicenseNot gradedqualityDmaintenanceEnables lookup of Brazilian addresses by CEP (postal code) using the ViaCEP API, returning formatted address information including street, neighborhood, city, and state.1ISC