Catalog / Company registries & public records
COMPANY REGISTRIES & PUBLIC RECORDS · BRAZIL
Brazil CNPJ Registry
Look up Brazilian companies by CNPJ: razão social, nome fantasia, situação cadastral, CNAE activity, full address, capital social and partners (QSA).
About this data
Look up Brazilian companies by CNPJ: razão social, nome fantasia, situação cadastral, CNAE activity, full address, capital social and partners (QSA). On-demand company verification and enrichment from public Receita Federal open data — fresh answers every run.
From the actor’s Apify Store listing. The per-call endpoint may return a bounded subset; its own description is below.
Buy per call over x402
One endpoint at api.ssh.autos. Each call is one JSON POST, paid in USDC with no account or API key, and answered in the same HTTP response.
POST /v1/br/cnpj
One unified company record for a CNPJ from Receita Federal open data via a four-mirror fallback: legal and trade name, registration status, legal nature, size, share capital, primary and secondary CNAE activities, address, contacts, Simples/MEI flags, partners (QSA) and tax-regime history. Source: Receita Federal open data.
Input
Send a JSON body to POST https://api.ssh.autos/v1/br/cnpj.
| Field | Type | Required | Notes |
|---|---|---|---|
cnpj | string | required | CNPJ, bare or masked (e.g. 19.131.243/0001-97); checksum-validated. 14–18 characters |
Returned fields
The answer is JSON: records, a list, and summary, the run status and counts. Each record has these 36 fields; a field the source does not publish comes back null.
36 fields per record
| Field | Type | Notes |
|---|---|---|
companyKey | string | Stable unique key for the company, 'cnpj:<14 digits>' (e.g. cnpj:19131243000197). |
cnpj | string | The company's CNPJ in display form, e.g. '19.131.243/0001-97'. |
cnpjRaiz | string | The 8-digit company root shared by all its establishments (matriz/filiais). |
razaoSocial | string | Registered company name (razão social). |
nomeFantasia | string | Trade name (nome fantasia), when registered. |
situacaoCadastral | string | Registration status, e.g. ATIVA, BAIXADA, SUSPENSA, INAPTA. |
dataSituacaoCadastral | string | Date the current status took effect, ISO YYYY-MM-DD. |
dataInicioAtividade | string | Company start date, ISO YYYY-MM-DD. |
matrizFilial | string | Establishment kind: MATRIZ (head office) or FILIAL (branch). |
naturezaJuridica | string | Legal nature, e.g. 'Associação Privada', 'Sociedade Empresária Limitada'. |
codigoNaturezaJuridica | string | Legal-nature code (4 digits). |
porte | string | Company size band, e.g. MICRO EMPRESA, EMPRESA DE PEQUENO PORTE, DEMAIS. |
capitalSocial | number | Registered share capital in BRL. |
cnaeFiscal | string | Primary economic activity code (CNAE), 7 digits. |
cnaeFiscalDescricao | string | Primary economic activity description. |
atividadesSecundarias | array of objects | Secondary economic activities, each with 'codigo' and 'descricao'. |
logradouro | string | Street address line. |
numero | string | Street number. |
complemento | string | Address complement (unit, floor, block). |
bairro | string | Neighbourhood (bairro). |
cep | string | Postal code (CEP), 8 digits. |
municipio | string | City (município). |
uf | string | State code (UF), e.g. SP, RJ, MG. |
telefone1 | string | Primary phone digits (DDD + number). |
telefone2 | string | Secondary phone digits (DDD + number), when registered. |
email | string | Registered contact e-mail, when present. |
opcaoPeloSimples | boolean | Whether the company opted into the Simples Nacional tax regime (null when not stated). |
opcaoPeloMei | boolean | Whether the company opted into MEI status (null when not stated). |
qsa | array of objects | Partners and officers (Quadro de Sócios e Administradores), each with 'nome', 'qualificacao', 'dataEntrada', 'faixaEtaria', 'documento' and 'representanteLegal'. |
regimeTributario | array of objects | Reported tax-regime history, each with 'ano' and 'formaTributacao' (empty when the source does not publish it). |
status | string | Lookup outcome: FOUND (registry record returned), NOT_FOUND (a mirror reported missing), or ERROR (all mirrors unavailable). |
error | string | Mirror failure details for ERROR rows; null otherwise. |
source | string | Public open-data host that answered the lookup. |
sourceQuery | string | The 14-character CNPJ this run looked up (12 uppercase ASCII letters/digits and two numeric check digits). |
matchType | string | How the record was found; always 'cnpj'. |
scrapedAt | string | UTC ISO-8601 collection timestamp. |
Example call
npx agentcash@latest fetch https://api.ssh.autos/v1/br/cnpj -m POST -b '{"cnpj": "19131243000197"}'
The example values come from the API spec or the actor’s own sample input. Running it is a paid call.
What is and isn’t charged
You pay the call price for
- An answer, including a definitive “not found” or an empty result.
- A CNPJ with no record returns status NOT_FOUND (charged: it is an answer).
Free
- Invalid input (422), busy (503), source failure (502), timeout (504) and calls whose client hung up are never charged.
- Invalid CNPJs and mirror outages are not charged.
Prefer a subscription? Run it on Apify
This data source is a public actor on the Apify Store: Brazil CNPJ Registry Scraper. Run it with your Apify account and plan for larger, scheduled or exported runs; it may offer more input options than the per-call endpoint.
How x402 payment works
- Your client sends the request. The API answers
402 Payment Requiredwith the price and where to pay. - The client pays from its own wallet: USDC on Base or Solana over x402, or over MPP on Tempo. No account, sign-up or API key.
- The client retries with the payment attached and gets the JSON answer in the same call. You are only charged for answers.
The AgentCash CLI in the example does all three steps for you and pays from your AgentCash wallet. Any x402 or MPP client works the same way.
Machine-readable: openapi.json · llms.txt