Cadastro, quadro societário e nove categorias de restrição pública, por CNPJ, em JSON. Uma chamada devolve o mesmo veredito que a tela do monitore.ai mostra.
A chave tem 40 caracteres e começa em mk_live_. Ela é
emitida por nós e mostrada uma única vez: guardamos apenas o hash, o
que significa que não existe reenviar uma chave
perdida. Se sumir, emitimos outra e revogamos a anterior.
x-api-keyToda rota é GET e devolve JSON.
# ficha cadastral + quadro societário curl -H "x-api-key: $CHAVE" \ https://api.monitore.ai/api/v1/empresas/33000167000101 # as nove categorias de restrição numa chamada só curl -H "x-api-key: $CHAVE" \ https://api.monitore.ai/api/v1/empresas/33000167000101/restricoes
Dados → Obter Dados → De Outras Fontes → Consulta em Branco → Editor Avançado. Cole o código abaixo e troque só a chave. Quando o Excel pedir credencial, escolha Anônima — a chave já vai no header.
let
Chave = "mk_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
Cnpj = "33000167000101",
Resposta = Json.Document(
Web.Contents(
"https://api.monitore.ai",
[
RelativePath = "api/v1/empresas/" & Cnpj,
Headers = [#"x-api-key" = Chave]
]
)
),
Socios = try Resposta[socios] otherwise {},
Tabela = Table.FromList(Socios, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Expandida = Table.ExpandRecordColumn(
Tabela, "Column1",
{"nome_socio", "cnpj_cpf_socio", "qualificacao_socio"},
{"Sócio", "CPF mascarado", "Qualificação"}
)
in
Expandida
Concatenar o CNPJ na URL faz o Excel tratar cada consulta como uma fonte de dados nova e quebrar a atualização automática com o erro de dynamic data source.
Esta API alimenta decisão de crédito. As três regras abaixo existem para que uma falha de infraestrutura nunca vire a frase "nada consta".
Base fora do ar responde 503. No consolidado, a fonte
volta null e aparece com
indisponivel: true no resumo. Sempre teste
resumo.parcial antes de concluir qualquer coisa.
404 é CNPJ que não existe na base. 200 com
listas vazias é empresa que existe e está limpa. Só a segunda
autoriza escrever "sem apontamentos".
Sai no formato ***123456**, em toda rota. Uma pessoa é
identificada pelo par nome + CPF mascarado — não existe id de sócio,
e não há como obter o CPF completo por aqui.
GET /api/v1/empresas/{cnpj}/restricoes responde "tem
pendência?" de uma vez. Pedir categoria a categoria custaria nove
requisições pelo mesmo resultado.
{
"cnpj": "33000167000101",
"resumo": {
"severidade": "ambar", // pior severidade entre as categorias
"parcial": false, // true = alguma categoria falhou
"total": 3,
"categorias": [
{ "categoria": "financeiro", "natureza": "multa",
"sujeitos": ["empresa", "socio"],
"n": 0, "nEmpresa": 0, "nSocios": 0, "severidade": null,
"historico": false, "ambiguo": false, "indisponivel": false },
{ "categoria": "mercadoCapitais", "natureza": "processo",
"sujeitos": ["empresa", "socio"],
"n": 3, "nEmpresa": 1, "nSocios": 2, "severidade": "ambar",
"historico": false, "ambiguo": false, "indisponivel": false }
]
},
"consultas": { /* detalhe de cada categoria, ou null */ }
}
| Valor | Significa |
|---|---|
vermelho |
Situação em aberto hoje: sanção vigente, prazo de inabilitação correndo. |
ambar |
Processo em andamento, achado já encerrado (histórico) ou homônimo indeterminado. Não é condenação. |
null |
Nada consta nessa categoria — desde que indisponivel seja false. |
Um processo em andamento é âmbar; vermelho só sai em condenação. Tratar os dois como iguais transforma uma acusação em sanção na tela do seu usuário.
Todas são GET, todas exigem
x-api-key. Detalhe de campo por campo na
referência.
| Rota | Devolve |
|---|---|
/api/v1/empresas?q= | Busca por nome ou CNPJ (autocomplete). |
/api/v1/empresas/{cnpj} | Ficha cadastral e quadro societário. |
/api/v1/empresas/{cnpj}/filiais | Estabelecimentos da mesma raiz de CNPJ. |
/api/v1/empresas/{cnpj}/historico | Alterações cadastrais, já descritas em português. |
/api/v1/empresas/{cnpj}/vinculos | Grafo de empresas ligadas por sócio em comum. |
/api/v1/empresas/{cnpj}/restricoes | As nove categorias num payload só. |
/api/v1/empresas/{cnpj}/restricoes/{categoria} | Uma categoria isolada — veja a lista abaixo. |
/api/v1/socios?q= | Busca de pessoa por nome. |
/api/v1/socios/empresas?nome=&cpf= | Empresas de que a pessoa participa. |
Cada categoria vem classificada em dois eixos: sujeitos, que diz se o apontamento pode ser do CNPJ ou de uma pessoa do quadro; e natureza, que diz o que o registro é.
| Categoria | Sujeitos | Natureza | O que traz |
|---|---|---|---|
financeiro | CNPJ + CPF | multa |
Sanção administrativa do setor financeiro. Número do processo, tipo
de penalidade e valor da multa por instância, se
houve recurso, e valorMultaVigente — a multa que vale
hoje, já resolvida entre as duas.
|
gestao | CNPJ + CPF | sancao |
Impedimento de exercer cargo de gestão em instituição financeira.
Penalidade, prazo em anos, início e fim do cumprimento, e
emCurso — se o prazo ainda corre hoje.
|
contratacaoPublica | CNPJ + CPF | sancao |
Impedimento de contratar com o poder público, punição por ato lesivo e acordos de leniência. Categoria da sanção, vigência de início e fim, e valor quando a lista publicar. |
mercadoCapitais | CNPJ + CPF | processo |
Processo sancionador do mercado de capitais. Número, objeto e ementa, situação, fase atual e última movimentação — mais um resumo que separa acusações de condenações. |
ambiental | CNPJ + CPF | multa |
Autuações e embargos. Valor da multa, área em hectares, UF e município, status e o enquadramento da infração. Única categoria paginada. |
trabalho | CNPJ + CPF | sancao |
Cadastro de empregadores autuados por trabalho análogo ao de escravo. Ano da ação fiscal, trabalhadores envolvidos, local e decisão — e distingue estar na lista hoje de já ter estado. |
tributarioFederal | CNPJ + CPF | divida |
Dívida ativa federal. Valor consolidado, quantas inscrições estão em cobrança e quantas já foram ajuizadas, quebra por origem do débito, e o detalhe inscrição a inscrição. |
insolvencia | só CNPJ | estado |
Recuperação judicial e falência. O estado, o nome como grafado na fonte (que é a evidência dele) e as publicações judiciais que o sustentam, com processo, tribunal e link. |
contasPublicas | CNPJ + CPF | sancao |
Contas julgadas irregulares e inabilitação. Processo e acórdão, data do trânsito em julgado, links oficiais e — só na inabilitação — prazo final e vigência. |
Toda categoria devolve nEmpresa e nSocios
separados, porque a pergunta que decide crédito é se a pendência é
da pessoa jurídica ou de alguém do quadro.
insolvencia é a única categoria que só fala do CNPJ.
Ali nSocios é 0 por construção, nunca por
ausência de achado.
multa | Sanção com valor em reais. |
sancao | Punição sem valor: impedimento, inidoneidade, inabilitação. |
divida | Débito. Não é punição. |
processo | Apuração em curso ou julgada. Não é condenação. |
estado | Situação jurídica da empresa. |
Multa é a sanção que tem valor em dinheiro. Um campo de dois valores mentiria em quatro das nove categorias.
E não some divida com sancao num total só:
isso pinta de inadimplente quem foi punido, e de punido quem só
deve.
O campo error é estável e distinto por causa raiz — cada
um pede uma ação diferente.
401 | api-key-ausente |
401 | api-key-invalida |
403 | api-key-revogada |
400 | cnpj-invalido |
404 | empresa-nao-encontrada |
503 | base indisponível (código por fonte) |
10 requisições por segundo por chave e 5 por
segundo por IP, com absorção de picos. Acima disso a borda responde
429.
Consultas em lote: sequencial com pequena pausa entre CNPJs rende mais que paralelismo agressivo, que só bate no limite.
Só em header, nunca em querystring — query fica gravada em log de proxy e em histórico de navegador.
A API não envia headers de CORS de propósito: uma chave vazada não pode ser usada por uma página web. O cliente é servidor, Excel ou agente.
A mesma API atende como servidor MCP: o Claude Desktop consulta CNPJ, sócios e restrições com a sua chave, sem você escrever código.