CNPJ Enricher - Brazilian Company Data avatar

CNPJ Enricher - Brazilian Company Data

Pricing

from $5.00 / 1,000 results

Go to Apify Store
CNPJ Enricher - Brazilian Company Data

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

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldTypeRequiredDescription
cnpjsarray of stringsNoList of CNPJ numbers to look up. Accepts 14-digit raw format (00000000000191) or formatted (00.000.000/0001-91)
maxItemsintegerNo (default: 100)Maximum number of results to return. Useful to control costs on large batches
searchCnaestringNoSearch companies by CNAE activity code (e.g., 5611201 for restaurants, 6422100 for banks). Found companies are enriched automatically
searchStatestringNoFilter search results by Brazilian state code (e.g., SP, RJ, MG). Used with CNAE search
searchCitystringNoFilter 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

FieldTypeDescription
cnpjstringCNPJ in formatted notation (XX.XXX.XXX/XXXX-XX)
cnpjRawstringCNPJ as 14 raw digits
razaoSocialstringOfficial registered legal name
nomeFantasiastringTrade name / DBA
naturezaJuridicaobjectLegal nature with codigo and descricao
capitalSocialnumberShare capital in BRL
portestringCompany size classification (e.g. DEMAIS, ME, EPP)
tipostringBranch type: MATRIZ (headquarters) or FILIAL (branch)

Activity

FieldTypeDescription
cnaePrincipalobjectPrimary CNAE with codigo, descricao, secao, divisao, grupo, classe
cnaesSecundariosarraySecondary CNAEs, each with the same structure as cnaePrincipal

Address

FieldTypeDescription
endereco.logradourostringStreet name and type
endereco.numerostringStreet number
endereco.complementostringAddress complement
endereco.bairrostringNeighborhood / district
endereco.cepstringZIP code (CEP)
endereco.cidadestringCity name
endereco.estadostringState abbreviation (UF)
endereco.codigoIBGEnumberIBGE municipal code
endereco.paisstringCountry name

Contact

FieldTypeDescription
telefonestringPrimary phone number
faxstringFax number
emailstringOfficial contact email address

Status

FieldTypeDescription
situacaoCadastralstringRegistration status (e.g. ATIVA, BAIXADA, SUSPENSA)
dataSituacaoCadastralstringDate of current status (ISO 8601)
motivoSituacaoCadastralstringReason for current status
dataInicioAtividadestringDate of incorporation / start of activity (ISO 8601)
situacaoEspecialstringSpecial status flag, if any

Tax regime

FieldTypeDescription
simples.optantebooleanWhether the company is enrolled in Simples Nacional
simples.dataOpcaostringDate of Simples Nacional enrollment
simples.dataExclusaostringDate of Simples Nacional exit, if applicable
mei.optantebooleanWhether the company is registered as MEI
mei.dataOpcaostringDate of MEI enrollment
mei.dataExclusaostringDate of MEI exit, if applicable

Shareholders

FieldTypeDescription
socios[].nomestringPartner or director full name
socios[].qualificacaostringRole / qualification
socios[].dataEntradastringDate joined the company (ISO 8601)
socios[].faixaEtariastringAge range (e.g. 41 a 50 anos)
socios[].paisstringCountry of the partner

State registrations

FieldTypeDescription
inscricoesEstaduais[].inscricaoEstadualstringState registration number
inscricoesEstaduais[].ativobooleanWhether the state registration is active
inscricoesEstaduais[].estadostringState abbreviation (UF)

Metadata

FieldTypeDescription
scrapedAtstringTimestamp of the lookup (ISO 8601)
dataSourcesarrayList of official databases that contributed data for this record
errorstringError 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 ApifyClient
client = 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 maxItems to 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.