---
title: "API de CNPJ para automação"
description: "Consulte e busque empresas no n8n, Make ou Zapier pelo nó HTTP Request: chave no header, JSON previsível, custo declarado e erros com código estável."
canonical: "https://cnpj.ia.br/api-cnpj-para-automacao"
date_modified: 2026-09-03
source: "cnpj.ia.br"
---

para quem automatiza fluxos · base agosto/2026

# API de CNPJ para automação

Consulte e busque empresas no n8n, Make ou Zapier pelo nó HTTP Request: chave no header, JSON previsível, custo declarado e erros com código estável.

[Criar chave grátis](https://app.cnpj.ia.br/signup) [Erros e retentativas](https://cnpj.ia.br/docs/erros-e-retentativas)

Automação de cadastro, enriquecimento ou prospecção precisa de uma API que responda sempre no mesmo formato, cobre o que declarou e diga com clareza quando repetir. É isso: JSON com `data` e `meta`, custo em créditos conhecido antes da chamada, erros custam 0 e cada um traz `retryable`; o `429` traz `Retry-After`. Funciona em qualquer ferramenta que faça uma requisição HTTP: n8n, Make, Zapier, Pipedream ou um cron.

## O fluxo em três passos

1. Guarde a chave como credencial

   No n8n, uma credencial Header Auth com Authorization: Bearer SUA_CHAVE. Nunca no corpo do fluxo, nunca em nó de código versionado.

   ```
   Authorization: Bearer cnpj_live_…
   ```

2. Um nó HTTP Request por operação

   GET /v1/cnpjs/{cnpj} para enriquecer um registro; GET /v1/cnpjs com filtros para descobrir empresas. O JSON volta com data e meta.

   ```
   GET https://api.cnpj.ia.br/v1/cnpjs/{{ $json.cnpj }}?profile=full
   ```

3. Trate os erros pelo código, não pelo texto

   Com a resposta completa ligada no nó, um IF sobre body.error.retryable decide entre repetir (esperando o header Retry-After, quando vier), corrigir o dado ou parar. Erros não consomem crédito.

   ```
   IF {{ $json.body.error.retryable }} → Wait {{ $json.headers['retry-after'] || 2 }}s → repetir
   ```

## Configuração dos nós

Não há nó comunitário ainda; o nó HTTP Request resolve. Os blocos abaixo são os parâmetros a preencher no nó, não um export importável. Make e Zapier funcionam pelo módulo HTTP de cada um, com a chave guardada como conexão.

#### n8n · HTTP Request (consulta)

```json
{
  "node": "HTTP Request",
  "method": "GET",
  "url": "https://api.cnpj.ia.br/v1/cnpjs/{{ $json.cnpj }}",
  "queryParameters": { "profile": "full" },
  "authentication": "genericCredentialType",
  "genericAuthType": "httpHeaderAuth",
  "headerAuth": { "name": "Authorization", "value": "Bearer <credencial>" }
}
```

#### n8n · HTTP Request (busca paginada)

```json
{
  "node": "HTTP Request",
  "method": "GET",
  "url": "https://api.cnpj.ia.br/v1/cnpjs",
  "queryParameters": {
    "uf": "PR", "municipio": "4106902", "cnae": "1091102",
    "situacao": "ATIVA", "simples": "true",
    "cursor": "{{ $json.meta.next_cursor }}"
  },
  "pagination": { "stopWhen": "{{ $response.body.meta.next_cursor === null }}" }
}
```

#### Make / Zapier

```
Módulo HTTP → Make a request
URL:    https://api.cnpj.ia.br/v1/cnpjs/{cnpj}?profile=basic
Método: GET
Header: Authorization: Bearer <chave guardada como conexão>
Parse:  JSON → data.razao_social, data.situacao_cadastral.descricao, meta.data_as_of
```

## Campos mais usados

| Campo | Perfil | Descrição |
| --- | --- | --- |
| [`cnpj`](https://cnpj.ia.br/docs/campos#campo-cnpj) | basic | CNPJ do estabelecimento, 14 caracteres sem pontuação, com zeros à esquerda. Vem da Receita Federal; aceita entrada numérica ou alfanumérica, com ou sem pontuação. |
| [`razao_social`](https://cnpj.ia.br/docs/campos#campo-razao_social) | basic | Nome empresarial registrado na Receita Federal. É o único nome sempre presente. |
| [`situacao_cadastral.codigo`](https://cnpj.ia.br/docs/campos#campo-situacao_cadastral.codigo) | basic | Código da situação cadastral do estabelecimento na Receita Federal, com dois dígitos. É o campo que diz se a empresa está ativa. |
| [`endereco.municipio`](https://cnpj.ia.br/docs/campos#campo-endereco.municipio) | basic | Nome do município de jurisdição do estabelecimento, traduzido pela tabela de municípios da Receita Federal. |
| [`endereco.uf`](https://cnpj.ia.br/docs/campos#campo-endereco.uf) | basic | Sigla da unidade da federação do estabelecimento, campo da Receita Federal. |
| [`has_email`](https://cnpj.ia.br/docs/campos#campo-has_email) | basic | Indica se a empresa tem e-mail na base, sem revelar o e-mail. Sinal derivado, calculado no processamento da Oportunidados; serve para filtrar antes de gastar o perfil `full`. |
| [`email`](https://cnpj.ia.br/docs/campos#campo-email) | full | Endereço de correio eletrônico do contribuinte, campo da Receita Federal. `null` quando a empresa não tem e-mail na base. |
| [`meta.next_cursor`](https://cnpj.ia.br/docs/campos#campo-meta.next_cursor) | meta | Cursor opaco da próxima página da busca. `null` na última página; ignorado nas outras operações. |
| [`meta.credits_remaining`](https://cnpj.ia.br/docs/campos#campo-meta.credits_remaining) | meta | Créditos restantes na conta, somando franquia do plano e pacotes avulsos. |

## Regras que evitam surpresa no fluxo

- **Paginação da busca**: repita com `cursor = meta.next_cursor` até vir `null`; mudar um filtro invalida o cursor. Cada empresa retornada custa 1 crédito, e `meta.total_count_capped` na primeira página dá a contagem até o teto de exibição, ou um mínimo quando vem com `+`, antes de você percorrer tudo.
- **Rate limit por conta**: todas as chaves e fluxos somam no mesmo contador. Em `429 rate_limited`, espere `Retry-After`; em lote grande, coloque um nó Wait entre páginas em vez de disparar em paralelo.
- **Franquia**: `402 quota_exceeded` é hard cap. Consulte `GET /v1/usage` no início do fluxo e compare com o custo estimado; nada é cobrado sem uma ação sua.
- **`404 not_found` é resultado**: CNPJ válido que não existe na base não é falha do fluxo, e custa 0.
- **Data da base**: `meta.data_as_of` diz qual foto mensal respondeu; grave junto com o registro enriquecido.

## Tier indicado

**Starter** é o plano indicado: o de menor mensalidade entre os que incluem a busca de empresas.

O Free não atende a este fluxo porque não inclui a busca de empresas.

- 15 mil créditos por mês
- 30 requisições por minuto
- R$ 0,0196 por consulta `full`
- R$ 0,0033 por empresa retornada na busca

[Todos os planos, os pesos por operação e os pacotes avulsos](https://cnpj.ia.br/precos)

## Perguntas frequentes

**Existe um nó do n8n para o cnpj.ia.br?**

Ainda não. O nó HTTP Request cobre tudo: uma credencial Header Auth com a chave, a URL da operação e o parse do JSON. A receita completa está nesta página; um nó comunitário está no radar, sem data.

**Funciona no Make e no Zapier?**

Sim, pelo módulo HTTP de cada um: método GET, a URL da operação e o header `Authorization: Bearer` com a chave guardada como conexão. O JSON de resposta é o mesmo em qualquer cliente.

**Como repetir uma chamada que falhou sem duplicar custo?**

Repita só quando `error.retryable` for verdadeiro, esperando o header `Retry-After` quando ele vier. Erros não consomem crédito, então repetir um `429`, um `503` ou um `504` não custa nada; só respostas `200` são cobradas.

**Posso disparar muitas consultas em paralelo?**

Até o limite de requisições por minuto do seu plano, que é por conta. Acima disso a API responde `429 rate_limited` com `Retry-After`. Em lotes, um nó Wait entre chamadas ou entre páginas evita o erro.

**O que acontece quando a franquia do mês acaba no meio do fluxo?**

A API responde `402 quota_exceeded` e o fluxo para de receber dados até o reset ou até você subir de plano ou, sendo assinante pago, comprar um pacote. Nada é cobrado automaticamente. Consultar `GET /v1/usage` no início do fluxo evita a surpresa.

**Como sei a data dos dados que gravei?**

Toda resposta de consulta e busca traz `meta.data_as_of`, a data da foto mensal da Receita Federal. Grave esse campo junto com o registro; é ele que diz se vale reenriquecer depois da próxima carga.

## Para continuar

- [Busca de empresas](https://cnpj.ia.br/docs/busca-empresas)
- [Erros e retentativas](https://cnpj.ia.br/docs/erros-e-retentativas)
- [cnpj.ia.br vs ReceitaWS: qual escolher?](https://cnpj.ia.br/comparar/receitaws)

[Criar chave grátis](https://app.cnpj.ia.br/signup)
