Skip to main content
Glama

Server Details

IBGE: geography, census, economy and health from the official APIs, with provenance. 23 tools.

Ownership verified
Status
Healthy
Uptime
100.0% over 46 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
SidneyBissoli/ibge-br-mcp
GitHub Stars
12
Server Listing
IBGE Brasil MCP

TDQS

A4.2/5.0

Scored across 23 tools

Disambiguation4/5

Several tools wrap the same SIDRA/localidade backends (ibge_censo, ibge_indicadores, ibge_datasaude, ibge_cidades, ibge_comparar, ibge_sidra, plus ibge_municipios/ibge_geocodigo/ibge_localidade), so overlap exists. However, each description carries an explicit 'use a different tool when' block that sharply delineates scope, leaving only mild potential for misselection.

Naming Consistency5/5

All domain tools use a uniform snake_case `ibge_` prefix with predictable thematic suffixes, including sub-prefixed pairs like ibge_sidra_tabelas/ibge_sidra_metadados. The only deviations are the contract-mandated `search`/`fetch`, which are consistently named between themselves.

Tool Count3/5

At 23 tools the set sits in the heavy range, and several SIDRA wrappers add surface over the generic ibge_sidra engine. The breadth of the IBGE domain justifies most of them, but the count is borderline rather than tight.

Completeness4/5

The surface covers data queries, geography, meshes, classifications, indicators, health, news, calendar, countries and names, plus the search/fetch pair for the Deep Research contract — a thorough read-only coverage of the domain. Minor gaps remain (e.g., no dedicated agricultural or non-SIDRA survey dataset beyond the generic engine), but agents can work around them.

Available Tools

23 tools
fetchDocumento para Deep ResearchA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesIdentificador de um documento devolvido por `search`

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesIdentificador único do documento no servidor; é o que `fetch` recebe
urlYesURL pública canônica do documento — a citação do ChatGPT depende dela
textYesConteúdo integral do documento, legível (Markdown)
titleYesTítulo legível do documento
metadataNoPares chave/valor adicionais sobre o documento (tipo, fonte, período…)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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çõesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
deNoData inicial no formato DD/MM/AAAA (ex: '01/01/2024')
ateNoData final no formato DD/MM/AAAA (ex: '31/12/2024')
tipoNoTipo de evento: 'divulgacao' (publicações), 'coleta' (pesquisas de campo), ou 'todos'divulgacao
paginaNoNúmero da página (padrão: 1)
produtoNoFiltrar por produto/pesquisa (ex: 'IPCA', 'PNAD', 'PIB')
quantidadeNoQuantidade de resultados por página (padrão: 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal de eventos disponíveis para os critérios
paginaNoPágina atual retornada
eventosYesLista de eventos do calendário (divulgações/coletas)
produtoNoFiltro de produto aplicado, quando informado
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
totalPaginasNoTotal de páginas disponíveis

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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áficoA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno do censo (1970, 1980, 1991, 2000, 2010, 2022) ou 'todos' para série histórica
temaNoTema 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íveispopulacao
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
agruparPorNoCom 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
localidadesNoCódigos das localidades ou 'all'all
estatisticasNoComputa 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_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município1

Output Schema

ParametersJSON Schema
NameRequiredDescription
anoNoAno(s) de referência
temaNoTema do censo consultado
tabelaNoTabela SIDRA de origem
colunasYesRótulos das colunas, na ordem
unidadesYesUnidade 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
descricaoNoDescrição da tabela
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
estatisticasNoBloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)
totalRegistrosYesTotal de registros de dados

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, and the description restates the read-only/idempotent nature plus return format (Markdown + structuredContent). It goes beyond the annotations by disclosing a non-obvious mode interaction: in statistics mode, campos/formato are ignored and registros comes back empty. Useful added context, though the safety profile is largely a restatement of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and scope, then organized into themes, examples, alternatives, and mode behavior with clear headers. It runs long, but every section (years list, theme list, statistics mode, sibling routing) carries information an agent needs, so nothing feels like padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a typed output schema present, the description needn't explain return values and doesn't try to. It fully covers scope, enumerations, mode behavior, and tool routing, so an agent has everything required 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all nine parameters and the baseline is 3. The description adds meaning the schema lacks by showing concrete parameter combinations in examples and explaining cross-parameter behavior (estatisticas overrides campos/formato and empties registros; agruparPor ranks groups and resolves short/partial labels).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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) with a clear scope (1970-2022) and explicitly positions itself as the simplified alternative to raw SIDRA table lookups. It names the siblings it is not (ibge_cidades, ibge_comparar, ibge_sidra) so an agent can distinguish it 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Has a dedicated 'Use a different tool when:' block that names three alternatives and the exact condition that selects each. It also provides worked examples covering single-year, historical-series, and spatial-level queries, leaving little to inference.

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@)A
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoCódigo ou sigla da UF para filtrar (ex: 35 ou SP)
tipoNoTipo de consulta: panorama (resumo geral), indicador (específico), pesquisas (listar), historicopanorama
pesquisaNoID da pesquisa para filtrar indicadores
indicadorNoID do indicador ou nome para busca
municipioNoCódigo IBGE do município (7 dígitos)

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do município/indicador
tipoYesTipo de consulta (panorama, indicador, pesquisas, historico)
municipioNoCódigo IBGE do município
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
indicadoresYesIndicadores retornados (vazio para respostas de catálogo)

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 CNAEA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermo 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.
nivelNoNível hierárquico para listar (padrão: mostra todos os níveis relevantes)
codigoNoCó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)
limiteNoNúmero máximo de resultados (padrão: 20)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modoYesModo de resposta que gerou os dados
buscaNoPresente no modo de busca por termo
listaNoPresente no modo de listagem por nível
codigoNoPresente no modo de consulta por código
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 localidadesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatoNoFormato de saída: tabela, json ou ranking (ordenado)tabela
indicadorNoIndicador 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íveispopulacao
localidadesYesCó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

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
tabelaNoTabela SIDRA de origem
formatoNoFormato solicitado
unidadesYesUnidade 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
indicadorNoIndicador comparado
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
localidadesYesLocalidades comparadas, com o valor do indicador
estatisticasNoEstatísticas agregadas (quando há ao menos 2 valores positivos)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds genuinely new context beyond that: it is a live GET against the public IBGE APIs (SIDRA and Localidades) and returns Markdown plus a typed structuredContent payload. It does not, however, mention rate limits, error behavior, or latency for these external calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, then indicators, features, examples, and routing constraints in scannable blocks. It is somewhat longer than needed because the indicator list duplicates the enum descriptions already in the schema, which is wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, and the description still summarizes the Markdown + structuredContent shape. With indicators, constraints (2–10 localities, code formats), examples, and sibling routing all present, an agent has everything required to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both enums and the localities format are fully documented), so the baseline is 3. The description largely repeats the schema's indicator list; notably its 'pib: GDP per capita' label conflicts with the schema's 'PIB a preços correntes (Mil Reais)', a minor semantic mismatch rather than added clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 (municipalities or states)'. It immediately names sibling alternatives (ibge_cidades, ibge_censo, ibge_sidra) and its unique scope ('rank/compare 2–10 localities on one indicator'), so 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('Use this tool ONLY to rank/compare 2–10 localities'), when-not ('For a single locality'), and which siblings to use instead. Concrete examples for capitals, states, ranking, and listing further anchor the invocation pattern.

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údeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
periodoNoPeríodo: 'last', 'all', ou ano específicolast
indicadorYesIndicador 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
agruparPorNoCom 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
localidadeNoCódigo da localidade ou 'all'all
estatisticasNoComputa 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_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF, 6=Município1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
fonteNoFonte do dado
colunasYesRótulos das colunas, na ordem
unidadesYesUnidade 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
indicadorNoChave do indicador de saúde consultado
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
estatisticasNoBloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)
totalRegistrosYesTotal de registros de dados

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint/openWorldHint, and the description's 'read-only and idempotent — a live GET' line largely restates them, which would normally cap credit. However it goes beyond the annotations by disclosing the statistics-mode gotchas (campos/formato are ignored, registros comes empty) and the agruparPor ranking/tie-refusal behavior, which an agent could not infer from structured fields alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but well front-loaded: verb first, then grouped indicator lists, then territorial codes, then examples, then statistics mode, then sibling routing. A minor deduction because the indicator enumeration is duplicated verbatim in the schema's indicador description, so that block does not strictly earn its place here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with an output schema present, the description covers everything an agent needs: indicator vocabulary, territorial level codes, worked examples, the statistics-mode override contract, and explicit fallbacks to sibling tools. Return values are covered by the output schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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, but the description earns above it by showing parameter combinations in worked examples (indicador + nivel_territorial + localidade='35' for São Paulo deaths) and by explaining the interaction contract where estatisticas=true overrides pagina/campos/formato. It adds compositional meaning rather than restating field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Queries Brazil health indicators, served through IBGE's SIDRA') and immediately scopes the domain by listing the actual indicator identifiers, so an agent knows exactly what data this returns. It also explicitly names the siblings it is not (ibge_cidades, ibge_censo, ibge_sidra), which makes disambiguation possible 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains a dedicated 'Use a different tool when' section naming drei concrete alternatives with the condition that selects each, plus explicit routing guidance for statistics questions ('which state has the highest infant mortality?') to estatisticas=true. This is about as complete as usage guidance gets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibge_estadosEstados do BrasilA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
regiaoNoFiltrar por região: N (Norte), NE (Nordeste), SE (Sudeste), S (Sul), CO (Centro-Oeste)
ordenarNoCampo para ordenação dos resultadosnome

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesTotal de estados retornados
estadosYesLista de estados
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 IBGEA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35) para restringir a busca por nome de município
nomeNoNome da localidade para encontrar o código IBGE (estado ou município)
codigoNoCó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

ParametersJSON Schema
NameRequiredDescription
nomeNoNome da localidade resolvida
tipoYesTipo do resultado: localidade decodificada (regiao/uf/municipio/distrito) ou lista de municípios encontrados (lista)
siglaNoSigla da região ou UF, quando aplicável
totalNoQuantidade de municípios encontrados na busca por nome (apenas tipo lista)
codigoNoCódigo IBGE da localidade resolvida (ausente em resultados do tipo lista)
regiaoNoNome da região à qual a UF pertence (apenas tipo uf)
estadosNoEstados pertencentes à região (apenas tipo regiao)
matchesNoMunicípios encontrados na busca por nome (apenas tipo lista)
hierarquiaNoHierarquia geográfica completa, da região ao município/distrito (tipo municipio/distrito)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
codigoSidraNoCódigo SIDRA de 6 dígitos do município (apenas tipo municipio)
regiaoCodigoNoCódigo IBGE da região à qual a UF pertence (apenas tipo uf)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 sociaisA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta.
formatoNoFormato de saídatabela
periodosNoPeríodos (ex: '2023', 'last', 'last 4')last
categoriaNoFiltrar por categoria de indicadores
indicadorNoNome do indicador (ex: "pib", "ipca", "desemprego", "populacao"). Use "listar" para ver todos os indicadores disponíveis.
agruparPorNoCom 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
localidadesNoCódigos das localidades ou 'all'all
estatisticasNoComputa 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_territorialNoNível territorial (código N): 1=Brasil, 2=Região, 3=UF1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeNoNome do indicador
tabelaNoTabela SIDRA de origem
colunasYesRótulos das colunas, na ordem
unidadesYesUnidade 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
indicadorNoChave do indicador consultado
registrosYesRegistros: cada um mapeia rótulo da coluna -> valor
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
estatisticasNoBloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)
totalRegistrosYesTotal de registros de dados

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses that it is a live GET against the public SIDRA API, that IBGE revises published figures and no earlier version is kept, that PNAD rolling quarters are moving three-month windows, and that statistics mode ignores campos/formato and returns empty registros. Annotations only cover the read-only/idempotent safety profile, so this adds substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and a bolded category index, then examples, then caveats and sibling routing — a logical order. It is long, and the statistics-mode guidance overlaps with the estatisticas and agruparPor schema descriptions, but nearly every sentence carries operational value that the structured fields do not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with an output schema present, everything an agent needs is covered: the indicator catalogue, default/required-free calling, statistics mode semantics, period and territory levels, revision caveats, and explicit routing to alternatives. No return-format explanation is needed given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 real meaning: it explains the estatisticas/agruparPor interaction (ranking by descending sum, group mini-distributions, short-label resolution) and how periodos and nivel_territorial are used in practice. It stops short of describing every parameter (e.g. localidades codes, topN interaction) but reads as a net gain over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 the exact indicator codes by category, so an agent knows precisely what it can retrieve. It also differentiates from siblings by naming ibge_sidra for other variables of the same table and routing comparison/census/municipality tasks to ibge_comparar, ibge_censo and ibge_cidades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage examples (indicador="pib", periodos="last 12", nivel_territorial="3"), an explicit trigger for estatisticas=true ("largest/smallest/mean/median/distribution/ranking questions"), and a dedicated "Use a different tool when" section with three named alternatives and the condition selecting each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ibge_localidadeDetalhes de localidadeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoTipo da localidade. Se não informado, será inferido pelo tamanho do código.
codigoYesCódigo IBGE da localidade (estado: 2 dígitos, município: 7 dígitos, distrito: 9 dígitos)

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesCódigo IBGE da localidade
nomeYesNome da localidade
tipoYesTipo da localidade retornada
siglaNoSigla da UF (apenas para estados)
estadoNoEstado da localidade (município ou distrito)
regiaoNoRegião do estado (apenas para estados)
municipioNoMunicípio ao qual o distrito pertence (apenas para distritos)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
mesorregiaoNoMesorregião do município
microrregiaoNoMicrorregião do município
regiaoImediataNoRegião imediata do município
regiaoIntermediariaNoRegião intermediária do município

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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áficasA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoNoTipo de divisão territorial
formatoNoFormato de saída (padrão: geojson)geojson
qualidadeNoQualidade do traçado: 'minima', 'intermediaria' ou 'maxima' (padrão). Os números 1–4 do IBGE antigo continuam aceitos e são traduzidos.maxima
resolucaoNoDivisõ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
localidadeYesCódigo IBGE ou sigla da localidade (ex: 'BR', 'SP', '35', '3550308')
intrarregiaoNoDivisão interna pelo nome, alternativa a resolucao: 'regiao', 'UF', 'regiao-intermediaria', 'regiao-imediata', 'mesorregiao', 'microrregiao' ou 'municipio'. Quando informado, prevalece sobre resolucao.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoURL para download da malha completa
tipoNoTipo de divisão territorial, quando informado
formatoYesFormato de saída solicitado (geojson, topojson ou svg)
qualidadeNoQualidade do traçado solicitada
resolucaoNoResolução/divisões internas solicitada
localidadeYesCódigo IBGE ou sigla da localidade consultada
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
intrarregiaoNoDivisão interna desenhada dentro da malha (vocabulário da API v3)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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áticasA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
temaYesRecorte 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
codigoNoFiltra 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.
limiteNoQuantas feições trazer (padrão 50, máx. 600). O total do recorte vem sempre, mesmo quando o limite corta a lista.

Output Schema

ParametersJSON Schema
NameRequiredDescription
temaYesRecorte solicitado (ou 'listar')
temasNoLista de recortes disponíveis (somente no modo 'listar')
camadaNoCamada WFS do IBGE Geosserviços consultada
codigoNoCódigo usado como filtro, quando informado
feicoesNoTotal de feições do recorte na fonte
registrosNoAtributos de cada feição (sem geometria)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
url_geometriaNoURL canônica do WFS que devolve a malha COM geometria, em GeoJSON
feicoes_retornadasNoQuantas vieram nesta resposta

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 BrasilA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35). Se não informado, retorna todos os municípios do Brasil.
buscaNoTermo para buscar no nome do município
limiteNoNúmero máximo de resultados (padrão: 100, máximo: 5570)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ufNoUF informada no filtro (como recebida na entrada)
buscaNoTermo de busca aplicado ao nome do município
totalYesTotal de municípios encontrados antes do limite
municipiosYesLista de municípios retornados (após filtro e limite)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 nomesA
Read-onlyIdempotent
Inspect

Queries name frequency and rankings in Brazil (IBGE).

Features:

  1. Name frequency (tipo='frequencia'):

    • Birth frequency by decade

    • Multiple names separated by comma

    • Filter by sex and locality

  2. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sexoNoFiltrar por sexo: M (masculino) ou F (feminino)
tipoYesTipo de consulta: 'frequencia' para buscar nomes específicos ou 'ranking' para ver os mais populares
nomesNoPara tipo='frequencia': Nome ou nomes separados por vírgula
decadaNoPara tipo='ranking': Década do ranking (ex: 1990, 2000, 2010)
limiteNoPara tipo='ranking': Número de nomes (padrão: 20)
localidadeNoCódigo IBGE da localidade (UF: 2 dígitos, Município: 7 dígitos)

Output Schema

ParametersJSON Schema
NameRequiredDescription
tipoYesTipo da consulta realizada
rankingNoResultado do ranking (presente quando tipo='ranking')
frequenciaNoResultados de frequência (presente quando tipo='frequencia')
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 IBGEA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
deNoData inicial no formato DD/MM/AAAA (ex: 01/01/2024)
ateNoData final no formato DD/MM/AAAA (ex: 31/12/2024)
tipoNoTipo de publicação: 'release' ou 'noticia'
buscaNoTermo para buscar nas notícias
paginaNoNúmero da página para paginação
destaqueNoFiltrar apenas notícias em destaque
quantidadeNoQuantidade de notícias a retornar (padrão: 10, máximo: 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
buscaNoTermo de busca aplicado, se houver
totalYesTotal de notícias encontradas na consulta
paginaYesPágina atual
noticiasYesLista de notícias retornadas
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
totalPaginasYesNúmero total de páginas

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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ísesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
paisNoCódigo ISO-ALPHA-2 do país (ex: BR, US, AR) ou código M49
tipoNoTipo de consulta: listar (todos), detalhes (de um país), indicadores, buscarlistar
buscaNoTermo de busca para filtrar países pelo nome
regiaoNoFiltrar por região/continente: americas, europa, africa, asia, oceania
indicadoresNoIndicadores 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

ParametersJSON Schema
NameRequiredDescription
paisNoDetalhes de um país específico (modo detalhes)
tipoYesModo de consulta que originou este resultado
buscaNoTermo de busca aplicado, se houver
totalNoTotal de países encontrados (modos listar/buscar)
paisesNoLista de países (modos listar/buscar). Limitada aos 50 primeiros na exibição
regiaoNoFiltro de região/continente aplicado, se houver
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
indicadoresNoCatálogo de indicadores de países publicado pelo IBGE (modo indicadores)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 IBGEA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermo para buscar no nome ou ID da pesquisa
detalhesNoCódigo da pesquisa para ver detalhes e tabelas disponíveis

Output Schema

ParametersJSON Schema
NameRequiredDescription
modoYesModo de consulta que originou este resultado: lista de pesquisas ou detalhes de uma
buscaNoTermo de busca aplicado, se houver (modo lista)
totalNoTotal de pesquisas encontradas (modo lista)
pesquisaNoDetalhes de uma pesquisa específica (modo detalhes)
pesquisasNoLista de pesquisas (modo lista)
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 SIDRAA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNNoTamanho das listas top/bottom quando estatisticas=true sem agruparPor (padrão: 10, máx: 100)
camposNoSelecionar apenas algumas colunas por rótulo, separadas por vírgula (ex: 'Valor,Ano'). Reduz o volume da resposta. Omitir traz todas.
paginaNoPágina de resultados (100 registros por página)
tabelaYesCódigo da tabela SIDRA (ex: 6579 para estimativas de população, 9514 para censo 2022)
formatoNoFormato de saída: 'json' para dados brutos ou 'tabela' para formato legíveltabela
periodosNoPeríodos: 'last' para último, 'all' para todos, ou anos específicos (ex: 2020,2021,2022)last
variaveisNoIDs das variáveis separados por vírgula, ou 'allxp' para todasallxp
agruparPorNoCom 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
localidadesNoCódigos das localidades separados por vírgula, ou 'all' para todasall
estatisticasNoComputa 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
classificacoesNoClassificações no formato 'id[categorias]' (ex: '2[6794]' para sexo masculino)
nivel_territorialNoNí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árido1

Output Schema

ParametersJSON Schema
NameRequiredDescription
nomeYesNome da tabela (quando conhecido)
tabelaYesCódigo da tabela SIDRA consultada
colunasYesRótulos das colunas, na ordem
unidadesYesUnidade 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
paginacaoYesMetadados de paginação para continuação
registrosYesRegistros da página atual: cada um mapeia rótulo da coluna -> valor
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
estatisticasNoBloco estatístico presente quando estatisticas=true (registros vem vazio nesse modo)
totalRegistrosYesTotal de registros de dados disponíveis (todas as páginas)

TDQS

A4.8/5.0
Behavior5/5

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 goes well beyond by disclosing that estatisticas computes over all rows before pagination and ignores pagina/campos/formato, that the source now has a lower ceiling via the Aggregates API (with a concrete all-municipalities x 12 periods failure example), that values are as-published-at-extraction with no earlier version retained, that absence markers are excluded from n, and that rolling PNAD quarters are moving windows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long but organized with headers and bulleted examples, and the purpose plus wrapper-routing appear early. Some content (territorial level codes, clasificacoes format) restates the input schema descriptions, which is the main source of slack.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool, the description supplies table-code examples, territorial-level reference, working call examples, statistics-mode semantics, source limits, and revision caveats; an output schema exists, so it needn't explain return values, and it notes the Markdown plus typed structuredContent payload anyway.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 real meaning: worked examples combining tabela/nivel_territorial/localidades, the agruparPor short-name and partial-label resolution plus refusal on ambiguous labels, and the 'last'/'all'/'allxp' conventions. It does not fully compensate on every param, hence 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Queries SIDRA tables') and immediately frames itself as the low-level engine relative to named siblings (ibge_censo, ibge_indicadores, ibge_comparar, ibge_cidades). An agent can distinguish it from the wrappers 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing: prefer the friendly wrappers for census themes, time series, 2-10 locality comparisons, or single-municipality panels, and use ibge_sidra_tabelas/ibge_sidra_metadados to discover a table code first. It also states exactly when to switch on estatisticas=true ('largest/smallest/mean/median/distribution/ranking') and what to do when a query is refused.

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 SIDRAA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabelaYesCódigo da tabela/agregado SIDRA (ex: '6579', '9514', '4714')
incluir_periodosNoIncluir lista de períodos disponíveis (padrão: true)
incluir_localidadesNoIncluir níveis territoriais disponíveis (padrão: false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNoURL da tabela no SIDRA
nomeYesNome da tabela
codigoYesCódigo da tabela/agregado SIDRA
assuntoNoAssunto/tema da tabela
periodosNoPeríodos disponíveis para a tabela (quando incluir_periodos)
pesquisaNoNome da pesquisa de origem
variaveisNoVariáveis da tabela, com unidades e classificações/categorias
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
periodicidadeNoPeriodicidade da pesquisa
niveisTerritoriaisNoNíveis territoriais disponíveis para a tabela

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 SIDRAA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
buscaNoTermos 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)
limiteNoNúmero máximo de resultados (padrão: 20)
pesquisaNoFiltrar por código ou nome da pesquisa (ex: 'censo', 'pnad', 'pib')

Output Schema

ParametersJSON Schema
NameRequiredDescription
buscaNoTermo de busca aplicado, se houver
totalYesTotal de tabelas que correspondem aos critérios
tabelasYesLista de tabelas SIDRA retornadas
pesquisaNoFiltro de pesquisa aplicado, se houver
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)
notas_vocabularioNoQuando a busca foi ampliada para a palavra que o IBGE usa (renda→rendimento), diz qual

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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 vizinhosA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoEstado por sigla (SP), nome (São Paulo) ou código IBGE (35) — obrigatório se usar nome do município
raioNoRaio em km para buscar municípios próximos (usa centróides)
municipioYesCódigo IBGE do município (7 dígitos) ou nome do município
incluir_dadosNoIncluir dados populacionais dos vizinhos

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYesQuantidade de municípios próximos encontrados
vizinhosYesLista de municípios próximos (mesma mesorregião)
municipioYesMunicípio de referência da consulta
provenanceYesBloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença
attributionYesURLs canônicas das fontes desta resposta (lista de atribuição)

TDQS

A4/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedibge_paises16 fields changed
      • changedInput schema / properties / indicadores / description
        Previous 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"
      • changedOutput schema / properties / indicadores / description
        Previous 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)"
      • changedOutput schema / properties / indicadores / items / properties / alias / description
        Previous 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"
      • addedOutput schema / properties / indicadores / items / properties / multiplicador
        Added value: +{
        +  "description": "Escala dos valores; null se a fonte não informa",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / indicadores / items / properties / nome / description
        Previous value: -"Nome do indicador"New value: +"Nome do indicador, como a fonte o publica"
      • addedOutput schema / properties / indicadores / items / properties / unidade
        Added value: +{
        +  "description": "Unidade do indicador; null se a fonte não informa",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / indicadores / items / required
        Previous value: -[
        -  "id",
        -  "nome",
        -  "alias"
        -]New value: +[
        +  "id",
        +  "nome",
        +  "alias",
        +  "unidade",
        +  "multiplicador"
        +]
      • changedOutput schema / properties / pais / properties / indicadores / description
        Previous value: -"Indicadores principais com o valor mais recente disponível"New value: +"Indicadores pedidos, cada um com o valor mais recente publicado"
      • changedOutput schema / properties / pais / properties / indicadores / items / properties / ano / description
        Previous value: -"Ano de referência do valor"New value: +"Ano ou período (ex.: '2021-2023') do valor"
      • addedOutput schema / properties / pais / properties / indicadores / items / properties / id
        Added value: +{
        +  "description": "ID do indicador na API do IBGE",
        +  "type": "number"
        +}
      • changedOutput schema / properties / pais / properties / indicadores / items / properties / indicador / description
        Previous value: -"Nome do indicador"New value: +"Nome do indicador, como a fonte o publica"
      • addedOutput schema / properties / pais / properties / indicadores / items / properties / multiplicador
        Added value: +{
        +  "description": "Escala do valor (ex.: 1000000000 = valor em bilhões da unidade); null se a fonte não informa",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / pais / properties / indicadores / items / properties / unidade
        Added value: +{
        +  "description": "Unidade do valor (ex.: 'US$', '% do PIB'); null se a fonte não informa",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / pais / properties / indicadores / items / properties / valor / description
        Previous 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')"
      • changedOutput schema / properties / pais / properties / indicadores / items / required
        Previous value: -[
        -  "indicador",
        -  "valor",
        -  "ano"
        -]New value: +[
        +  "id",
        +  "indicador",
        +  "valor",
        +  "ano",
        +  "unidade",
        +  "multiplicador"
        +]
      • addedOutput schema / properties / pais / properties / indicadoresSemValor
        Added 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"
        +}
  2. 5 tool updates
    • Changedibge_censo2 fields changed
      • addedOutput schema / properties / unidades
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "totalRegistros",
        -  "colunas",
        -  "registros",
        -  "provenance",
        -  "attribution"
        -]New value: +[
        +  "totalRegistros",
        +  "colunas",
        +  "registros",
        +  "unidades",
        +  "provenance",
        +  "attribution"
        +]
    • Changedibge_comparar2 fields changed
      • addedOutput schema / properties / unidades
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "localidades",
        -  "provenance",
        -  "attribution"
        -]New value: +[
        +  "localidades",
        +  "unidades",
        +  "provenance",
        +  "attribution"
        +]
    • Changedibge_datasaude2 fields changed
      • addedOutput schema / properties / unidades
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "totalRegistros",
        -  "colunas",
        -  "registros",
        -  "provenance",
        -  "attribution"
        -]New value: +[
        +  "totalRegistros",
        +  "colunas",
        +  "registros",
        +  "unidades",
        +  "provenance",
        +  "attribution"
        +]
    • Changedibge_indicadores2 fields changed
      • addedOutput schema / properties / unidades
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "totalRegistros",
        -  "colunas",
        -  "registros",
        -  "provenance",
        -  "attribution"
        -]New value: +[
        +  "totalRegistros",
        +  "colunas",
        +  "registros",
        +  "unidades",
        +  "provenance",
        +  "attribution"
        +]
    • Changedibge_sidra2 fields changed
      • addedOutput schema / properties / unidades
        Added 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"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "tabela",
        -  "nome",
        -  "totalRegistros",
        -  "colunas",
        -  "registros",
        -  "paginacao",
        -  "provenance",
        -  "attribution"
        -]New value: +[
        +  "tabela",
        +  "nome",
        +  "totalRegistros",
        +  "colunas",
        +  "registros",
        +  "unidades",
        +  "paginacao",
        +  "provenance",
        +  "attribution"
        +]
  3. 23 tool updates
    • Changedfetch14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_calendario14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_censo14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_cidades14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_cnae14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_comparar14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_datasaude14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_estados14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_geocodigo14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_indicadores14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_localidade14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_malhas14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_malhas_tema14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_municipios14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_nomes14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_noticias14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_paises14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_pesquisas14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_sidra14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_sidra_metadados14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_sidra_tabelas14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedibge_vizinhos14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
    • Changedsearch14 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / derivation_note
        Added value: +{
        +  "description": "O que o servidor calculou; presente junto com derived",
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / derived
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / field_sources / description
        Previous value: -"Proveniência por sub-fonte (contrato v1.2): 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"New value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / description
        Added value: +"Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / data_vintage / description
        Added value: +"Vintage/competência da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / dataset_id / description
        Added value: +"Identificador do conjunto da sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / fields / description
        Added value: +"Campos do payload atribuídos a esta sub-fonte"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / retrieved_at / description
        Added value: +"ISO-8601 da extração desta sub-fonte na origem"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / served_from_cache / description
        Added value: +"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"
      • addedOutput schema / properties / provenance / properties / field_sources / items / properties / source_url / description
        Added value: +"URL canônica da sub-fonte que originou estes campos"
      • addedOutput schema / properties / provenance / properties / notices
        Added 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"
        +}
      • changedOutput schema / properties / provenance / properties / retrieval / description
        Previous 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)"
      • addedOutput schema / properties / provenance / properties / revision
        Added 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"
        +}
  4. 23 tool updates
    • Changedfetch1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_calendario1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_censo1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_cidades1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_cnae1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_comparar1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_datasaude1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_estados1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_geocodigo1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_indicadores1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_localidade1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_malhas1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_malhas_tema1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_municipios1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_nomes1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_noticias1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_paises1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_pesquisas1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_sidra1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_sidra_metadados1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_sidra_tabelas1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedibge_vizinhos1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
    • Changedsearch1 field changed
      • addedOutput schema / properties / provenance / properties / field_sources
        Added value: +{
        +  "description": "Proveniência por sub-fonte (contrato v1.2): 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,
        +    "properties": {
        +      "data_vintage": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "dataset_id": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "fields": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "retrieved_at": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "served_from_cache": {
        +        "type": [
        +          "boolean",
        +          "null"
        +        ]
        +      },
        +      "source_url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "fields",
        +      "source_url",
        +      "dataset_id",
        +      "data_vintage",
        +      "retrieved_at"
        +    ],
        +    "type": "object"
        +  },
        +  "minItems": 1,
        +  "type": "array"
        +}
  5. 2 tool updates
    • Changedfetch1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedsearch1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
  6. 23 tool updates
    • Changedfetch3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_calendario3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_censo3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_cidades3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_cnae3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_comparar3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_datasaude3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_estados3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_geocodigo3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_indicadores3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_localidade3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_malhas3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_malhas_tema3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_municipios3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_nomes3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_noticias3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_paises3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_pesquisas3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_sidra3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_sidra_metadados3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_sidra_tabelas3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedibge_vizinhos3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
    • Changedsearch3 fields changed
      • changedOutput schema / properties / provenance / description
        Previous 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"
      • addedOutput schema / properties / provenance / properties / retrieval
        Added 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)"
        +}
      • changedOutput schema / properties / provenance / required
        Previous value: -[
        -  "source",
        -  "source_url",
        -  "data_vintage",
        -  "retrieved_at",
        -  "citation",
        -  "license"
        -]New value: +[
        +  "source",
        +  "source_url",
        +  "data_vintage",
        +  "retrieved_at",
        +  "retrieval",
        +  "citation",
        +  "license"
        +]
  7. 1 tool update
    • Changedibge_cnae4 fields changed
      • changedInput schema / properties / busca / description
        Previous 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."
      • addedOutput schema / properties / busca / properties / encontrados
        Added value: +{
        +  "description": "Quantidade de atividades que casam o termo no catálogo inteiro (pode ser maior que 'total', que é limitado por 'limite')",
        +  "type": "number"
        +}
      • addedOutput schema / properties / busca / properties / notas_vocabulario
        Added 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"
        +}
      • changedOutput schema / properties / busca / required
        Previous value: -[
        -  "termo",
        -  "nivel",
        -  "total",
        -  "resultados"
        -]New value: +[
        +  "termo",
        +  "nivel",
        +  "total",
        +  "encontrados",
        +  "resultados"
        +]
  8. 1 tool update
    • Changedibge_sidra_tabelas2 fields changed
      • changedInput schema / properties / busca / description
        Previous 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)"
      • addedOutput schema / properties / notas_vocabulario
        Added value: +{
        +  "description": "Quando a busca foi ampliada para a palavra que o IBGE usa (renda→rendimento), diz qual",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables querying, comparing, and analyzing official Brazilian IBGE data through 23 tools covering localities, demographics, census, SIDRA statistics, indicators, geography, health, sanitation, economy, and territorial snapshots. Responses preserve reproducible provenance, including source, URL, period or vintage, extraction timestamp, and derivation status, and it can run locally over STDIO or remotely via Cloudflare Workers.
    24
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.