Como buscar dados de empresas com Python? Passo a passo

Aprenda a buscar dados de empresas com Python, como quem são os sócios, o capital social ou a atividade principal, usando apenas o CNPJ.

Para buscar dados de empresas com Python, use a API pública CNPJ.ws junto com a biblioteca requests. Faça uma requisição GET para https://publica.cnpj.ws/cnpj/{CNPJ}, verifique se o status é 200 e leia o JSON retornado. Nele você encontra razão social, capital social, atividade principal e a lista de sócios da empresa.

Com a API CNPJ.ws e um pouco de Python, você pode acessar essas informações de forma rápida e automática!

Neste post, vamos te mostrar como usar essa API pública para consultar dados de empresas, como a Vale, e extrair informações úteis, tudo com um código simples.

Vamos lá?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: São quatro linhas: importar o requests, montar a URL da API pública do CNPJ com f-string, fazer requests.get(url) e ler o resultado com .json(). A resposta é um dicionário com razão social, capital social, natureza jurídica, atividade principal e lista de sócios, sem chave de API e sem cadastro.

Neste vídeo (12 min):

  • 1:00 - A fonte é a API pública do CNPJ; existe uma versão comercial paga, com mais dados e limite de requisições maior.
  • 2:00 - A documentação já entrega o endpoint e diz que o método é GET, sempre confira isso antes de escrever o código.
  • 2:30 - Instalação: pip install requests, e depois import requests.
  • 3:00 - O CNPJ é um path parameter: vai dentro da própria URL. Uma f-string resolve, sem precisar montar dicionário.
  • 3:30 - Regra geral: parâmetro de caminho ou de query vai na URL; qualquer outro vai num dicionário passado em params.
  • 4:30 - A requisição é requisicao = requests.get(url), para essa API, só isso.
  • 5:00 - Imprimir a requisição mostra o código de status: 200 deu certo, 404 é CNPJ não encontrado, 429 é excesso de requisições.
  • 6:00 - O conteúdo vem em requisicao.json(), que converte a resposta num dicionário do Python.
  • 6:30 - Vale ler o erro: com um zero a menos no CNPJ, a própria API respondeu que o número era inválido.
  • 7:00 - A dica de ouro: from pprint import pprint, o pretty print já vem com o Python e imprime o dicionário com hierarquia.
  • 9:00 - Com a indentação visível fica fácil achar o caminho até o dado desejado, dicionário dentro de dicionário.
  • 10:00 - Exemplo: requisicao.json()["estabelecimento"]["atividade_principal"]["descricao"] devolve “extração de minério de ferro”.
  • 11:00 - Dado sensível vem mascarado: o nome do sócio aparece, o CPF sai parcialmente oculto.

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que é a API CNPJ.ws?

A API CNPJ.ws é uma ferramenta que permite buscar informações públicas de empresas brasileiras usando o CNPJ. Por exemplo, se você tem o CNPJ da Vale (33.592.510/0001-54), pode descobrir:

  • Razão social (ex.: Vale S.A.).
  • Capital social.
  • Atividade principal (ex.: extração de minério de ferro).
  • Lista de sócios (com algumas informações protegidas, como CPF parcial).
  • Natureza jurídica, porte e muito mais.

Existem duas versões:

  • Pública: Gratuita, tem limite de requisições por minuto mas é suficiente para muitos casos.
  • Comercial: Paga, com mais dados e menos limitações.

Para este tutorial, usaremos a API pública, que é ótima para começar e dá pra fazer bastante coisa com ela.

página inicial da cnpj.ws

Se você ainda não entende este conceito, descubra o que é e como usar uma API no Python.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Passo a Passo para Consultar um CNPJ com Python

Vamos criar um código simples em Python para consultar o CNPJ da Vale e extrair informações, como a atividade principal. Você só precisa da biblioteca requests e, para facilitar a leitura dos dados, da biblioteca pprint.

O código funciona em qualquer editor (VS Code, PyCharm, etc.), desde que você tenha Python instalado.

1. Instale a Biblioteca Requests

A biblioteca requests permite fazer requisições à API. Se ainda não a tem, instale-a pelo terminal:

Codigo
pip install requests

2. Configure o Código

Na API CNPJ.ws, a documentação fornece um endpoint (link) para consultar CNPJs. O link segue o formato:

Codigo
https://publica.cnpj.ws/cnpj/{CNPJ}

Por exemplo, para a Vale (33.592.510/0001-54), o link seria:

Codigo
https://publica.cnpj.ws/cnpj/33592510000154

Aqui está o código para consultar o CNPJ:

Python
import requests
from pprint import pprint

# Define o CNPJ da Vale
cnpj = "33592510000154"
url = f"https://publica.cnpj.ws/cnpj/{cnpj}"

# Faz a requisição GET
response = requests.get(url)

# Verifica se a requisição deu certo (código 200)
if response.status_code == 200:
    data = response.json()
    pprint(data)  # Mostra os dados de forma organizada
else:
    print(f"Erro: {response.status_code}")

3. Entenda os Códigos de Resposta

Quando você faz uma requisição, a API retorna um código de status:

  • 200: Deu certo, os dados foram retornados.
  • 404: CNPJ não encontrado.
  • 429: Muitas requisições (limite da API pública atingido).
  • Outros códigos indicam erros diversos.

No nosso exemplo, se o CNPJ estiver correto, você verá o código 200 e um JSON (formato de dados) com todas as informações da empresa.

4. Organize os Dados com pprint

O JSON retornado pela API é um dicionário grande, com muitos dados aninhados (dicionários dentro de dicionários). Para facilitar a leitura, usamos a biblioteca pprint (pretty print), que já vem com o Python. No código, substituímos:

Python
print(response.json())

por:

Python
pprint(response.json())

Isso organiza a saída, mostrando a hierarquia dos dados. Por exemplo, você verá campos como:

  • atualizado_em: Data da última atualização (ex.: 7 de abril de 2025).
  • razao_social: Vale S.A.
  • capital_social: Valor do capital da empresa.
  • estabelecimento > atividade_principal > descricao: Extração de minério de ferro.

5. Extraia Informações Específicas

Para pegar apenas a atividade principal, você pode acessar o campo desejado no dicionário. Adicione ao código:

Python
atividade_principal = data["estabelecimento"]["atividade_principal"]["descricao"]
print(f"Atividade Principal: {atividade_principal}")

Quando executado, isso imprime:

Codigo
Atividade Principal: Extração de minério de ferro

Com o pprint, fica mais fácil encontrar o "caminho" para outros dados, como a lista de sócios ou o porte da empresa.

Dicas para Usar a API CNPJ.ws

  • CNPJ Correto: Um erro comum é digitar o CNPJ errado (ex.: faltar um zero). A API retorna um erro claro, como "CNPJ inválido", ajudando a corrigir.
  • Limites da API Pública: A versão gratuita tem um número limitado de requisições por minuto. Para uso intenso (ex.: contabilidade ou jurídico), considere a API comercial.
  • Informações Sensíveis: Dados como CPF dos sócios são parcialmente ocultos por questões de privacidade.
  • Teste Outros CNPJs: Troque o CNPJ no código para consultar qualquer empresa, como a Hashtag ou outra de sua escolha.

Perguntas frequentes

1. O que é a API CNPJ.ws?

A CNPJ.ws é uma API que permite consultar informações públicas de empresas brasileiras a partir do CNPJ, como razão social, capital social, atividade principal, natureza jurídica e sócios. Ela tem uma versão pública gratuita, com limite de requisições por minuto, e uma versão comercial paga, com mais dados e menos limitações.

2. Qual biblioteca Python usar para consultar um CNPJ?

Você usa a biblioteca requests, que faz as requisições à API. Instale-a com pip install requests no terminal. Para visualizar o JSON retornado de forma mais organizada, também vale usar a biblioteca pprint (pretty print), que já vem incluída no Python e mostra a hierarquia dos dados aninhados.

3. O que significam os códigos de resposta 200, 404 e 429?

Esses são códigos de status HTTP retornados pela API. O 200 indica sucesso, com os dados retornados corretamente. O 404 significa que o CNPJ não foi encontrado. O 429 indica muitas requisições, ou seja, você atingiu o limite da API pública. Outros códigos apontam erros diversos na consulta.

4. A API pública do CNPJ.ws é gratuita?

Sim, a CNPJ.ws oferece uma versão pública gratuita, ideal para começar e testar consultas. Ela tem um limite de requisições por minuto, mas é suficiente para muitos casos de uso. Para volumes maiores, como em contabilidade ou jurídico, existe a versão comercial paga, com mais dados e menos restrições.

Conclusão

Com apenas algumas linhas de Python e a API CNPJ.ws, você pode consultar informações detalhadas de qualquer empresa brasileira, desde a razão social até a atividade principal, de forma automática e eficiente.

Isso é perfeito para quem trabalha com contabilidade, jurídico ou precisa analisar dados de empresas. Baixe o código de exemplo, teste com o CNPJ da Vale ou de outra empresa e veja como é fácil!

E se quiser mais conteúdos sobre Python como este, veja os posts em nosso blog!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos