Sou responsável pelo Radar CNPJ. Este texto descreve o contrato público atual e uma chamada que executei em 11 de novembro de 2026. Não é certidão oficial nem relatório de crédito.

O que o produto resolve

A ficha gratuita junta, no mesmo JSON e pelo mesmo CNPJ:

  • a situação cadastral da Receita;
  • os cadastros de sanções da CGU (CEIS, CNEP, CEPIM e acordos de leniência) e a lista de licitantes inidôneos do TCU;
  • as inscrições da dívida ativa da União publicadas pela PGFN.

Você não precisa consultar cada fonte e cruzar o resultado à mão. A resposta traz a data de cada bloco. null significa que aquele bloco não foi conferido; zero numa fonte conferida significa que não havia registro nessa fonte.

Pré-requisitos

  • curl e, se for usar o MCP pelo cliente, um cliente com transporte HTTP (a documentação oficial cita Claude Code, Codex, Gemini, Cursor e VS Code).
  • Um CNPJ que você já tenha o direito de consultar. Aqui uso a matriz do Banco do Brasil (00000000000191), o mesmo exemplo da documentação do produto, porque é dado público de empresa de capital aberto.
  • Nada de instalação local do servidor. O MCP está em https://radar-cnpj.com/mcp (Streamable HTTP, protocolo 2025-06-18).
  • Para a ficha básica não é preciso conta, chave nem crédito.

Configurar o MCP

Os comandos abaixo saem da página oficial Para agentes. Não instalei Claude, Cursor nem VS Code neste teste; a conferência do protocolo foi feita com curl, mais adiante.

curl -s https://radar-cnpj.com/llms.txt claude mcp add --transport http radar-cnpj https://radar-cnpj.com/mcp codex mcp add radar-cnpj --url https://radar-cnpj.com/mcp gemini mcp add --transport http radar-cnpj https://radar-cnpj.com/mcp 

Configuração para .mcp.json (Claude Code):

{ "mcpServers": { "radar-cnpj": { "type": "http", "url": "https://radar-cnpj.com/mcp" } } } 

A mesma página oferece atalhos "Adicionar ao Cursor" e "Instalar no VS Code". Em cliente autenticado, a conexão OAuth já carrega o acesso da conta; não peça outra chave. Chamadas de conta na API HTTP usam X-Api-Key: mmk_… ou Authorization: Bearer mmo_…. Crédito avulso, quando houver, usa Authorization: Bearer cred_…. Não cole token real em tutorial nem em repositório.

1. Conferir a data da base (execução comprovada)

curl -s https://radar-cnpj.com/api/health 

Resposta obtida em 11/11/2026, de manhã (America/Sao_Paulo), HTTP 200:

{ "ok": true, "service": "api-cnpj", "db": "up", "import": { "dump_date": "2026-10-13", "loaded_at": "2026-10-15T13:40:10.000Z", "counts": { "socio": 28495961, "empresa": 70517437, "simples": 50806102, "estabelecimento": 73809379 } } } 

import.dump_date (2026-10-13) é a data de referência do cadastro da Receita nesta carga. loaded_at corresponde a 15/10/2026, 10:40 (America/Sao_Paulo). A ficha gratuita não é atualização em tempo real. Pagar uma consulta adicional também não atualiza o instantâneo da Receita nem o da PGFN.

O índice vivo da API, no mesmo dia, identificava o build d9df6565 e 29 ferramentas no MCP.

2. Se você só tem o nome, confirme o CNPJ (execução comprovada)

Há duas rotas públicas e grátis. Elas não devolvem a mesma ordem.

GET /api/sugerir aceita um texto de 3 a 120 caracteres e devolve até oito empresas, sem contato e sem nome pessoal. Pedi q=Banco do Brasil. A primeira linha não foi a matriz: veio a agência de Rondonópolis (00000000186864). As seguintes também eram estabelecimentos, vários com situação Baixada.

GET /api/busca exige termo ou filtro (varrer dezenas de milhões de estabelecimentos sem recorte não é busca). Com o nome, a UF e tipo=nome:

curl -s 'https://radar-cnpj.com/api/busca?q=BANCO%20DO%20BRASIL&uf=DF&tipo=nome&pageSize=5' 

O primeiro item foi a matriz, com HTTP 200:

  • CNPJ 00000000000191 (00.000.000/0001-91)
  • razão social BANCO DO BRASIL SA, fantasia DIRECAO GERAL
  • situação Ativa, Brasília-DF, Asa Norte
  • CNAE 6422100 (Bancos múltiplos, com carteira comercial)

A mesma página trouxe outros cadastros que apenas coincidem com o termo (por exemplo o BRB e o Banco Central). Confirme o CNPJ antes de abrir a ficha.

A ferramenta MCP equivalente à sugestão é suggest (HTTP: /api/sugerir, não /api/suggest). A da busca é search.

3. Ler a ficha gratuita (execução comprovada)

O CNPJ no caminho deve ter 14 caracteres, sem pontuação. Com pontos e barra a API responde 400 cnpj_invalido.

curl -s 'https://radar-cnpj.com/api/cnpj/00000000000191?temas=dados,sancoes,divida' 

HTTP 200, ok: true, temas: ["dados","sancoes","divida"]. Trechos da resposta de 11/11/2026:

{ "ok": true, "data": { "cnpj": "00000000000191", "cnpjFormatted": "00.000.000/0001-91", "matrizFilial": { "codigo": 1, "label": "Matriz" }, "razaoSocial": "BANCO DO BRASIL SA", "nomeFantasia": "DIRECAO GERAL", "situacao": { "codigo": 2, "label": "Ativa", "data": "2005-11-03T00:00:00.000Z", "motivo": "SEM MOTIVO" }, "dataInicio": "1966-08-01T00:00:00.000Z", "cnae": { "codigo": 6422100, "descricao": "Bancos múltiplos, com carteira comercial" }, "endereco": { "logradouro": "SAUN QUADRA 5 BLOCO B TORRE I, II, III", "municipio": "BRASILIA", "uf": "DF", "cep": "70040912" }, "contato": { "telefone1": "(61) 3•••••02", "email": "s••••@b••.com.br" }, "mascarado": true, "sancoes": { "total": 0, "vigentes": 0, "itens": [], "conferidoEm": { "ceis": "2026-11-09", "cepim": "2026-10-28", "cnep": "2026-11-09", "leniencia": "2026-11-10", "tcu": "2026-11-10" } }, "cnia": null, "dividaAtiva": { "inscricoes": 384, "valor": 509755673.88, "ajuizadas": 147, "referencia": "2026-09", "conferidoEm": "2026-10-22", "fonte": "PGFN — dados abertos da dívida ativa da União" } } } 

Como ler:

  • situacao.label é Ativa. situacao.data é a data da mudança cadastral (03/11/2005), não a data desta consulta.
  • Telefone e e-mail vieram mascarados, com mascarado: true. A revelação do dado completo é outra operação, paga.
  • Sanções vigentes: 0, com conferidoEm por cadastro. O CNIA (cnia) veio null: neste recorte gratuito ele não foi conferido.
  • A dívida tem 384 inscrições e valor total de R$ 509.755.673,88, referência 2026-09, conferida em 22/10/2026. O total não se lê sozinho. Na mesma resposta, a maior parte estava em "Garantia" (346 inscrições, R$ 469.726.539,78) ou "Suspenso por decisão judicial" (33 inscrições). "Em cobrança" tinha 5 inscrições e valor 0. A documentação do produto avisa: os totais misturam estados de cobrança diferentes; isto não é certidão da PGFN.

A mesma ficha pelo MCP (execução comprovada)

Primeiro, listar as ferramentas, como a documentação indica:

curl -s -XPOST https://radar-cnpj.com/mcp \ -H 'content-type: application/json' \ -H 'accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' 

HTTP 200. get_cnpj é somente leitura, exige cnpj e aceita temas. Em seguida:

curl -s -XPOST https://radar-cnpj.com/mcp \ -H 'content-type: application/json' \ -H 'accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_cnpj","arguments":{"cnpj":"00000000000191","temas":"dados,sancoes,divida"}}}' 

HTTP 200, isError ausente ou falso. O resultado veio como texto JSON com status: 200, a URL https://radar-cnpj.com/api/cnpj/00000000000191?temas=dados%2Csancoes%2Cdivida e o mesmo corpo da chamada HTTP: situação Ativa, sanções vigentes 0, 384 inscrições, mascarado: true.

No cliente, depois de configurar o servidor, basta pedir a ficha daquele CNPJ com os temas dados,sancoes,divida e ler os mesmos campos.

Erro (execução comprovada)

curl -s 'https://radar-cnpj.com/api/cnpj/123?temas=dados,sancoes,divida' 

HTTP 400:

{ "ok": false, "code": "cnpj_invalido", "error": "Use /api/cnpj/{CNPJ}: 14 caracteres sem pontuação: os 14 dígitos ou o CNPJ alfanumérico (12 letras A-Z ou dígitos e 2 dígitos verificadores), com os dígitos verificadores válidos." } 

A mesma mensagem aparece se o CNPJ for enviado com pontuação no caminho. CNPJ inexistente na base, segundo o catálogo, deve responder 404; não disparei esse caso neste teste.

Custo e limites

Valores lidos em 11/11/2026 em pricing.md e em GET /api/pricing. Confira essas URLs antes de gastar: o preço vigente é o do contrato ao vivo.

Grátis, sem consumir a franquia da consulta adicional:

  • pesquisa (/api/busca, /api/sugerir);
  • a ficha preparada GET /api/cnpj/:cnpj (e a ferramenta get_cnpj), com cache de 6 horas;
  • CEP;
  • um CNPJ acompanhado por dono.

A consulta adicional ao vivo (GET /api/consulta/cnpj/:cnpj ou ferramenta consulta_cnpj) tem franquia própria: 10 por dia, por conta (sem conta, por rede), somada nos portais. Depois disso, paga-se na chamada (na página em reais: R$ 0,0253 no crédito pré-pago; no x402 avulso, 0,01 USDC) ou com pacote/plano. Use cnia_atual=true só quando a tarefa exigir conferir a fonte do CNIA naquele pedido; se a fonte falhar, a API deve responder 503 sem cobrar.

Outros itens pagos, na página em reais daquela data: revelação de sócios e contatos (R$ 5,00 o pacote de 200, 90 dias); dossiê R$ 0,055; lote e chamada avulsa com o preço da consulta; 1.000 leituras de acervo por 30 dias a R$ 0,55; vaga extra de acompanhamento a R$ 0,55 por 30 dias, sem renovação automática. Planos de consulta e a carteira monitorada (esta, no cartão, renova por mês) estão na mesma tabela. O JSON de /api/pricing também lista equivalentes em dólar para x402 e crédito; não misture as duas tabelas sem reler a cotação.

Se a chamada for paga, a API pode devolver HTTP 402 com accepts[]. Não executei nenhuma operação paga neste texto.

Quando a ficha gratuita já basta, e quando não

Para perguntar se a empresa está ativa, se há sanção vigente nos cadastros cruzados e o que a PGFN publica sobre dívida, com as datas, a ficha gratuita já entrega o cruzamento. O valor está em não remontar CEIS, CNEP, CEPIM, leniência, TCU e PGFN a cada consulta.

Ela não substitui certidão, não aprova fornecedor e não revela sócios ou contatos. Se a tarefa exigir conferência do CNIA na hora, planilha de lote, dado sem máscara, dossiê com regra de risco ou acompanhamento depois da sessão, isso é acréscimo pago. Leia a cotação e use o direito que você já tiver.

Documentação: llms.txt, skill.md, índice da API, OpenAPI.