GET /v1/demo
Demonstração sem chave
Perfil full de instituições públicas de uma allowlist, sem o array socios (devolve socios_count). Cache de 1 hora, 10 requisições por minuto por IP. Serve o “Testar agora” do site.
Créditos
chamada · 0 créditos
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
cnpj | query | stringvalor padrão: 00000000000191 | — | CNPJ da allowlist. Fora dela responde 404. |
Respostas
200 OK
Perfil de demonstração.
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
X-RateLimit-Limit | integer | Requisições por minuto do plano (por conta). |
X-RateLimit-Remaining | integer | Requisições restantes no minuto corrente. |
Access-Control-Allow-Origin | string | Só em GET /v1/status e GET /v1/demo, quando a resposta é produzida pela própria operação. Ausente no 429 do limite por IP, no 404 da allowlist e nas falhas anteriores à operação (por exemplo, ao consultar o estado da base); presente em erros ocorridos dentro da operação. |
{
"data": {
"cnpj": "00000000000191",
"raiz_cnpj": "00000000",
"razao_social": "BANCO DO BRASIL SA",
"nome_fantasia": "DIRECAO GERAL",
"matriz_filial": {
"codigo": "1",
"descricao": "Matriz"
},
"n_filiais": 4000,
"data_inicio_atividade": "1966-08-01",
"situacao_cadastral": {
"codigo": "02",
"descricao": "Ativa"
},
"data_situacao_cadastral": "2005-11-03",
"motivo_situacao_cadastral": {
"codigo": "00",
"descricao": "Sem motivo"
},
"situacao_especial": null,
"data_situacao_especial": null,
"natureza_juridica": {
"codigo": "2038",
"descricao": "Sociedade de Economia Mista"
},
"porte": {
"codigo": "05",
"descricao": "Demais"
},
"capital_social": 120000000000,
"cnae_fiscal": {
"codigo": "6422100",
"descricao": "Bancos múltiplos, com carteira comercial"
},
"cnaes_secundarios": [],
"endereco": {
"tipo_logradouro": "Quadra",
"logradouro": "SAUN QUADRA 5 LOTE B",
"numero": "S/N",
"complemento": "TORRES I, II E III",
"bairro": "ASA NORTE",
"cep": "70040912",
"municipio": "Brasília",
"codigo_municipio_ibge": "5300108",
"codigo_municipio_siafi": "9701",
"uf": "DF"
},
"simples": {
"optante": false,
"data_opcao": null,
"data_exclusao": null
},
"mei": {
"optante": false,
"data_opcao": null,
"data_exclusao": null
},
"has_email": true,
"has_website": true,
"has_phone": true,
"has_mobile_phone": false,
"telefones": [
{
"ddd": "61",
"numero": "34939002"
}
],
"email": "exemplo@bb.com.br",
"site": "https://www.bb.com.br",
"contatos_extras": [
{
"tipo": "telefone",
"valor": "(61) 3493-9002",
"origem": "oportunidados"
},
{
"tipo": "instagram",
"valor": "https://www.instagram.com/exemplo",
"origem": "oportunidados"
}
],
"socios_count": 1,
"faixa_faturamento": {
"faixa": "Superior a R$4.800.000,00",
"origem": "porte"
},
"faixa_funcionarios": null,
"regime_tributario": {
"regime": "Lucro Real",
"ano": 2025,
"escrituracoes": []
}
},
"meta": {
"request_id": "req_01J8ZK3Q9X",
"profile": "full",
"source": "rfb_open_data+oportunidados",
"data_as_of": "2026-09-01",
"suppressed": false,
"credits_charged": 0,
"credits_remaining": 0
}
}
404 Não encontrado
CNPJ fora da allowlist, ou API desligada (CNPJIA_API_ENABLED diferente de on).
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
X-RateLimit-Limit | integer | Requisições por minuto do plano (por conta). |
X-RateLimit-Remaining | integer | Requisições restantes no minuto corrente. |
{
"error": {
"code": "not_found",
"message": "Recurso não encontrado.",
"request_id": "req_01J8ZK3Q9X",
"retryable": false,
"docs_url": "https://cnpj.ia.br/docs/erros-e-retentativas#not_found"
}
}
429 Excesso de requisições
Limite por IP (10/min). Header Retry-After. Sem CORS nesta resposta.
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
Retry-After | integer | Só em 429 e 503: segundos até tentar de novo. |
X-RateLimit-Limit | integer | Requisições por minuto do plano (por conta). |
X-RateLimit-Remaining | integer | Requisições restantes no minuto corrente. |
{
"error": {
"code": "rate_limited",
"message": "Limite de requisições excedido. Tente novamente em instantes.",
"request_id": "req_01J8ZK3Q9X",
"retryable": true,
"docs_url": "https://cnpj.ia.br/docs/erros-e-retentativas#rate_limited"
}
}
500 Erro interno
Erro não previsto. retryable: true; esta operação não consome créditos. Headers de limite (X-RateLimit-*) só quando a falha ocorre depois do limite por IP; Access-Control-Allow-Origin só quando a falha ocorre dentro da ação (carga da empresa). Ausentes quando a falha é anterior (por exemplo, ao consultar o estado da base).
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
X-RateLimit-Limit | integer | Requisições por minuto do plano (por conta). |
X-RateLimit-Remaining | integer | Requisições restantes no minuto corrente. |
Access-Control-Allow-Origin | string | Só em GET /v1/status e GET /v1/demo, quando a resposta é produzida pela própria operação. Ausente no 429 do limite por IP, no 404 da allowlist e nas falhas anteriores à operação (por exemplo, ao consultar o estado da base); presente em erros ocorridos dentro da operação. |
{
"error": {
"code": "internal_error",
"message": "Erro interno. Tente novamente; se persistir, fale com o suporte.",
"request_id": "req_01J8ZK3Q9X",
"retryable": true,
"docs_url": "https://cnpj.ia.br/docs/erros-e-retentativas#internal_error"
}
}
503 Serviço indisponível
Janela mensal de atualização da base. Header Retry-After.
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
Retry-After | integer | Só em 429 e 503: segundos até tentar de novo. |
{
"error": {
"code": "maintenance",
"message": "A base está em manutenção. Tente novamente em instantes.",
"request_id": "req_01J8ZK3Q9X",
"retryable": true,
"docs_url": "https://cnpj.ia.br/docs/erros-e-retentativas#maintenance"
}
}
504 Tempo esgotado
Timeout de consulta. retryable: true; nada é cobrado. Headers de limite (X-RateLimit-*) só quando a falha ocorre depois do limite por IP; Access-Control-Allow-Origin só quando a falha ocorre dentro da ação (carga da empresa). Ausentes quando a falha é anterior (por exemplo, ao consultar o estado da base).
| Header | Tipo | Descrição |
|---|---|---|
X-Request-Id | string | Identificador da requisição para suporte. |
X-Client-Request-Id | string | Eco do X-Request-Id enviado pelo cliente quando casa ^[A-Za-z0-9_-]{8,64}$. Ausente se o cliente não enviou ou o valor é inválido. Nunca usado como identificador interno. |
X-RateLimit-Limit | integer | Requisições por minuto do plano (por conta). |
X-RateLimit-Remaining | integer | Requisições restantes no minuto corrente. |
Access-Control-Allow-Origin | string | Só em GET /v1/status e GET /v1/demo, quando a resposta é produzida pela própria operação. Ausente no 429 do limite por IP, no 404 da allowlist e nas falhas anteriores à operação (por exemplo, ao consultar o estado da base); presente em erros ocorridos dentro da operação. |
{
"error": {
"code": "upstream_timeout",
"message": "A operação demorou mais que o esperado. Tente novamente.",
"request_id": "req_01J8ZK3Q9X",
"retryable": true,
"docs_url": "https://cnpj.ia.br/docs/erros-e-retentativas#upstream_timeout"
}
}
Exemplo
curl -s "https://api.cnpj.ia.br/v1/demo"