CNPJ Enricher - Brazilian Company Data
Pricing
from $5.00 / 1,000 results
CNPJ Enricher - Brazilian Company Data
Enrich Brazilian CNPJ numbers with complete company data from 3 official sources. Get legal name, trade name, address, phone, email, CNAE activity codes, tax regime (Simples/MEI), shareholders with roles, entry dates and nationality, plus state tax registrations. Fast bulk processing for B2B leads.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
SilentFlow
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
✨ Why use this scraper?
- 🏢 Complete company profiles — Get the full official registration record for any Brazilian business, including legal name, trade name, incorporation date, and legal nature
- 📍 Full address data — Retrieve structured address information including street, district, ZIP code, city, state, and IBGE municipal code
- 👥 Shareholder and management data — Access the board of directors and partners list with roles, tenure dates, and age range
- 🏭 CNAE activity classification — Get primary and secondary CNAE codes with full hierarchical breakdown (section, division, group, class)
- 💼 Tax regime information — Know instantly whether a company is enrolled in Simples Nacional or MEI
- 🔄 Bulk enrichment — Process hundreds of CNPJs in a single run and pay only for successful results
🎯 Use cases
- Enrich a CRM or lead database with official Brazilian company data before outreach
- Validate that a supplier or partner company is active and correctly registered
- Build a B2B prospecting list with contact emails and phone numbers
- Automate KYC/compliance checks by verifying legal status, shareholders, and CNAE activity
- Research market segments by aggregating CNAE classification across a list of companies
- Cross-reference state registration numbers for tax compliance audits
📥 Input parameters
| Field | Type | Required | Description |
|---|---|---|---|
cnpjs | array of strings | No | List of CNPJ numbers to look up. Accepts 14-digit raw format (00000000000191) or formatted (00.000.000/0001-91) |
maxItems | integer | No (default: 100) | Maximum number of results to return. Useful to control costs on large batches |
searchCnae | string | No | Search companies by CNAE activity code (e.g., 5611201 for restaurants, 6422100 for banks). Found companies are enriched automatically |
searchState | string | No | Filter search results by Brazilian state code (e.g., SP, RJ, MG). Used with CNAE search |
searchCity | string | No | Filter search results by city name in uppercase (e.g., SAO PAULO, RIO DE JANEIRO). Used with CNAE search |
📊 Output data
Each successful lookup returns a JSON object with the company's full official registration record. Results are saved to the Apify dataset as a JSON array — one object per CNPJ. If a CNPJ cannot be found or is invalid, the object includes an error field describing the issue.
🗂️ Data fields
Identity
| Field | Type | Description |
|---|---|---|
cnpj | string | CNPJ in formatted notation (XX.XXX.XXX/XXXX-XX) |
cnpjRaw | string | CNPJ as 14 raw digits |
razaoSocial | string | Official registered legal name |
nomeFantasia | string | Trade name / DBA |
naturezaJuridica | object | Legal nature with codigo and descricao |
capitalSocial | number | Share capital in BRL |
porte | string | Company size classification (e.g. DEMAIS, ME, EPP) |
tipo | string | Branch type: MATRIZ (headquarters) or FILIAL (branch) |
Activity
| Field | Type | Description |
|---|---|---|
cnaePrincipal | object | Primary CNAE with codigo, descricao, secao, divisao, grupo, classe |
cnaesSecundarios | array | Secondary CNAEs, each with the same structure as cnaePrincipal |
Address
| Field | Type | Description |
|---|---|---|
endereco.logradouro | string | Street name and type |
endereco.numero | string | Street number |
endereco.complemento | string | Address complement |
endereco.bairro | string | Neighborhood / district |
endereco.cep | string | ZIP code (CEP) |
endereco.cidade | string | City name |
endereco.estado | string | State abbreviation (UF) |
endereco.codigoIBGE | number | IBGE municipal code |
endereco.pais | string | Country name |
Contact
| Field | Type | Description |
|---|---|---|
telefone | string | Primary phone number |
fax | string | Fax number |
email | string | Official contact email address |
Status
| Field | Type | Description |
|---|---|---|
situacaoCadastral | string | Registration status (e.g. ATIVA, BAIXADA, SUSPENSA) |
dataSituacaoCadastral | string | Date of current status (ISO 8601) |
motivoSituacaoCadastral | string | Reason for current status |
dataInicioAtividade | string | Date of incorporation / start of activity (ISO 8601) |
situacaoEspecial | string | Special status flag, if any |
Tax regime
| Field | Type | Description |
|---|---|---|
simples.optante | boolean | Whether the company is enrolled in Simples Nacional |
simples.dataOpcao | string | Date of Simples Nacional enrollment |
simples.dataExclusao | string | Date of Simples Nacional exit, if applicable |
mei.optante | boolean | Whether the company is registered as MEI |
mei.dataOpcao | string | Date of MEI enrollment |
mei.dataExclusao | string | Date of MEI exit, if applicable |
Shareholders
| Field | Type | Description |
|---|---|---|
socios[].nome | string | Partner or director full name |
socios[].qualificacao | string | Role / qualification |
socios[].dataEntrada | string | Date joined the company (ISO 8601) |
socios[].faixaEtaria | string | Age range (e.g. 41 a 50 anos) |
socios[].pais | string | Country of the partner |
State registrations
| Field | Type | Description |
|---|---|---|
inscricoesEstaduais[].inscricaoEstadual | string | State registration number |
inscricoesEstaduais[].ativo | boolean | Whether the state registration is active |
inscricoesEstaduais[].estado | string | State abbreviation (UF) |
Metadata
| Field | Type | Description |
|---|---|---|
scrapedAt | string | Timestamp of the lookup (ISO 8601) |
dataSources | array | List of official databases that contributed data for this record |
error | string | Error message if the CNPJ could not be retrieved (field absent on success) |
🚀 Examples
Example input — enrich specific CNPJs
{"cnpjs": ["00000000000191", "33.000.167/0001-01"],"maxItems": 10}
Example input — search by CNAE code
{"searchCnae": "5611201","searchState": "SP","searchCity": "SAO PAULO","maxItems": 50}
Example output (truncated)
{"cnpj": "00.000.000/0001-91","cnpjRaw": "00000000000191","razaoSocial": "BANCO DO BRASIL SA","nomeFantasia": "DIRECAO GERAL","naturezaJuridica": {"codigo": "2038","descricao": "Sociedade de Economia Mista"},"capitalSocial": 120000000000,"porte": "DEMAIS","tipo": "MATRIZ","cnaePrincipal": {"codigo": "6422100","descricao": "Bancos múltiplos, com carteira comercial","secao": "K","divisao": "64","grupo": "64.2","classe": "64.22-1"},"cnaesSecundarios": [{"codigo": "6499999","descricao": "Outras atividades de serviços financeiros não especificadas anteriormente","secao": "K","divisao": "64","grupo": "64.9","classe": "64.99-9"}],"endereco": {"logradouro": "SAUN QUADRA 5 BLOCO B TORRE I, II, III","numero": "SN","complemento": "ANDAR T I SL S101 A S1602 T II SL C101 A C1602 TIII SL N101 A N1602","bairro": "ASA NORTE","cep": "70040912","cidade": "BRASILIA","estado": "DF","codigoIBGE": 5300108,"pais": "Brasil"},"telefone": "6134939002","fax": "6134931040","email": "secex@bb.com.br","situacaoCadastral": "ATIVA","dataSituacaoCadastral": "2005-11-03","motivoSituacaoCadastral": "SEM MOTIVO","dataInicioAtividade": "1966-08-01","simples": {"optante": false,"dataOpcao": "2007-07-01","dataExclusao": "2007-07-01"},"mei": {"optante": false,"dataOpcao": "2009-07-01","dataExclusao": "2009-07-01"},"socios": [{"nome": "TARCIANA PAULA GOMES MEDEIROS","qualificacao": "Presidente","dataEntrada": "2023-01-26","faixaEtaria": "41 a 50 anos","pais": "Brasil"}],"inscricoesEstaduais": [{"inscricaoEstadual": "0809427800174","ativo": true,"estado": "DF"}],"scrapedAt": "2026-04-08T14:55:18Z","dataSources": ["brasilapi", "receitaws", "cnpjws"]}
💻 Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("silentflow/cnpj-enricher").call(run_input={"cnpjs": ["00000000000191"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["razaoSocial"], item["email"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/cnpj-enricher').call({cnpjs: ['00000000000191']});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.razaoSocial, item.email));
📈 Performance & limits
- Processes hundreds of CNPJs per run
- Data sourced from 3 official Brazilian databases for maximum completeness
- Pay only for successful results
💡 Tips for best results
- Use raw 14-digit CNPJs (e.g.
00000000000191) for fastest processing - Formatted CNPJs (e.g.
00.000.000/0001-91) are also accepted and automatically normalized - Use
maxItemsto control costs when processing large batches - Branch CNPJs (filiais) return their own separate registration record — query each CNPJ individually
❓ FAQ
What data sources are used? Data is retrieved from 3 official Brazilian government databases and merged into a single enriched record per CNPJ.
Can I submit formatted CNPJs?
Yes. Both raw 14-digit format (00000000000191) and the standard formatted notation (00.000.000/0001-91) are accepted. The actor normalizes them automatically.
What happens if a CNPJ is invalid or not found?
The result object will include an error field describing the issue (e.g. invalid format, company not found). You are not charged for failed lookups.
Is historical data available? No. The actor returns current official registration data only. Information reflects the most recent state in the Brazilian federal registry.
📬 Support
For questions or feature requests, contact us through the Apify platform.