URL base
Os caminhos abaixo partem de https://app.oportunidados.com.br/api/v1, com o token no cabeçalho Authorization: Bearer (veja Autenticação). Todas as operações são GET e respondem JSON.
Fazer isso nos primeiros 8 dias encerra a garantia da primeira assinatura. Ver regra
Ficha de um CNPJ
GET/brazilian_companies/{cnpj}/company
Devolve a ficha da empresa: cadastro, endereço, CNAEs, sócios com CPF mascarado, contatos disponíveis e contexto de mercado.
| Parâmetro | Onde | Formato |
|---|---|---|
cnpj | caminho | 14 caracteres, sem pontuação (veja Formato do CNPJ) |
curl "https://app.oportunidados.com.br/api/v1/brazilian_companies/12345678000190/company" \
-H "Authorization: Bearer $OPORTUNIDADOS_API_TOKEN"
Resposta 200 com quatro chaves: company, socios, contatos_extras e contexto, descritas em Campos da ficha. CNPJ fora da base responde 404 {"error": "Record not Found"}.
Custo: 1 chamada por requisição admitida, inclusive quando a resposta é 404.
Contagem de empresas
GET/brazilian_companies/count
Conta as empresas de um recorte e, se você pedir, agrupa a contagem por uma ou mais colunas.
| Parâmetro | O que filtra | Como enviar |
|---|---|---|
uf | Siglas dos estados | uf=SP,RJ |
mun | Códigos IBGE dos municípios | mun=3550308 |
cnae_fiscal | Subclasses CNAE, só números | cnae_fiscal=6201501,6202300 |
include_cnae_secundario | Conta também quem tem o CNAE como secundário | include_cnae_secundario=true |
porte, situacao_cadastral, natureza_juridica, opcao_mei, opcao_simples, matriz_filial, regime_tributario | Códigos da Receita Federal (lista em Campos da ficha) | Valores separados por vírgula |
cep[], bairro[], data_inicio_interval[], data_situacao_interval[], capital_social_range[] | CEP, bairro, intervalos de data e faixa de capital social | Repita o parâmetro: cep[]=01310100&cep[]=01311000 |
group_by | Agrupa por uma coluna | group_by=uf |
group_by[] | Agrupa por mais de uma coluna | group_by[]=uf&group_by[]=porte |
Os valores aceitos em group_by são: uf, cod_municipio, cnae_fiscal, cnae_divisao, cnae_grupo, cnae_classe, porte, situacao_cadastral, opc_simples, opc_mei, cod_nat_juridica, data_inicio_atividade, matriz_filial e bairro. A lista completa de filtros está no Swagger.
curl -G "https://app.oportunidados.com.br/api/v1/brazilian_companies/count" \
-H "Authorization: Bearer $OPORTUNIDADOS_API_TOKEN" \
--data-urlencode "uf=SP" \
--data-urlencode "cnae_fiscal=6201501" \
--data-urlencode "group_by=porte"
A resposta sempre traz filter (o eco dos filtros aplicados), group_by e data. Sem agrupamento, group_by é null e data é um número; com agrupamento, data é um objeto do valor para a contagem:
{
"filter": { "uf": ["SP"], "cnae_fiscal": ["6201501"] },
"group_by": "porte",
"data": { "01": 18240, "03": 5120, "05": 2310 }
}
Erros próprios da contagem:
- 400
invalid_filter: parâmetro desconhecido. A mensagem cita as chaves recusadas. Não consome chamada. - 400
Invalid group_by: agrupamento fora da lista acima. A mensagem traz os valores aceitos. - 403 com
errors: combinação de filtros recusada. O valor deerrorsé um texto com JSON dentro.
Custo: 1 chamada por requisição admitida, não importa quantas empresas o recorte tenha.
Ranking do recorte
GET/brazilian_companies/top
Lista as empresas com maior capital social e as abertas mais recentemente numa atividade, num município ou nos dois.
| Parâmetro | O que é | Limites |
|---|---|---|
cnae_fiscal | Subclasse CNAE com 7 dígitos | Envie ao menos um dos dois |
cod_municipio | Código SIAFI do município | |
limit | Tamanho de cada lista | Padrão 10, máximo 12. Zero ou valor inválido volta a 10 |
opc_mei | Exclui os optantes do MEI das duas listas | Único valor aceito: 0 |
curl -G "https://app.oportunidados.com.br/api/v1/brazilian_companies/top" \
-H "Authorization: Bearer $OPORTUNIDADOS_API_TOKEN" \
--data-urlencode "cnae_fiscal=6201501" \
--data-urlencode "limit=5"
A resposta traz filter, maiores_capital_social e abertas_recentes. Cada empresa das listas tem cnpj, razao_social, nome_fantasia, capital_social, data_inicio_atividade, cnae_fiscal e opc_mei (verdadeiro ou falso).
Erros próprios do ranking:
- 400
Missing filter: faltoucnae_fiscalecod_municipio. - 400
Invalid opc_mei:opc_meicom valor diferente de0.
Custo: 1 chamada por requisição admitida, com as duas listas na mesma resposta.
Contagem de obras
GET/constructions/count
Conta as obras do Cadastro Nacional de Obras (CNO) de um recorte, com agrupamento opcional.
| Parâmetro | O que filtra | Como enviar |
|---|---|---|
uf | Siglas dos estados | uf=PR |
mun | Códigos SIAFI dos municípios | Valores separados por vírgula |
situacao, destinacao, categoria, tipo_obra, tipo_responsavel, qualificacao_responsavel | Códigos do CNO | Valores separados por vírgula |
cno, ni_responsavel, cnae_responsavel, cnae, cep | Obra, responsável, atividade e CEP | Valores separados por vírgula |
data_inicio_interval, area_total_range | Período de início e faixa de área | Início e fim separados por vírgula |
group_by | uf, cod_municipio, situacao, tipo_responsavel, qualificacao_responsavel ou data_inicio_year | group_by=situacao |
curl -G "https://app.oportunidados.com.br/api/v1/constructions/count" \
-H "Authorization: Bearer $OPORTUNIDADOS_API_TOKEN" \
--data-urlencode "uf=PR" \
--data-urlencode "group_by=situacao"
Sem agrupamento, a resposta é {"filter": {...}, "total": ...}. Com agrupamento, vem também group_by e data, uma lista de {"code", "label", "count"} da maior contagem para a menor. Em cod_municipio, o code da resposta é o código IBGE.
Erros próprios da contagem de obras:
- 422
Unsupported filter combination:cnoouni_responsaveljunto comsituacaooucnae_responsavel. - 400
Invalid group_by: agrupamento fora da lista acima.
Custo: 1 chamada por requisição admitida, não importa quantas obras o recorte tenha.
Limite das buscas
Contagem de empresas, ranking e contagem de obras têm um limite próprio por minuto, por conta, que vale junto com o limite do plano. Passou dele, a resposta é 429 e a chamada não conta na cota. Plano sem acesso a essas operações recebe 403 Search endpoints are not enabled for your plan. A ficha de um CNPJ não entra nesse limite das buscas: vale o limite do plano, em Cota e limites, e uma proteção da plataforma contra rajadas por conta, que também responde 429.
Formato do CNPJ
O CNPJ tem 14 caracteres, entre dígitos e letras. Envie sem pontos, barras nem hífen. Letras minúsculas são convertidas em maiúsculas. Guarde e envie o CNPJ como texto: ele pode ter zeros à esquerda e, nos novos cadastros da Receita Federal, letras.
Referência interativa
Todos os parâmetros, os esquemas de resposta e os exemplos estão no Swagger do app, onde você também testa cada operação com o seu token.