docs · base agosto/2026Atualizado em

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

NomeEmTipoObrigatórioDescrição
cnpjquerystring
valor padrão: 00000000000191
—CNPJ da allowlist. Fora dela responde 404.

Respostas

200 OK

Perfil de demonstração.

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-LimitintegerRequisições por minuto do plano (por conta).
X-RateLimit-RemainingintegerRequisições restantes no minuto corrente.
Access-Control-Allow-OriginstringSó 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).

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-LimitintegerRequisições por minuto do plano (por conta).
X-RateLimit-RemainingintegerRequisiçõ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.

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-AfterintegerSó em 429 e 503: segundos até tentar de novo.
X-RateLimit-LimitintegerRequisições por minuto do plano (por conta).
X-RateLimit-RemainingintegerRequisiçõ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).

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-LimitintegerRequisições por minuto do plano (por conta).
X-RateLimit-RemainingintegerRequisições restantes no minuto corrente.
Access-Control-Allow-OriginstringSó 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.

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-AfterintegerSó 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).

HeaderTipoDescrição
X-Request-IdstringIdentificador da requisição para suporte.
X-Client-Request-IdstringEco 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-LimitintegerRequisições por minuto do plano (por conta).
X-RateLimit-RemainingintegerRequisições restantes no minuto corrente.
Access-Control-Allow-OriginstringSó 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"