{"openapi":"3.1.0","info":{"title":"Empresas por CNPJ","version":"1.0.0","description":"# Empresas por CNPJ\n\nFonte: Receita Federal — dados abertos do CNPJ, dump mensal.\n\nComece em https://radar-cnpj.com/empresas/index.json. Siga itens[].url, links.pai e links.proximo; não enumere IDs nem invente caminhos. Cada página traz até 20 itens. Use /index.md para Markdown, /index.okf.md para OKF ou / para HTML no mesmo nó. O cursor depois pertence ao recorte e é opaco. Não representa snapshot de uma base mutável.\n\nAs páginas públicas permitem indexação. O header Link rel=canonical aponta para o HTML equivalente, preservando o cursor; links.json continua sendo a referência estruturada para agentes.\n\nLeitura pública, sem autenticação ou cobrança. GET e HEAD não coletam nem escrevem. 400: entrada inválida; 404: nó ausente; 405: método não aceito; 421: host desconhecido; 429: limite de capacidade; 503: fonte indisponível. Em 429/503 respeite Retry-After.\n\n- [Árvore](https://radar-cnpj.com/empresas/index.json)\n- [OpenAPI](https://radar-cnpj.com/empresas/openapi.json)\n- [MCP](https://radar-cnpj.com/empresas/mcp): tools/list e tools/call, ferramenta navegar(caminho, depois).\n- [Mapa OKF](https://radar-cnpj.com/empresas/okf/index.md)\n- [llm.txt](https://radar-cnpj.com/empresas/llm.txt)\n\n## Exemplo MCP\n\n```sh\nORIGIN='https://radar-cnpj.com/empresas'\ncurl -fsS \"$ORIGIN/mcp\" -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"navegar\",\"arguments\":{\"caminho\":\"/\"}}}'\n```\n\n## Como consultar\n\nPercorra os estabelecimentos ativos da base de dados abertos do CNPJ por estado, município e atividade principal (CNAE), até a ficha pública de cada empresa.\n\nEstado → município → atividade (CNAE) → estabelecimentos → ficha por CNPJ\n\nLeitura pública, gratuita e sem chave. Até 20 itens por página; siga links.proximo. Total e contadores da trilha/categorias representam o recorte indexado, na unidade informada; filhos conta categorias imediatas. Na TV, programas são ocorrências nas grades arquivadas. A hierarquia e os totais são preparados separadamente no c3, com atualização manual e incremental; detalhes são lidos na fonte. Respeite Retry-After em 429 ou 503.\n\nRetrato do dump mensal da Receita Federal, com a data em /api/health do Radar CNPJ. A árvore lista só estabelecimentos ativos; a ficha responde para qualquer CNPJ da base. Não traz quadro societário, telefone nem e-mail — isso fica na API do Radar CNPJ — e não é certidão.\n\n### Índice do acervo\n\n[HTML](https://radar-cnpj.com/empresas/) · [JSON](https://radar-cnpj.com/empresas/index.json) · [MD](https://radar-cnpj.com/empresas/index.md) · [OKF](https://radar-cnpj.com/empresas/index.okf.md)\n\n```sh\ncurl -fsS 'https://radar-cnpj.com/empresas/index.json'\n```\n\n### Estado: Distrito Federal\n\n[HTML](https://radar-cnpj.com/empresas/uf/DF/) · [JSON](https://radar-cnpj.com/empresas/uf/DF/index.json) · [MD](https://radar-cnpj.com/empresas/uf/DF/index.md) · [OKF](https://radar-cnpj.com/empresas/uf/DF/index.okf.md)\n\n```sh\ncurl -fsS 'https://radar-cnpj.com/empresas/uf/DF/index.json'\n```\n\n### Município: Brasília\n\n[HTML](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/) · [JSON](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/index.json) · [MD](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/index.md) · [OKF](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/index.okf.md)\n\n```sh\ncurl -fsS 'https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/index.json'\n```\n\n### Bancos múltiplos em Brasília\n\n[HTML](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/cnae/6422100/) · [JSON](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/cnae/6422100/index.json) · [MD](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/cnae/6422100/index.md) · [OKF](https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/cnae/6422100/index.okf.md)\n\n```sh\ncurl -fsS 'https://radar-cnpj.com/empresas/uf/DF/cidade/brasilia-3fc9b36d48613cd3/cnae/6422100/index.json'\n```\n\n### Empresa de exemplo: Banco do Brasil\n\n[HTML](https://radar-cnpj.com/empresas/cnpj/00000000000191/) · [JSON](https://radar-cnpj.com/empresas/cnpj/00000000000191/index.json) · [MD](https://radar-cnpj.com/empresas/cnpj/00000000000191/index.md) · [OKF](https://radar-cnpj.com/empresas/cnpj/00000000000191/index.okf.md)\n\n```sh\ncurl -fsS 'https://radar-cnpj.com/empresas/cnpj/00000000000191/index.json'\n```\n\n## Outros acervos\n\n- [Endereços e CEPs](https://pontofato.com/enderecos/)\n- [Licitações e compras públicas](https://editalmd.com/licitacoes/)\n- [Empresas por CNPJ](https://radar-cnpj.com/empresas/)\n"},"servers":[{"url":"https://radar-cnpj.com/empresas"}],"paths":{"/index.json":{"get":{"operationId":"navegar0_json","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Nó do acervo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/No"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/index.md":{"get":{"operationId":"navegar0_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/index.okf.md":{"get":{"operationId":"navegar0_okf_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown com frontmatter OKF.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/index.json":{"get":{"operationId":"navegar1_json","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Nó do acervo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/No"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/index.md":{"get":{"operationId":"navegar1_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/index.okf.md":{"get":{"operationId":"navegar1_okf_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown com frontmatter OKF.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/index.json":{"get":{"operationId":"navegar2_json","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Nó do acervo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/No"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/index.md":{"get":{"operationId":"navegar2_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/index.okf.md":{"get":{"operationId":"navegar2_okf_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown com frontmatter OKF.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/cnae/{cnae}/index.json":{"get":{"operationId":"navegar3_json","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cnae","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Nó do acervo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/No"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/cnae/{cnae}/index.md":{"get":{"operationId":"navegar3_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cnae","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/uf/{uf}/cidade/{cidade}/cnae/{cnae}/index.okf.md":{"get":{"operationId":"navegar3_okf_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cidade","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"cnae","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown com frontmatter OKF.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/cnpj/{cnpj}/index.json":{"get":{"operationId":"navegar4_json","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"cnpj","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Nó do acervo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/No"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/cnpj/{cnpj}/index.md":{"get":{"operationId":"navegar4_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"cnpj","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}},"/cnpj/{cnpj}/index.okf.md":{"get":{"operationId":"navegar4_okf_md","description":"Siga as URLs de /index.json. Cidade, bairro e rua usam identificadores estáveis devolvidos pela árvore; não monte slugs pelo título. PNCP navega por modalidade, UF, ano, mês, dia e município de publicação; os caminhos anteriores permanecem válidos. CT usa ano, mês e dia da primeira observação (UTC), com lista diária paginada; prefixos antigos continuam válidos, sem contagem materializada. Campos de data ausentes usam sem-data.","parameters":[{"name":"cnpj","in":"path","required":true,"schema":{"type":"string","maxLength":253}},{"name":"depois","in":"query","schema":{"type":"string","maxLength":256},"description":"Cursor opaco de links.proximo."}],"responses":{"200":{"description":"Mesmo nó em Markdown com frontmatter OKF.","content":{"text/markdown":{"schema":{"type":"string"}}}},"304":{"description":"ETag confirmado, sem corpo."},"400":{"description":"HTTP 400; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"404":{"description":"HTTP 404; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"405":{"description":"HTTP 405; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"421":{"description":"HTTP 421; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"429":{"description":"HTTP 429; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}},"503":{"description":"HTTP 503; no-store. 429/503 incluem Retry-After.","content":{"application/json":{"schema":{"type":"object","required":["erro","api_index"],"properties":{"erro":{"type":"string"},"api_index":{"type":"string"}}}}}}}}}},"components":{"schemas":{"No":{"type":"object","required":["versao","servico","titulo","descricao","fonte","itens","links","pagina"],"properties":{"versao":{"const":"1"},"servico":{"type":"string"},"titulo":{"type":"string"},"descricao":{"type":"string"},"fonte":{"type":"string"},"guia":{"type":"object","description":"Na raiz: resumo, hierarquia, limites, exemplos com URLs por formato e links entre acervos.","additionalProperties":true},"atualizado_em":{"type":"string"},"total":{"type":"integer","minimum":0,"description":"Total materializado do recorte indexado; não é uma contagem da fonte viva."},"filhos":{"type":"integer","minimum":0,"description":"Categorias imediatamente abaixo deste nó; não é o total de registros descendentes."},"unidade":{"type":"string","enum":["endereços","compras","domínios","programas"]},"trilha":{"type":"array","maxItems":9,"description":"Ancestrais desde a raiz até o nó atual, com totais na mesma unidade. Disponível na hierarquia com contagens.","items":{"type":"object","required":["titulo","url","total","filhos"],"properties":{"titulo":{"type":"string"},"url":{"type":"string","format":"uri"},"total":{"type":"integer","minimum":0,"description":"Total materializado do recorte indexado; não é uma contagem da fonte viva."},"filhos":{"type":"integer","minimum":0}}}},"dados":{"type":"object","additionalProperties":true},"itens":{"type":"array","maxItems":20,"items":{"type":"object","required":["titulo","tipo","url"],"properties":{"titulo":{"type":"string"},"tipo":{"enum":["colecao","registro"]},"url":{"type":"string","format":"uri"},"total":{"type":"integer","minimum":0,"description":"Total materializado do recorte indexado; não é uma contagem da fonte viva."}}}},"links":{"type":"object","required":["self","raiz","pai","proximo","json","markdown","html","okf"],"properties":{"self":{"type":"string","format":"uri"},"raiz":{"type":"string","format":"uri"},"json":{"type":"string","format":"uri"},"markdown":{"type":"string","format":"uri"},"html":{"type":"string","format":"uri"},"okf":{"type":"string","format":"uri"},"pai":{"type":["string","null"],"format":"uri"},"proximo":{"type":["string","null"],"format":"uri"}}},"pagina":{"type":"object","required":["limite","continuacao"],"properties":{"limite":{"const":20},"continuacao":{"type":"boolean"}}}}}}}}