BrasilAPI
Free Brazilian public data API with no key: CEP postcode lookup, CNPJ company registry, banks, holidays, DDD area codes and more. Tested GET examples.
Endpoint tested and returned HTTP 200 on 20 Aug 2026
What is the BrasilAPI?
BrasilAPI is a free, key-free community API aggregating Brazilian public data — CEP postcode lookup, CNPJ company registry records, bank directories, national holidays, DDD area codes and vehicle data — behind one consistent interface.
Brazilian public data is scattered across many government systems with inconsistent interfaces and frequent downtime. BrasilAPI consolidates the most useful ones into a single modern API with no key required.
The CEP and CNPJ endpoints are the ones most applications need. CEP turns a postcode into a full address, and CNPJ returns the official Receita Federal company registry record — including partners, capital and activity codes — which is essential for any Brazilian B2B onboarding.
Quick facts
- Base URL
https://brasilapi.com.br/api- Authentication
- No API key required.
- Rate limit
- No published hard limit; it is community-run, so cache rather than polling.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the BrasilAPI
Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Look up a Brazilian postcode (CEP)
GET https://brasilapi.com.br/api/cep/v1/01001000
curl 'https://brasilapi.com.br/api/cep/v1/01001000'const res = await fetch("https://brasilapi.com.br/api/cep/v1/01001000");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://brasilapi.com.br/api/cep/v1/01001000", timeout=20)
res.raise_for_status()
print(res.json()){
"cep": "01001000",
"state": "SP",
"city": "São Paulo",
"neighborhood": "Sé",
"street": "Praça da Sé",
"service": "open-cep",
"ibge": {
"city": "3550308",
"state": "35"
}
}2. Look up a company by CNPJ
GET https://brasilapi.com.br/api/cnpj/v1/19131243000197
curl 'https://brasilapi.com.br/api/cnpj/v1/19131243000197'const res = await fetch("https://brasilapi.com.br/api/cnpj/v1/19131243000197");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://brasilapi.com.br/api/cnpj/v1/19131243000197", timeout=20)
res.raise_for_status()
print(res.json()){
"uf": "SP",
"cep": "01311902",
"qsa": [
{
"pais": null,
"nome_socio": "HAYDEE SVAB",
"codigo_pais": null,
"faixa_etaria": "Entre 41 a 50 anos",
"cnpj_cpf_do_socio": "***112108**",
"qualificacao_socio": "Presidente",
"codigo_faixa_etaria": 5,
"data_entrada_sociedade": "2024-02-27",
"identificador_de_socio": 2,
"cpf_representante_legal": "***000000**",
"nome_representante_legal": "",
"codigo_qualificacao_socio": 16,
"qualificacao_representante_legal": "Não informada",
"codigo_qualificacao_representante_legal": 0
}
],
"cnpj": "19131243000197",
"pais": null,
"email": null,
"porte": "DEMAIS",
"bairro": "BELA VISTA",
"numero": "37",
"ddd_fax": "",
"municipio": "SAO PAULO",
"logradouro": "PAULISTA 37",
"cnae_fiscal": 9430800,
"codigo_pais": null,
"complemento": "ANDAR 4",
"codigo_porte": 5,
"razao_social": "OPEN KNOWLEDGE BRASIL",
"nome_fantasia": "REDE PELO CONHECIMENTO LIVRE",
"capital_social": 0,
"ddd_telefone_1": "1123851939",
"ddd_telefone_2": "",
"opcao_pelo_mei": null,
"codigo_municipio": 7107,
"cnaes_secundarios": [
{
"codigo": 9493600,
"descricao": "Atividades de organizações associativas ligadas à cultura e à arte"
},
{
"codigo": 9499500,
"descricao": "Atividades associativas não especificadas anteriormente"
},
{
"codigo": 8599699,
"descricao": "Outras atividades de ensino não especificadas anteriormente"
},
{
"codigo": 8230001,
"descricao": "Serviços de3. List every Brazilian bank
GET https://brasilapi.com.br/api/banks/v1
curl 'https://brasilapi.com.br/api/banks/v1'const res = await fetch("https://brasilapi.com.br/api/banks/v1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://brasilapi.com.br/api/banks/v1", timeout=20)
res.raise_for_status()
print(res.json())[
{
"ispb": "00000000",
"name": "BCO DO BRASIL S.A.",
"code": 1,
"fullName": "Banco do Brasil S.A.",
"localizacao_sede": "SBS Quadra 1, Bloco A, Edifício Sede I, Asa Sul, Brasília-DF",
"cnpj": null,
"headquarters_address": {
"street": "SAUN QUADRA 5 BLOCO B TORRE SUL 4 ANDAR",
"number": null,
"complement": "EDIFICIO BANCO DO BRASIL",
"district": "ASA NORTE",
"city": "BRASÍLIA",
"state": "DF",
"zipCode": "70040-912"
},
"address_source": "bcb_sedes_exact_match",
"address_last_sync": "2026-08-19T21:57:51.972Z",
"address_confidence": "high",
"logo_url": "https://cdn.jsdelivr.net/npm/logos-bancos-br@0/logos/svg/00000000.svg"
},
{
"ispb": "00000208",
"name": "BRB - BCO DE BRASILIA S.A.",
"code": 70,
"fullName": "BRB - BANCO DE BRASILIA S.A.",
"localizacao_sede": "SCS Quadra 1, Bloco A, Edifício Brasília Trade Center, Asa Sul, Brasília-DF",
"cnpj": null,
"headquarters_address": {
"street": "CENTRO EMPRESARIAL CNC ST SAUN QUADRA 5",
"number": null,
"complement": "LOTE C BLOCO B",
"district": "ASA NORTE",
"city": "BRASÍLIA",
"state": "DF",
"zipCode": "70040-250"
},
"address_source": "bcb_sedes_exact_match",
"address_last_sync": "2026-08-19T21:57:51.972Z",
"address_confidence": "high",
"logo_url": "https://cdn.jsdelivr.net/npm/logos-bancos-br@0/logos/svg/00000208.svg"
},
{
"ispb": "00038121",
"name": "Selic",
"code": null,
"fullName": "Banco Central do Brasil - Selic",
"lParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
cep/v1/<cep> | path | Optional | Postcode lookup, digits only. cep/v1/01001000 |
cnpj/v1/<cnpj> | path | Optional | Company registry lookup by CNPJ. cnpj/v1/19131243000197 |
banks/v1 | path | Optional | All Brazilian banks with ISPB codes. banks/v1 |
feriados/v1/<year> | path | Optional | National holidays for a year. feriados/v1/2026 |
ddd/v1/<ddd> | path | Optional | Cities within a telephone area code. ddd/v1/11 |
Response fields
cepstring- The postcode queried.
state / city / neighborhood / streetstring- Resolved address components.
servicestring- Which upstream source answered — BrasilAPI queries several.
location.coordinatesobject- Latitude and longitude, when available.
(cnpj) razao_social / nome_fantasiastring- Legal and trading company names.
(cnpj) qsaarray- Company partners and their roles.
(banks) ispb / code / fullNamestring|integer- Bank identifiers used for transfers.
What you can build with the BrasilAPI
- Autofill Brazilian addresses from a CEP at checkout
- Verify company details during B2B onboarding via CNPJ
- Populate a bank selector for PIX or TED transfers
- Calculate Brazilian business days around national holidays
Common errors and how to fix them
404 on a CEP
The postcode does not exist or is not covered by any upstream source.
Fix: BrasilAPI queries several providers; a 404 means all of them failed.
Slow CNPJ lookups
It proxies Receita Federal, which is often slow.
Fix: Set a generous timeout and cache results — company records change rarely.
Formatted input rejected
CEP and CNPJ must be digits only.
Fix: Strip dots, hyphens and slashes before sending.
BrasilAPI — frequently asked questions
Is BrasilAPI free?
Yes, completely free and open source with no API key. It is community-run, so cache rather than polling aggressively.
What is a CEP?
Código de Endereçamento Postal — the Brazilian postcode. Looking one up returns the full street, neighbourhood, city and state, which is how Brazilian address forms autofill.
What can I do with a CNPJ lookup?
It returns the official Receita Federal company record — legal name, trading name, address, partners, share capital and activity codes — which is essential for Brazilian B2B verification.
Do I need to strip formatting from the input?
Yes. Send digits only — no dots, hyphens or slashes — or the request will fail.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Alternatives to BrasilAPI
If BrasilAPI does not fit, these government & open data apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| Federal Register | Free US Federal Register API with no key: executive orders, rules, notices and proposed regulations with full text search back to 1994. Tested curl example. | No key | Yes | 19 Aug 2026 |
| USAspending | Free US federal spending API with no key: agency budgets, contracts, grants and award data covering trillions in government spending. Tested curl example. | No key | No | 19 Aug 2026 |
| UK Parliament Members | Free UK Parliament Members API with no key: MPs and Lords, constituencies, party affiliation, contact details and voting records. Tested curl example. | No key | No | 19 Aug 2026 |
| UK Police Data | Free UK Police API with no key: street-level crime data, police forces, neighbourhood teams and stop-and-search records by location and month. Tested example. | No key | Yes | 19 Aug 2026 |
| Callook.info | Free US amateur radio callsign lookup with no key: licensee name, address, grid square, coordinates, licence class and expiry from the FCC ULS database. Tested example. | No key | Yes | 21 Aug 2026 |
| Câmara dos Deputados (Brazil) | Free Brazilian Chamber of Deputies API with no key: deputies, parties, bills, votes, expense claims and committee membership, with HATEOAS links throughout. Tested example. | No key | Yes | 21 Aug 2026 |
BrasilAPI is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.