---
title: "Buscar CNPJs ativos por atividade (CNAE) e município"
method: GET
path: "/v1/busca"
tags: ["Consulta"]
---

# Buscar CNPJs ativos por atividade (CNAE) e município

`GET /v1/busca`

## Request

- Base URL: `https://apipj.com.br`
- URL: `https://apipj.com.br/v1/busca`
- Auth: HTTP bearer

Lista estabelecimentos ativos pela atividade econômica principal (`cnae`, 7 dígitos, com ou sem pontuação) e/ou pelo município (`municipio`: código da Receita com 4 dígitos ou do IBGE com 7); pelo menos um dos dois filtros. Exige chave de API. Cada CNPJ devolvido conta 1 na cota mensal e 1 no limite por minuto do plano; a página tem no máximo o limite por minuto do plano (ou `limite`, até esse valor; teto de 1000) e é cortada pelo saldo do minuto e da cota. Paginação por cursor: envie `proximo_cursor` como `cursor` (mesmos filtros); `null` indica o fim. `total` é o número exato de estabelecimentos do filtro. Cada resultado tem o mesmo documento da consulta individual, no formato pedido, sem o quadro de sócios.

## Query parameters

- `cnae` string
- `municipio` string
- `cursor` string
- `formato` 'completo' | 'simplificado'
- `limite` integer

## Response `200`

Página de resultados

- BuscaResultado: Página da busca por atividade e município.
  - `dataset_month` string, required: Mês do lote da Receita Federal (AAAA-MM)
  - `total` integer, required: Estabelecimentos ativos do filtro (todas as páginas)
  - `resultados` union[], required: Documentos no formato pedido, sem sócios (`socios`/`qsa`)
    - union
      - DocumentoCompleto: Formato `completo` (padrão). Campos ausentes na base da Receita vêm como `null`; nenhuma chave some.
        - `cnpj` string, required: 14 caracteres, sem pontuação
        - `cnpj_formatado` string, required: AA.AAA.AAA/AAAA-DD
        - `razao_social` string, required: Razão social
        - `nome_fantasia` string, nullable: Nome fantasia
        - `matriz_filial` string: MATRIZ ou FILIAL
        - `situacao_cadastral` object, required
          - `codigo` string, nullable: Código
          - `descricao` string, nullable: ATIVA, BAIXADA, INAPTA, SUSPENSA ou NULA
          - `data` string, date, nullable: Data da situação (AAAA-MM-DD)
          - `motivo` CodigoDescricao
            - `codigo` string, nullable: Código da Receita Federal
            - `descricao` string, nullable: Descrição
        - `situacao_especial` object
          - `descricao` string, nullable: Situação especial
          - `data` string, date, nullable: Data da situação especial (AAAA-MM-DD)
        - `data_inicio_atividade` string, date, nullable: Início da atividade (AAAA-MM-DD)
        - `natureza_juridica` CodigoDescricao
          - `codigo` string, nullable: Código da Receita Federal
          - `descricao` string, nullable: Descrição
        - `qualificacao_responsavel` CodigoDescricao
          - `codigo` string, nullable: Código da Receita Federal
          - `descricao` string, nullable: Descrição
        - `porte` CodigoDescricao
          - `codigo` string, nullable: Código da Receita Federal
          - `descricao` string, nullable: Descrição
        - `capital_social` number, nullable: Capital social em reais
        - `cnae_principal` CodigoDescricao
          - `codigo` string, nullable: Código da Receita Federal
          - `descricao` string, nullable: Descrição
        - `cnaes_secundarios` CodigoDescricao[]
          - `codigo` string, nullable: Código da Receita Federal
          - `descricao` string, nullable: Descrição
        - `endereco` object
          - `tipo_logradouro` string, nullable: RUA, AVENIDA…
          - `logradouro` string, nullable: Logradouro
          - `numero` string, nullable: Número
          - `complemento` string, nullable: Complemento
          - `bairro` string, nullable: Bairro
          - `cep` string, nullable: CEP, só dígitos
          - `municipio` object
            - `codigo_rfb` string, nullable: Código do município na Receita
            - `codigo_ibge` string, nullable: Código IBGE (7 dígitos)
            - `nome` string, nullable: Nome
          - `uf` string, nullable: UF
          - `pais` string, nullable: País (endereço no exterior)
          - `cidade_exterior` string, nullable: Cidade no exterior
        - `telefones` Telefone[]
          - `ddd` string, nullable: DDD
          - `numero` string, nullable: Número, só dígitos
        - `fax` Telefone
          - `ddd` string, nullable: DDD
          - `numero` string, nullable: Número, só dígitos
        - `email` string, nullable: E-mail informado à Receita
        - `ente_federativo_responsavel` string, nullable: Ente federativo responsável (administração pública)
        - `simples` OpcaoRegime
          - `optante` boolean
          - `data_opcao` string, date, nullable: Data da opção (AAAA-MM-DD)
          - `data_exclusao` string, date, nullable: Data da exclusão (AAAA-MM-DD)
        - `mei` OpcaoRegime
          - `optante` boolean
          - `data_opcao` string, date, nullable: Data da opção (AAAA-MM-DD)
          - `data_exclusao` string, date, nullable: Data da exclusão (AAAA-MM-DD)
        - `socios` Socio[]
          - `nome` string, nullable: Nome do sócio
          - `tipo` string, nullable: PESSOA FISICA, PESSOA JURIDICA ou ESTRANGEIRO
          - `cpf_cnpj` string, nullable: CPF já mascarado pela Receita (***123456**) ou raiz de 8 caracteres do CNPJ do sócio pessoa jurídica
          - `qualificacao` CodigoDescricao
            - `codigo` string, nullable: Código da Receita Federal
            - `descricao` string, nullable: Descrição
          - `data_entrada` string, date, nullable: Entrada na sociedade (AAAA-MM-DD)
          - `faixa_etaria` string, nullable: Faixa etária
          - `pais` string, nullable: País (sócio estrangeiro)
          - `representante_legal` object, nullable
            - `cpf` string, nullable: CPF mascarado
            - `nome` string, nullable: Nome
            - `qualificacao` CodigoDescricao
              - …
        - `atualizado_em` string, required: Mês do lote da Receita Federal (AAAA-MM)
      - DocumentoSimplificado: Formato `simplificado`: plano, com datas DD/MM/AAAA, CNPJ, CEP e telefone já formatados e vazios como "".
        - `abertura` string
        - `situacao` string
        - `tipo` string
        - `nome` string
        - `fantasia` string
        - `porte` string
        - `natureza_juridica` string
        - `atividade_principal` unknown[]
          - unknown
        - `atividades_secundarias` unknown[]
          - unknown
        - `qsa` unknown[]
          - unknown
        - `logradouro` string
        - `numero` string
        - `complemento` string
        - `municipio` string
        - `bairro` string
        - `uf` string
        - `cep` string
        - `email` string
        - `telefone` string
        - `data_situacao` string
        - `cnpj` string
        - `ultima_atualizacao` string
        - `status` string
        - `efr` string
        - `motivo_situacao` string
        - `situacao_especial` string
        - `data_situacao_especial` string
        - `capital_social` string
        - `simples` object
        - `simei` object
        - `extra` object
        - `billing` object
  - `proximo_cursor` string, nullable, required: Cursor opaco da próxima página; null no fim

## Other responses

- `400`: Filtro ausente ou inválido (`validation_error`) ou cursor de outra busca, de outro mês da base ou malformado (`cursor_invalido`)
- `401`: Sem chave de API, ou chave inválida ou revogada (`unauthorized`)
- `429`: Limite por minuto (`rate_limited`, com `Retry-After`) ou cota mensal (`quota_exceeded`, com `upgrade_url`) zerados
- `503`: Índice da busca indisponível (`busca_indisponivel`) ou busca ainda não vigente (`busca_em_breve`)

---

[API](https://skmtc.dev/apipj/apis/apipj-api-de-cnpj.md) · [All operations](https://skmtc.dev/apipj/apis/apipj-api-de-cnpj/llms.txt) · [OpenAPI document](https://skmtc.dev/apipj/apis/apipj-api-de-cnpj/revisions/3896b833e2b5?raw)
