Getting started

How to use

How to look up a CNPJ, search companies and check that the server is up.

Examples use the domain you are reading this page on. Responses are always application/json.

CNPJ lookup

GET/{cnpj}v2

Returns the company data as JSON. The source that answered comes in the X-Source header (minhareceita or receitaws). The CNPJ can be sent with or without punctuation.

curl "https://cnpj.juk.re/06.990.590/0001-23"
{
  "cnpj": "06990590000123",
  "razao_social": "GOOGLE BRASIL INTERNET LTDA.",
  "uf": "SP",
  "municipio": "SAO PAULO",
  "descricao_situacao_cadastral": "ATIVA",
  "qsa": [ … ]
}
StatusWhen
200Lookup succeeded.
400CNPJ with invalid format or check digits.
404Valid CNPJ, but not in the database.
502No provider answered.

Accepted formats

TypeExample
Numeric/06990590000123
Numeric with mask/06.990.590/0001-23
Alphanumeric/00000000E08G12
Alphanumeric with mask/00.000.000/E08G-12

We strip ., /, - and spaces, uppercase the letters and verify the format and check digits. The slash of a masked CNPJ can go straight in the URL or as %2F. See Alphanumeric CNPJ.

Registration certificate

GET/cartao/{cnpj}

Opens a page with the data in the layout of the registration and status certificate, with a QR code and a barcode, ready to print or save as PDF. It does not replace the official certificate from the Receita Federal.

GET/?uf=DF&natureza_juridica=1015&limit=10experimental

Lists companies from filters. The search is forwarded to Minha Receita, with no plan B, and may answer 429 when the server limit is reached. With no filters, the / route shows the test page.

ParameterDescription
cnae_fiscalMain fiscal CNAE of the establishment.
cnaeMain or secondary CNAE.
cnpfCPF or CNPJ of a partner.
municipioMunicipality code (IBGE or SIAFI).
natureza_juridicaLegal nature code.
ufState abbreviation.
limitItems per page, at most 1024.
cursorCursor returned by the previous page.
  • For several values, repeat the parameter or separate with commas: uf=DF,GO.
  • Partner CPFs are masked, so search with * on the first three and last two digits: *456789.
  • Searching only by partner CPF or CNPJ may time out; combine it with uf.
  • An invalid limit or cursor returns 400.

The response carries data (the list) and cursor. Pass the cursor in the next call to move on; when it is missing, that was the last page.

{
  "data": [ { "cnpj": "01690511000145", "razao_social": "…" } ],
  "cursor": "…"
}

Auxiliary endpoints

RouteDescription
GET /updatedReference month of the Receita Federal data, as { "message": "2026-10" }.
GET or HEAD /healthzThe server is up.
GET or HEAD /readyzThe server is ready to answer lookups.
GET /openapi.jsonOpenAPI 3.1 specification.

They all answer 200 when everything is fine. Minha Receita’s /metrics is not offered here.