# Leads de Empresas CNPJ (Receita Federal) - CNAE e Cidade (`roomy_tweet/cnpj-leads`) Actor

Lista de empresas ativas do Brasil por CNAE, cidade e data de abertura, com e-mail, celular com link de WhatsApp e aviso de contato de contador. Base oficial de CNPJ da Receita, atualizada todo mês.

- **URL**: https://apify.com/roomy_tweet/cnpj-leads.md
- **Developed by:** [roomy_tweet](https://apify.com/roomy_tweet) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 empresas

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Leads de Empresas por CNPJ e CNAE (Receita Federal)

Monte listas de **empresas ativas do Brasil** por atividade (CNAE), cidade e data de abertura. Cada empresa vem com telefone, **celular com link de WhatsApp** e **e-mail**.

O Actor também **avisa quando o contato é do contador** ou da plataforma que abriu a empresa, e não da empresa em si. Isso evita mandar mensagem pro lugar errado.

Os dados vêm da base pública de CNPJ da Receita Federal, atualizada todo mês. A busca roda num índice próprio dessa base, então não depende de API de terceiros nem de site que bloqueia.

### Pra que serve

- **Prospecção B2B**: todos os restaurantes de Campinas, todas as clínicas odontológicas de BH, todas as transportadoras do Paraná.
- **Empresas novas**: CNPJs abertos nos últimos 30 dias numa cidade, que é o público de contadores, bancos, maquininhas, software de gestão e seguros.
- **Mapeamento de mercado**: quantas empresas de um ramo existem por cidade, porte e regime tributário.

### Como usar

1. **O quê:** escolha o ramo em **CNAEs** (`5611` = restaurantes, bares e lanchonetes) ou em **Palavras no nome** (`pizza`). Não sabe o código? Procure na [busca de CNAE do IBGE](https://concla.ibge.gov.br/busca-online-cnae.html).
2. **Onde:** escolha **UFs** ou **Municípios** (`Campinas, SP`).
3. **Refinar, se quiser:** data de abertura, porte, Simples Nacional, só com celular ou e-mail, ignorar contato de contador.
4. Clique em **Start**. O resultado aparece na aba **Leads** e pode ser baixado em Excel, CSV ou JSON.

### Quanto custa

Você paga só pelas empresas que receber, mais uma taxa de início de fração de centavo por execução.

| O quê                             | Preço                                   |
| --------------------------------- | --------------------------------------- |
| Cada empresa entregue             | **US$0,0015** (US$1,50 por mil)         |
| Sócios, se ligar "Incluir sócios" | + US$0,001 por empresa que tiver sócios |

**Exemplos:**

- 1.000 empresas custam US$1,50.
- 1.000 empresas com sócios, se 30% delas tiverem sócio, custam US$1,80.
- Os US$5 mensais do plano grátis da Apify dão pra ~3.300 empresas.

Pra controlar o gasto, use **Máximo de resultados** ou o limite de custo da execução.

### Filtros

| Campo                               | Exemplo                              | Como funciona                                                                                                                                                                                                         |
| ----------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CNAEs                               | `5611201`, `5611`, `56`, `5611-2/01` | Aceita o código inteiro ou só o começo. Olha a atividade principal.                                                                                                                                                   |
| Buscar também nos CNAEs secundários |                                      | Inclui quem tem o CNAE como atividade secundária.                                                                                                                                                                     |
| Palavras no nome                    | `pizza`, `auto pecas`                | Procura um trecho na razão social e no nome fantasia, sem ligar pra acento e maiúscula: "pizza" também acha PIZZARIA. Prefira palavras com mais de 3 letras, porque "ar", por exemplo, aparece no meio de muito nome. |
| UFs                                 | `SP`, `MG`                           | Vazio = Brasil inteiro.                                                                                                                                                                                               |
| Municípios                          | `Campinas, SP`, `3509502`            | Nome com UF ou código IBGE.                                                                                                                                                                                           |
| Abertas a partir de / até           | `2026-09-01`, `30 days`              | Data de início de atividade. Aceita data relativa.                                                                                                                                                                    |
| Porte                               | MEI, ME, EPP, Demais                 |                                                                                                                                                                                                                       |
| Simples Nacional                    | sim / não / tanto faz                |                                                                                                                                                                                                                       |
| Capital social                      | mínimo e máximo em R$                |                                                                                                                                                                                                                       |
| Só matrizes                         |                                      | Tira as filiais.                                                                                                                                                                                                      |
| Só com telefone / celular / e-mail  |                                      |                                                                                                                                                                                                                       |
| Ignorar e-mail/telefone de contador |                                      | Ver abaixo.                                                                                                                                                                                                           |
| Incluir sócios                      |                                      | Quadro de sócios (QSA), cobrado à parte.                                                                                                                                                                              |
| Máximo de resultados                | `1000`                               | `0` = sem limite.                                                                                                                                                                                                     |

Os filtros se somam. Só entram empresas com situação **ativa** na Receita.

### O que vem em cada empresa

Exemplo fictício:

```json
{
    "cnpj": "12345678000195",
    "cnpjFormatado": "12.345.678/0001-95",
    "razaoSocial": "PIZZARIA EXEMPLO LTDA",
    "nomeFantasia": "PIZZARIA EXEMPLO",
    "tipo": "MATRIZ",
    "dataAbertura": "2026-09-15",
    "cnaePrincipal": "5611201",
    "cnaePrincipalDescricao": "Restaurantes e similares",
    "cnaesSecundarios": ["5611203"],
    "naturezaJuridicaDescricao": "Sociedade Empresária Limitada",
    "porte": "ME",
    "mei": false,
    "simples": true,
    "capitalSocial": 50000,
    "enderecoCompleto": "RUA DAS FLORES, 100 - SALA 2, CENTRO, Campinas - SP, 13010-000",
    "municipio": "Campinas",
    "codigoIbge": "3509502",
    "uf": "SP",
    "telefones": [
        { "numero": "+551930000000", "celular": false, "compartilhado": true },
        { "numero": "+5519990000000", "celular": true, "compartilhado": false }
    ],
    "telefonePrincipal": "+5519990000000",
    "celular": "+5519990000000",
    "whatsapp": "https://wa.me/5519990000000",
    "email": "contato@exemplo.com.br",
    "emailGratuito": false,
    "emailCompartilhado": false,
    "dataReferencia": "2026-10-10"
}
```

O endereço também vem separado em campos (`logradouro`, `numero`, `complemento`, `bairro`, `cep`). A aba **Leads** mostra uma tabela resumida, e o download traz todos os campos.

| Campo                                  | O que significa                                                                                        |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `telefonePrincipal`                    | Primeiro telefone que não é do contador (se todos forem, o primeiro).                                  |
| `celular` / `whatsapp`                 | Primeiro celular e o link `wa.me` pra ele.                                                             |
| `compartilhado` / `emailCompartilhado` | O contato se repete em 5 ou mais empresas diferentes: quase sempre é do contador ou de uma plataforma. |
| `emailGratuito`                        | E-mail de Gmail, Hotmail, Yahoo, Outlook e afins.                                                      |
| `porte`                                | MEI, ME, EPP, DEMAIS ou NAO_INFORMADO.                                                                 |
| `dataReferencia`                       | Data da base da Receita usada na busca.                                                                |

#### Telefones e WhatsApp

A Receita guarda os telefones com 8 dígitos, inclusive os celulares. Quando o número começa com 6, 7, 8 ou 9, o Actor acrescenta o 9 na frente e devolve no formato internacional (`+55` + DDD + número), com o link do WhatsApp. Isso não garante que o número tenha WhatsApp ativo.

#### E-mail e telefone de contador

Muita empresa é aberta por um escritório de contabilidade ou por uma plataforma de abertura de CNPJ. Nesse caso, o e-mail e o telefone cadastrados na Receita são os deles.

Na base de outubro/2026, **17,7% das empresas ativas** usam um e-mail que se repete em 5 ou mais CNPJs diferentes. O e-mail de uma única plataforma de abertura aparece em mais de 140 mil empresas.

- Esses contatos vêm marcados (`emailCompartilhado: true` e `compartilhado: true`).
- Ligando **Ignorar e-mail/telefone de contador**, eles saem do resultado, e os filtros "Só com..." passam a contar só os contatos que sobram.
- Filiais da mesma empresa não contam como repetição.

### Velocidade

- **Com CNAE e local:** a busca leva segundos.
- **Com CNAE secundário ou só palavra no nome:** a busca passa por todas as atividades das UFs escolhidas. O estado de São Paulo inteiro leva cerca de 1 minuto.
- **Sem UF nem município:** a busca percorre o Brasil inteiro e leva alguns minutos.

### Empresas novas todo mês

Pra receber as empresas abertas recentemente, salve uma **Task** com o ramo, a cidade e **Abertas a partir de** = `1 month`. Depois crie um **Schedule** mensal pra ela na Apify. Cada execução traz as empresas abertas no último mês que já estão na base.

### Perguntas frequentes

**Os dados são em tempo real?**
Não. A base é a última publicada pela Receita, que sai uma vez por mês. O campo `dataReferencia` mostra a data, e empresas abertas depois dela ainda não aparecem.

**Dá pra consultar uma lista de CNPJs que eu já tenho?**
Ainda não. Este Actor busca empresas por filtros.

**Vem empresa baixada, inapta ou suspensa?**
Não, só ativas.

**Em que ordem vêm as empresas?**
Por estado, atividade e município. Com **Máximo de resultados**, você recebe as primeiras nessa ordem, não uma amostra aleatória. Pra receber todas, deixe em `0`.

**Todo celular tem WhatsApp?**
Não necessariamente. O link é montado a partir do número cadastrado.

**Os contatos são confiáveis?**
São os que a empresa ou o contador informaram à Receita, e podem estar desatualizados. Use as marcações de contador pra separar os contatos que são da própria empresa.

**Dá pra usar pela API ou ligar no meu CRM?**
Sim. Como qualquer Actor da Apify, ele roda pela API e funciona com integrações como Make, Zapier e n8n.

**Achei um erro.**
Abra uma issue na aba **Issues**.

### Dados pessoais (LGPD)

Os dados são públicos e vêm da política de dados abertos da Receita Federal. Mesmo assim, MEI e sócios são pessoas físicas.

- O CPF dos sócios já vem mascarado pela própria Receita.
- Os sócios só entram se você pedir.
- Usar os contatos pra prospecção é responsabilidade de quem roda o Actor: respeite a LGPD, ofereça descadastro e não envie spam.

### Fonte

Receita Federal do Brasil, Dados Abertos do CNPJ: Empresas, Estabelecimentos, Simples Nacional e Sócios. Os municípios são cruzados com o código IBGE.

***

### In English: Brazilian company leads by CNPJ

Build lists of **active Brazilian companies** by industry code (CNAE), state, city and opening date, from the official Receita Federal CNPJ open data (28M active establishments, refreshed monthly).

**Each company comes with:**

- phone numbers in international format;
- mobile numbers with a WhatsApp link;
- e-mail;
- full address, company size, Simples/MEI tax status;
- optionally, the partners (QSA).

Contacts that repeat across 5 or more companies are flagged. Those usually belong to the company's accountant, and you can drop them with one switch.

**Pricing:** US$1.50 per 1,000 companies, plus US$1.00 per 1,000 companies that come with partners when you turn partners on.

# Actor input Schema

## `cnaes` (type: `array`):

Códigos CNAE, completos ou só o começo: "5611201" (restaurantes), "5611" (restaurantes, bares e lanchonetes), "56" (toda a alimentação). Também aceita "5611-2/01". Olha a atividade principal da empresa. Pra buscar um código, use a busca de CNAE do IBGE (concla.ibge.gov.br).

## `incluirCnaesSecundarios` (type: `boolean`):

Também traz empresas que têm o CNAE como atividade secundária. A busca fica mais lenta: o estado de SP inteiro leva cerca de 1 minuto.

## `palavrasNoNome` (type: `array`):

Só empresas cuja razão social ou nome fantasia contém alguma dessas palavras, sem ligar pra acento e maiúscula. "pizza" acha PIZZARIA DO ZE; "auto pecas" acha AUTO PEÇAS SILVA. Funciona sozinho ou junto com CNAE.

## `ufs` (type: `array`):

Estados. Vazio = Brasil inteiro, ou só os estados dos municípios escolhidos.

## `municipios` (type: `array`):

Cidades, como "Campinas, SP", "Belo Horizonte/MG" ou o código IBGE "3509502". Sem o estado, entram todas as cidades com esse nome.

## `abertasDesde` (type: `string`):

Data mínima de abertura da empresa: AAAA-MM-DD ou relativa, como "30 days" ou "3 months", contada a partir do dia da execução.

## `abertasAte` (type: `string`):

Data máxima de abertura da empresa: AAAA-MM-DD ou relativa.

## `portes` (type: `array`):

MEI, Microempresa (ME), Empresa de pequeno porte (EPP) ou Demais (médias e grandes). Vazio = todos.

## `simples` (type: `string`):

Filtra pela opção pelo Simples Nacional na data da base.

## `apenasMatriz` (type: `boolean`):

Tira as filiais: fica só o estabelecimento matriz de cada empresa.

## `capitalMinimo` (type: `integer`):

Em reais. Deixe vazio pra não filtrar.

## `capitalMaximo` (type: `integer`):

Em reais. Deixe vazio pra não filtrar.

## `exigirTelefone` (type: `boolean`):

Só empresas com pelo menos um telefone cadastrado.

## `exigirCelular` (type: `boolean`):

Só empresas com celular. O número sai no formato +55 com o 9 na frente e um link do WhatsApp.

## `exigirEmail` (type: `boolean`):

Só empresas com e-mail cadastrado.

## `ignorarContatosCompartilhados` (type: `boolean`):

Tira do resultado os e-mails e telefones que se repetem em 5 ou mais empresas diferentes, quase sempre do contador ou da plataforma que abriu o CNPJ. Com isso ligado, os filtros "Só com..." contam só os contatos que sobram. Desligado, esses contatos vêm marcados como compartilhados.

## `incluirSocios` (type: `boolean`):

Adiciona o quadro de sócios (QSA): nome, qualificação, data de entrada e faixa etária. O CPF vem mascarado pela própria Receita. Cobrado à parte, só nas empresas que têm sócios.

## `maxResultados` (type: `integer`):

Para depois de entregar esse número de empresas. Use pra controlar o gasto. 0 = sem limite.

## Actor input object example

```json
{
  "cnaes": [
    "5611201"
  ],
  "incluirCnaesSecundarios": false,
  "ufs": [],
  "municipios": [
    "Campinas, SP"
  ],
  "portes": [],
  "simples": "qualquer",
  "apenasMatriz": false,
  "exigirTelefone": false,
  "exigirCelular": false,
  "exigirEmail": false,
  "ignorarContatosCompartilhados": false,
  "incluirSocios": false,
  "maxResultados": 1000
}
```

# Actor output Schema

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

No description

# 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 = {
    "cnaes": [
        "5611201"
    ],
    "municipios": [
        "Campinas, SP"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("roomy_tweet/cnpj-leads").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 = {
    "cnaes": ["5611201"],
    "municipios": ["Campinas, SP"],
}

# Run the Actor and wait for it to finish
run = client.actor("roomy_tweet/cnpj-leads").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 '{
  "cnaes": [
    "5611201"
  ],
  "municipios": [
    "Campinas, SP"
  ]
}' |
apify call roomy_tweet/cnpj-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,roomy_tweet/cnpj-leads"
        }
    }
}
```

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/Jvo49gfn6YEDlyVSr/builds/DdCFpNSWo8HAVjfOM/openapi.json
