Brazil Company Finder (CNPJ, English industry labels)
Pricing
$3.00 / 1,000 company results
Brazil Company Finder (CNPJ, English industry labels)
Search every active Brazilian company (CNPJ) by industry (CNAE), state, city, size, age and share capital. Pre-cleaned Receita Federal data with English CNAE labels, HTTP-verified websites and an accountant-contact filter. No 25 GB raw download.
Pricing
$3.00 / 1,000 company results
Rating
0.0
(0)
Developer
LatSouth Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Brazil Company Finder: every active Brazilian company (CNPJ), filterable, in English
Search 10.6 million active Brazilian companies and branches by industry, state, city, size, age and share capital. You get clean records with English industry labels, an HTTP-verified website, the registered phone and e-mail, and a filter that removes accountant contacts. No 25 GB government download, no Portuguese codebook, no ETL.
Built from the official open-data release of Brazil's federal tax authority (Receita Federal, Cadastro Nacional da Pessoa Jurídica). It is the same registry that powers every Brazilian B2B list, already cleaned and indexed.
Who it's for
- Sales and SDR teams going into Brazil who need an account list by industry and region: "software companies in São Paulo with a corporate website", "dental clinics in Minas Gerais opened since 2022".
- Market sizing and TAM analysis: every run reports
total_matching, the number of companies that match your filters, even if you only pull a sample. - Data enrichment: start from a CNPJ list in a CNAE (industry) segment and feed it to your enrichment waterfall or CRM.
Why not just download the raw Receita dump?
| Raw Receita open data | This actor | |
|---|---|---|
| Size | ~7 GB of zips that unpack to ~25 GB of CSV, which you then have to join | Query in seconds, pay per row |
| Format | 30 unnamed columns, latin-1, ;-separated, split across shards | Named English fields, JSON/CSV/Excel |
| Industry codes | Codes only, with Portuguese labels in a separate table | cnae_label_en in English, plus division and section in English, and the Portuguese original |
| Status | Active, suspended, closed and void companies all mixed together | Active companies only (situação cadastral 02) |
| Individual entrepreneurs / MEI | Included, with personal names and CPF numbers | Excluded (only legal entities are kept) |
| Website | Not provided | website: the corporate e-mail domain, checked over HTTP (live, not parked, not for sale), with the check date. The unchecked website_guess is kept too |
| Accountant contacts | Many companies register their accountant's e-mail/phone, so you end up calling the accountant | is_likely_accountant_contact flag, excluded by default |
| Phones | DDD and number in separate fields, mixed formats | Normalized +55DDNNNNNNNN |
Input examples
Software companies in São Paulo with a verified website
{"cnae_divisions": ["62"],"states": ["SP"],"only_with_verified_website": true,"max_results": 500}
New dental clinics in Minas Gerais and Rio de Janeiro (opened since 2023), head offices only
{"cnae_codes": ["8630504", "8630505"],"states": ["MG", "RJ"],"opened_after": "2023-01-01","headquarters_only": true}
Logistics companies with at least BRL 1M share capital, matched by keyword
{"keyword": "freight","min_share_capital": 1000000,"company_size": ["other"],"sort_by": "share_capital_desc"}
| Field | What it does |
|---|---|
cnae_divisions | 2-digit CNAE divisions of the main activity (62 = IT services, 47 = retail, 86 = health...) |
cnae_codes | 7-digit CNAE subclasses (6201501 or 6201-5/01), or shorter prefixes |
include_secondary_cnaes | Also match companies that have the code as a secondary activity |
keyword | Substring in the English activity label or the legal/trade name |
states, cities | State (UF) codes and city names (accents optional) |
company_size | micro, small, other (Receita porte) |
opened_after, opened_before | Opening date range |
min_share_capital | Minimum declared share capital (BRL) |
only_with_verified_website | Only companies whose website passed the HTTP check (see field notes) |
only_with_website, only_with_email, only_with_phone | Contact completeness filters (only_with_website = has a website_guess, checked or not) |
exclude_accountant_contacts | Default true. Leaves out companies whose contact is an accountant's |
headquarters_only | Only head offices (matriz), no branches |
sort_by | share_capital_desc (default), opening_date_desc, opening_date_asc, cnpj |
max_results | Default 1000 |
Output sample
Illustrative rows. The companies, names and contacts below are made up.
[{"cnpj": "12345678000190","cnpj_root": "12345678","is_headquarters": true,"legal_name": "EXEMPLO SISTEMAS LTDA","trade_name": "EXEMPLO TECH","legal_nature_code": "2062","legal_nature": "Limited liability company (Ltda.)","company_size": "small","share_capital_brl": 250000.0,"opening_date": "2019-03-14","cnae_code": "6202300","cnae_label_en": "Development and licensing of customizable software","cnae_label_pt": "Desenvolvimento e licenciamento de programas de computador customizáveis","cnae_division": "62","cnae_division_en": "Information technology services (software development and IT consulting)","cnae_section": "J","cnae_section_en": "Information and communication","secondary_cnaes": ["6204000", "6209100"],"state": "SP","city": "CAMPINAS","zip": "13000000","address": "RUA EXEMPLO, 100 - SALA 1 - CENTRO","phone": "+551930000000","email": "contato@exemplotech.com.br","email_domain": "exemplotech.com.br","website_guess": "https://exemplotech.com.br","website": "https://www.exemplotech.com.br/","website_verified": true,"website_checked_at": "2026-10-22T14:40:05Z","is_likely_accountant_contact": false,"data_as_of": "2026-10-10"}]
The run's key-value store OUTPUT record holds total_matching (all companies matching your filters),
pushed, data_as_of of the release that was queried, and whether the run stopped at your spending limit.
Field notes
website_guessishttps://plus the domain of the registered e-mail, and only when that domain is corporate. Free-mail and ISP domains (Gmail, Hotmail/Outlook, Yahoo, UOL, BOL, Terra, IG, Globo, iCloud...), their typos, domains with accounting wording, and generic domains shared by many unrelated companies are never used. About 14% of all rows have one. On its own it is unchecked.website/website_verified/website_checked_at: how "verified" works, exactly. Every distinctwebsite_guessdomain is checked by an automated script: DNS lookup of the domain (thenwww.), an HTTP GET tohttps://<domain>/, thenhttp://<domain>/, thenhttps://www.<domain>/if the bare domain refuses connections. Up to 5 redirects are followed, with an 8-second timeout per request. Answers of 400 or above get one retry with a regular-browser TLS fingerprint, because many sites block scripts.website_verifiedistrueonly when the final answer is HTTP 2xx or 3xx and the first 64 KB of the page don't look like a parked, for-sale, suspended, expired, "under construction" or hosting / web-server default page (title and body patterns, plus redirects to domain marketplaces).websiteis then the final URL after redirects. It can be on another domain when the company forwards its e-mail domain to a brand site. Otherwisewebsiteis null andwebsite_verifiedisfalse(dead DNS, no answer, 4xx/5xx, parked page, or not checked yet).website_checked_at(UTC) is when the check ran. Checks are redone every 90 days, and a check older than 90 days when the dataset is built counts as unchecked. The dataset is rebuilt monthly, so a check is at most about 4 months old when you read it. Verified means the site answered at that time. It doesn't mean it is still up today, and it says nothing about the e-mail inbox.is_likely_accountant_contactis true when the same e-mail is registered for more than 4 unrelated companies (different CNPJ roots), the same phone for more than 5, the e-mail looks like an accounting firm's, or the e-mail domain belongs to an accounting firm. In Brazil the accountant often files the registration and puts in their own contact details. About 38% of rows are flagged. The exact rule is documented in the pipeline that builds the data.company_sizeis the Receita porte:micro(ME),small(EPP),other(everything above EPP). It is null when it wasn't informed.phoneis the first valid company phone, in+55+ area code + number format. No digits are added. Older 8-digit mobile numbers are left as registered.
Data freshness
Data comes from the Receita Federal open-data release dated 2026-10-10 (published 2026-10-13). Receita
publishes a new release monthly, and this dataset is rebuilt from it; the actor always reads the latest
published release. Every row carries data_as_of, and the run log and OUTPUT record show it too. Website
checks have their own date, website_checked_at.
Privacy and LGPD
This actor returns company data only, as published by the Brazilian government as open data:
- Individual entrepreneurs (empresário individual, including MEI) and the other natural-person legal natures (rural producer, individual real-estate enterprise, electoral candidate) are excluded.
- No shareholder or partner data (QSA), no CPF numbers. CPF-like digit runs at the end of company names are stripped.
- Contact fields are the company's registered contact details.
You are responsible for using the data lawfully in your jurisdiction. That includes LGPD and anti-spam rules for outreach, and honouring opt-out requests.
Pricing
Pay per event:
| Event | When it's charged | Price |
|---|---|---|
company-result | Once per company row returned in the dataset | $X.XX per 1,000 results (placeholder) |
Set a maximum cost per run in Apify and the actor stops pushing rows when it's reached. You only pay for rows you actually receive.
FAQ
Can I get every company in a segment? Yes. Set max_results high enough, or run once per state.
total_matching in OUTPUT tells you how many there are.
Why are some well-known companies missing a website? They registered a free-mail or accountant
e-mail with Receita. The company is still returned, just with website_guess and website empty.
Why is website_guess set but website null? The domain failed the check: no DNS, no answer, an error
page, or a parked/for-sale/under-construction page. Or it hasn't been checked yet (website_checked_at is null).
Can I look up specific CNPJs? Not in this version. Use the industry and location filters.