# Consulta CNPJ em Lote - Enriquecimento de Empresas (`brasildados/enriquecimento-lista-empresas-por-cnpj`) Actor

Faça consulta CNPJ em lote e enriqueça até 1.000 empresas brasileiras de uma vez. Receba razão social, nome fantasia, situação cadastral, atividades CNAE, contatos, endereço protegido e quadro societário. Aceita CNPJ com ou sem pontuação e exporta em JSON, CSV ou Excel via Batch ou Standby.

- **URL**: https://apify.com/brasildados/enriquecimento-lista-empresas-por-cnpj.md
- **Developed by:** [BrasilDados.org](https://apify.com/brasildados) (community)
- **Categories:** Lead generation, SEO tools, E-commerce
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 por cnpj encontrados

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Consulta CNPJ em Lote e Enriquecimento de Empresas

Enriqueça uma **lista de CNPJs** com dados cadastrais estruturados de empresas brasileiras. Envie até 1.000 CNPJs com ou sem pontuação e receba uma linha por empresa encontrada, pronta para CRM, prospecção B2B, análise de fornecedores e automações.

O Actor funciona em **Batch** e **Standby**, aceita entradas simples e permite exportar os resultados em JSON, CSV, Excel, XML e outros formatos disponíveis na Apify.

### 🔎 O que esta consulta CNPJ em lote retorna?

Cada resultado contém os dados disponíveis para um estabelecimento:

| Grupo | Campos principais |
|---|---|
| Empresa | CNPJ, razão social, nome fantasia, matriz/filial, natureza jurídica, porte e capital social |
| Situação | Situação cadastral, datas e tempo na situação atual |
| Endereço | Logradouro, número protegido, complemento, bairro, CEP, município, UF e país |
| Contatos | Telefones e e-mails em campos diretos e listas completas |
| Métricas | Idade da empresa, quantidade de sócios e quantidade de CNAEs secundários |
| Sócios | Nome, tipo, documento, qualificação, data de entrada e faixa etária |
| Atividades | CNAE principal e todos os CNAEs secundários |

Campos indisponíveis na fonte podem aparecer como `null` ou como listas vazias.

### ✅ Principais usos

- Enriquecer leads antes de importar para um CRM.
- Atualizar cadastros de clientes, fornecedores ou parceiros.
- Padronizar CNPJs recebidos com formatos diferentes.
- Identificar razão social, porte, situação cadastral e atividades econômicas.
- Organizar contatos empresariais e quadro societário.
- Integrar consulta CNPJ em lote a sistemas internos via API.

### Input

O Actor possui apenas um campo obrigatório:

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `cnpjs` | lista de textos | Sim | De 1 a 1.000 CNPJs, com ou sem pontuação |

O código normaliza a pontuação, valida os dígitos verificadores e remove valores repetidos automaticamente.

#### Exemplo de input

```json
{
  "cnpjs": [
    "33.000.167/0001-01",
    "60701190000104"
  ]
}
```

### 📦 Exemplo de resultado

```json
{
  "empresaId": "identificador-da-empresa",
  "cnpj": "33000167000101",
  "cnpjFormatado": "33.000.167/0001-01",
  "matriz": true,
  "razaoSocial": "EMPRESA BRASILEIRA S.A.",
  "nomeFantasia": "Empresa Brasileira",
  "naturezaJuridica": "2038",
  "naturezaJuridicaDescricao": "Sociedade de Economia Mista",
  "capitalSocial": "1000000.00",
  "capitalSocialNumerico": 1000000,
  "porte": "05",
  "porteDescricao": "Demais",
  "enteFederativo": null,
  "situacaoCadastral": "02",
  "situacaoCadastralDescricao": "Ativa",
  "dataSituacaoCadastral": "2020-03-10",
  "dataInicioAtividade": "2015-04-20",
  "logradouro": "Avenida Exemplo",
  "numero": "***",
  "complemento": "Sala 101",
  "bairro": "Centro",
  "cep": "20000000",
  "uf": "RJ",
  "municipioCodigo": "3304557",
  "municipioNome": "Rio de Janeiro",
  "pais": "1058",
  "paisDescricao": "Brasil",
  "telefone1": "2130000000",
  "telefone2": "21999990000",
  "email": "contato@empresa.com.br",
  "telefones": [
    {
      "tipo": "LANDLINE",
      "ddd": "21",
      "numero": "30000000",
      "telefoneCompleto": "2130000000"
    }
  ],
  "emails": [
    {
      "titularidade": "OWN",
      "endereco": "contato@empresa.com.br",
      "dominio": "empresa.com.br"
    }
  ],
  "enderecoCompleto": "Avenida Exemplo, ***, Sala 101, Centro, Rio de Janeiro - RJ, 20000000",
  "idadeEmpresaAnos": 11,
  "idadeEmpresaDias": 4132,
  "tempoSituacaoAtualDias": 2346,
  "totalSocios": 2,
  "totalCnaesSecundarios": 1,
  "tempoMedioSociosDias": 2800,
  "socios": [
    {
      "nome": "Bruno ******",
      "tipo": "2",
      "tipoDescricao": "Pessoa Física",
      "documento": "*****1234**",
      "qualificacao": "49",
      "qualificacaoDescricao": "Sócio-Administrador"
    }
  ],
  "cnaePrincipal": {
    "codigo": "6201-5/01",
    "descricao": "Desenvolvimento de programas de computador sob encomenda"
  },
  "cnaesSecundarios": [
    {
      "codigo": "6204-0/00",
      "descricao": "Consultoria em tecnologia da informação"
    }
  ]
}
```

### 🔒 Proteção de dados

- Sócio pessoa física: somente o primeiro nome seguido de `******`; CPF mascarado.
- Sócio pessoa jurídica: nome empresarial e CNPJ completos, sem máscara.
- Número do endereço: substituído por `***` quando disponível.
- Chaves internas nunca são incluídas no output ou nos logs públicos.

Use os dados com finalidade legítima e em conformidade com a LGPD.

### 💳 Cobrança Pay per event

O evento utilizado pelo código é **`result-item`**. Cada empresa efetivamente entregue gera exatamente um evento PPE.

- 1 empresa entregue = 1 evento.
- 400 empresas entregues = 400 eventos.
- CNPJ inválido, não encontrado ou não entregue = nenhum evento.

Se o limite de cobrança do usuário for atingido, o Actor interrompe a entrega com segurança e não libera itens sem cobrança confirmada.

### API Batch

```bash
curl -X POST "https://api.apify.com/v2/acts/brasildados~enriquecimento-lista-empresas-por-cnpj/run-sync-get-dataset-items?token=SEU_TOKEN_APIFY" \
  -H "Content-Type: application/json" \
  -d '{"cnpjs":["33.000.167/0001-01","60701190000104"]}'
```

### ⚡ API Standby

Endpoint único: `POST /enriquecer`

```bash
curl --compressed -X POST "https://brasildados--enriquecimento-lista-empresas-por-cnpj.apify.actor/enriquecer" \
  -H "Authorization: Bearer SEU_TOKEN_APIFY" \
  -H "Content-Type: application/json" \
  -d '{"cnpjs":["33.000.167/0001-01","60701190000104"]}'
```

Respostas grandes usam gzip quando o cliente envia `Accept-Encoding: gzip`. O corpo da requisição aceita até 5 MB. Erros de input retornam HTTP `400` com JSON no formato:

```json
{
  "error": "Descrição do erro"
}
```

### Outros Actors da BrasilDados

- [Gerador de Leads por CNAE - Consulta CNPJ em Lote](https://apify.com/brasildados/gerador-de-leads-scraper-cnae?fpr=t5lwzq): encontre empresas por segmento antes de enriquecer sua lista.
- [Conheça todos os Actors da BrasilDados](https://apify.com/brasildados?fpr=t5lwzq).
- [Crie sua conta na Apify](https://apify.com?fpr=t5lwzq).

### Perguntas frequentes

#### Posso enviar CNPJ com pontuação?

Sim. São aceitos `33.000.167/0001-01` e `33000167000101`. O Actor normaliza internamente.

#### Posso enviar vários CNPJs?

Sim. O input aceita até 1.000 valores por execução e o prefill mostra formatos diferentes.

#### CNPJs repetidos são cobrados mais de uma vez?

Não. Duplicidades são removidas antes da consulta e da cobrança.

#### Posso exportar para Excel?

Sim. Abra o Dataset da execução e escolha Excel, CSV, JSON, XML ou outro formato oferecido pela Apify.

# Actor input Schema

## `cnpjs` (type: `array`):

Informe de 1 a 1.000 CNPJs. Aceita o formato 33.000.167/0001-01 ou somente os 14 dígitos. Valores repetidos são removidos automaticamente.

## Actor input object example

```json
{
  "cnpjs": [
    "33.000.167/0001-01",
    "60701190000104"
  ]
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset com uma linha por CNPJ encontrado, pronto para exportação em JSON, CSV ou Excel.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "cnpjs": [
        "33.000.167/0001-01",
        "60701190000104"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("brasildados/enriquecimento-lista-empresas-por-cnpj").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "cnpjs": [
        "33.000.167/0001-01",
        "60701190000104",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("brasildados/enriquecimento-lista-empresas-por-cnpj").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "cnpjs": [
    "33.000.167/0001-01",
    "60701190000104"
  ]
}' |
apify call brasildados/enriquecimento-lista-empresas-por-cnpj --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,brasildados/enriquecimento-lista-empresas-por-cnpj"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RvusJhaXzzOsz5HGV/builds/1XaWhkDStKsT6Z4vf/openapi.json
