# Empresas Novas por CNPJ, CNAE, UF e Porte (`johnatan029/cnpj-new-companies`) Actor

Encontre empresas recém-abertas no Brasil a partir dos dados abertos oficiais da Receita Federal. Filtre matrizes ativas por mês, UF, CNAE completo ou prefixo e porte; receba CNPJ, razão social, início, município, natureza jurídica e capital social. Cobrança apenas por lead entregue.

- **URL**: https://apify.com/johnatan029/cnpj-new-companies.md
- **Developed by:** [Johnn Mottin](https://apify.com/johnatan029) (community)
- **Categories:**
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 empresa nova

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Encontre empresas recém-abertas no Brasil por CNAE, UF e porte

Transforme o snapshot mensal do CNPJ em uma lista prática de **novas matrizes ativas** para prospecção, pesquisa de mercado e inteligência comercial.

Este Actor entrega empresas cujo **início de atividade pertence ao mês de referência**, com filtros por:

- UF;
- CNAE completo;
- prefixo de CNAE;
- porte.

Cada lead pode incluir CNPJ, razão social, data de início, CNAE principal, UF, código de município, natureza jurídica e capital social.

O produto usa um **índice mensal mantido pela JM Forge**, construído a partir dos arquivos oficiais de dados abertos do CNPJ da Receita Federal. Cada registro carrega `versaoDosDados` e `staleness` para deixar explícito de qual fotografia mensal ele veio.

Sem scraping de site. Sem busca por nome. Sem IA em runtime.

#### Principais recursos

- **Empresas recém-abertas no Brasil**
- **Matrizes ativas**
- **Filtro por mês de início**
- **Filtro por UF**
- **Filtro por CNAE completo**
- **Filtro por prefixo de CNAE**
- **Filtro por porte**
- **CNPJ limpo e formatado**
- **Razão social**
- **Data de início**
- **CNAE principal**
- **UF**
- **Código de município da base CNPJ**
- **Natureza jurídica**
- **Capital social**
- **Versão dos dados em cada registro**
- **Alerta explícito de índice atrasado**
- **Resumo gratuito da execução**
- **Contagem por UF**
- **Até 50.000 leads por execução**
- **Cobrança somente por empresa entregue**
- **Pay Per Event**

> **Actor comunitário não-oficial. Sem afiliação com a Receita Federal do Brasil ou qualquer órgão público.** Os dados de origem são públicos e vêm dos arquivos de dados abertos do CNPJ. O Actor consome um índice mensal derivado desses arquivos e mantido pela JM Forge. Use `versaoDosDados` e `staleness` para verificar a fotografia efetivamente usada.

***

### Para que este Actor serve

A pergunta central é:

> Quais matrizes ativas começaram atividade neste mês e combinam com o nicho que quero prospectar?

Exemplos de uso:

- prospecção B2B;
- geração de leads;
- pesquisa de novos entrantes;
- análise de abertura de empresas;
- inteligência territorial;
- mapeamento de setores;
- acompanhamento de concorrência;
- listas por CNAE;
- listas por estado;
- enriquecimento de CRM;
- dashboards mensais;
- automação comercial.

***

### Para quem é

#### Equipes de vendas B2B

Crie listas mensais de empresas que acabaram de entrar no mercado dentro do seu segmento.

Exemplo:

```text
UF = SP
CNAE prefixo = 56
porte = 01
```

Isso pode ajudar uma empresa que vende para pequenos negócios de alimentação a encontrar novas matrizes dentro desse recorte.

#### Agências e prestadores de serviço

Pesquise novos negócios que podem precisar de:

- marketing;
- contabilidade;
- tecnologia;
- seguros;
- meios de pagamento;
- telecom;
- serviços empresariais;
- equipamentos;
- fornecedores.

#### Pesquisa de mercado

Analise novos entrantes por:

- UF;
- divisão CNAE;
- CNAE específico;
- porte.

#### Dados e automação

Conecte o Dataset a:

- Apify API;
- n8n;
- Make;
- Google Sheets;
- CRM;
- bancos de dados;
- BI;
- aplicações internas.

***

### O que significa "empresa nova" neste Actor

O recorte deste produto é específico.

Um `NEW_COMPANY` representa:

```text
estabelecimento matriz
+
situação ativa
+
data de início no mês de referência
```

Portanto, o Actor **não** usa "empresa nova" como sinônimo de qualquer registro CNPJ que apareceu ou mudou.

***

### O que fica fora do recorte

Este Actor não inclui como lead:

- filial recém-aberta;
- empresa já baixada;
- reabertura tratada como empresa nova;
- alteração cadastral de empresa antiga;
- empresa de outro mês de referência.

Para acompanhar alterações cadastrais de CNPJs existentes, use o Actor independente de monitoramento de mudanças.

***

### Fonte dos dados

A origem é a base pública de CNPJ da Receita Federal.

O fluxo técnico é:

```text
snapshot oficial de dados abertos da RFB
        ↓
índice mensal JM Forge (RFB-INDEX)
        ↓
filtros deste Actor
        ↓
NEW_COMPANY
```

O Actor não precisa baixar o snapshot completo de vários gigabytes em cada execução.

Ele lê o índice mensal pré-processado e entrega somente os registros relevantes ao filtro.

***

### Por que existe um índice intermediário

O snapshot oficial do CNPJ é grande.

Para transformar essa fonte em uma consulta rápida de novos entrantes, a JM Forge pré-processa mensalmente os dados públicos e cria um índice por:

```text
mês de referência
UF
chunks
```

Esse índice é uma dependência de dados do produto.

Ele não é outro Actor sendo encadeado em runtime.

***

### Frescor mensal

Este produto é **mensal**.

Ele não promete:

```text
tempo real
atualização diária
alerta instantâneo de abertura
```

O mês usado fica explícito em:

```text
versaoDosDados
staleness
```

Se o índice mensal esperado ainda não estiver disponível, o Actor não esconde isso.

***

### `staleness`

Cada `NEW_COMPANY` inclui um bloco como:

```json
{
  "staleness": {
    "indexMonth": "2026-07",
    "expectedMonth": "2026-07",
    "stale": false
  }
}
```

Quando:

```text
stale: true
```

o Dataset continua identificando a versão real usada, e o resumo recebe um aviso de qualidade.

Isso evita apresentar uma fotografia antiga como se fosse o mês esperado.

***

### `versaoDosDados`

O formato pode incluir informações como:

```json
{
  "snapshotMonth": "2026-08",
  "referenceMonth": "2026-07",
  "builtAt": "2026-08-31T23:22:20.138Z"
}
```

#### `snapshotMonth`

Mês do snapshot oficial usado pelo processo de indexação.

#### `referenceMonth`

Mês de início das empresas selecionadas no índice.

#### `builtAt`

Momento em que o índice mensal foi construído.

Use o conteúdo efetivamente retornado pelo Actor como fonte de verdade para a versão da execução.

***

### Input

#### Exemplo recomendado

```json
{
  "ufs": [
    "SP"
  ],
  "cnaes": [
    "56"
  ],
  "portes": [
    "01"
  ],
  "mes": "",
  "maxResults": 500,
  "maxRuntimeMs": 300000
}
```

#### Campos de input

| Campo | Default | Descrição |
|---|---:|---|
| `ufs` | `[]` | UFs desejadas. Vazio = todas as disponíveis. |
| `cnaes` | `[]` | CNAEs completos ou prefixos de 2–7 dígitos. Vazio = todos. |
| `portes` | `[]` | `01`, `03` e/ou `05`. Vazio = todos. |
| `mes` | vazio | Mês de referência `AAAA-MM`. Vazio = índice mais recente. |
| `maxResults` | `1000` | Máximo de leads entregues/cobrados. |
| `maxRuntimeMs` | `300000` | Teto de runtime. |
| `debug` | `false` | Logs adicionais. |

***

### Filtro por UF

Exemplo:

```json
{
  "ufs": [
    "SP",
    "MG",
    "PR"
  ]
}
```

Lista vazia:

```json
{
  "ufs": []
}
```

significa todas as UFs disponíveis no índice do mês.

O código:

```text
EX
```

representa Exterior quando presente na classificação de UF da fonte.

***

### Filtro por CNAE

Você pode usar o código completo:

```json
{
  "cnaes": [
    "5611201"
  ]
}
```

ou um prefixo:

```json
{
  "cnaes": [
    "56"
  ]
}
```

O prefixo `56` inclui qualquer CNAE principal que comece com:

```text
56
```

Isso permite pesquisar uma divisão inteira sem listar todos os CNAEs individualmente.

***

### Múltiplos CNAEs

O registro passa pelo filtro quando casa com **qualquer** prefixo solicitado.

Exemplo:

```json
{
  "cnaes": [
    "56",
    "6201",
    "6911701"
  ]
}
```

***

### Filtro por porte

Códigos disponíveis:

```text
01 = Micro Empresa
03 = Empresa de Pequeno Porte
05 = Demais
```

Exemplo:

```json
{
  "portes": [
    "01",
    "03"
  ]
}
```

***

### Mês de referência

Para usar o índice mais recente:

```json
{
  "mes": ""
}
```

Para solicitar um mês específico ainda disponível no índice:

```json
{
  "mes": "2026-07"
}
```

O mês se refere ao recorte de início de atividade usado pelo índice.

***

### Output

O Dataset contém:

```text
NEW_COMPANY
RUN_SUMMARY
```

`NEW_COMPANY` é o lead cobrado.

`RUN_SUMMARY` é gratuito.

***

### Exemplo de `NEW_COMPANY`

```json
{
  "recordType": "NEW_COMPANY",
  "cnpj": "68195128000191",
  "cnpjFormatado": "68.195.128/0001-91",
  "razaoSocial": "EMPRESA EXEMPLO LTDA",
  "dataInicio": "2026-07-27",
  "cnaePrincipal": "5620104",
  "uf": "SP",
  "municipioCodigo": "7107",
  "porte": "01",
  "naturezaJuridica": "2135",
  "capitalSocial": "100,00",
  "matrizFilial": "matriz",
  "situacao": "ATIVA",
  "versaoDosDados": {
    "snapshotMonth": "2026-08",
    "referenceMonth": "2026-07",
    "builtAt": "2026-08-31T23:22:20.138Z"
  },
  "staleness": {
    "indexMonth": "2026-07",
    "expectedMonth": "2026-07",
    "stale": false
  },
  "observedAt": "2026-08-31T23:26:22.912Z"
}
```

O exemplo mostra o **shape** do registro.

Os valores reais dependem da versão mensal do índice e dos filtros usados.

***

### Campos de `NEW_COMPANY`

| Campo | Descrição |
|---|---|
| `recordType` | `NEW_COMPANY`. |
| `cnpj` | CNPJ sem máscara. |
| `cnpjFormatado` | CNPJ formatado. |
| `razaoSocial` | Razão social quando disponível. |
| `dataInicio` | Data de início de atividade. |
| `cnaePrincipal` | CNAE principal. |
| `uf` | UF do estabelecimento matriz. |
| `municipioCodigo` | Código de município da base CNPJ. |
| `porte` | Código de porte. |
| `naturezaJuridica` | Código de natureza jurídica. |
| `capitalSocial` | Capital social conforme representado no índice. |
| `matrizFilial` | `matriz`. |
| `situacao` | `ATIVA`. |
| `versaoDosDados` | Carimbo do snapshot/índice usado. |
| `staleness` | Diagnóstico do mês de referência. |
| `observedAt` | Timestamp da entrega. |

***

### Código do município

O Actor retorna:

```text
municipioCodigo
```

conforme a codificação usada no conjunto de dados CNPJ.

Ele não converte esse código para o nome do município nesta versão.

Se você precisa do nome, faça o mapeamento downstream com a tabela correspondente.

***

### Capital social

`capitalSocial` é preservado conforme representado no índice derivado da fonte.

Não assuma que seja um número JavaScript já convertido.

Faça parsing downstream conforme sua necessidade de moeda/decimal.

***

### `RUN_SUMMARY`

O resumo final é gratuito.

Ele pode incluir:

```text
recordsWritten
unitsRequested
unitsOk
unitsFailed
capReason
qualityAlert
sourceUnavailable
warnings
units
outcomeKind
billableRecords
stateVersion
report
httpRequests
cost
pricingLabel
```

***

### `report`

O bloco:

```text
report
```

pode incluir:

```text
indexMonth
staleness
totalNovasNoMes
scanned
matched
delivered
skippedByCap
porUf
```

#### `totalNovasNoMes`

Quantidade total de novas matrizes no índice mensal antes dos filtros do usuário.

#### `scanned`

Registros lidos nos chunks efetivamente processados.

#### `matched`

Registros que passaram pelos filtros aplicados.

#### `delivered`

Leads realmente entregues.

#### `skippedByCap`

Registros que casaram com o filtro, mas ficaram além do limite de entrega.

#### `porUf`

Quantidade encontrada por UF dentro das unidades processadas.

***

### Resultado zero é válido

Uma consulta pode retornar:

```text
matched = 0
delivered = 0
```

sem existir erro.

Exemplo:

```text
UF específica
+
CNAE muito restrito
+
porte específico
```

pode legitimamente não ter nenhuma nova matriz naquele mês.

Busca sem lead entregue não gera cobrança de `new-company-lead`.

***

### Falha parcial por UF

O índice é lido em unidades por UF.

Se uma UF falhar enquanto outras funcionam, o Actor pode entregar resultado parcial.

O resumo e os warnings deixam isso explícito.

Uma UF indisponível nunca é interpretada como:

```text
0 empresas
```

para aquela UF.

***

### API da Apify

Execute via API:

```bash
curl -s "https://api.apify.com/v2/acts/<SEU_USUARIO>~cnpj-new-companies/run-sync-get-dataset-items?token=<SEU_TOKEN>" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "ufs":["SP"],
    "cnaes":["56"],
    "portes":["01"],
    "maxResults":500
  }'
```

Substitua:

```text
<SEU_USUARIO>
<SEU_TOKEN>
```

pelos seus dados da Apify.

***

### Integrações

Use com:

- Apify API;
- Tasks;
- Schedules;
- webhooks;
- n8n;
- Make;
- Google Sheets;
- CRM;
- bancos de dados;
- BI;
- aplicações internas;
- pipelines de prospecção.

***

### Agendamento

Este produto foi criado para uma fonte de frescor **mensal**.

O uso natural é:

```text
1 execução por mês
```

depois que o novo índice estiver disponível.

Você também pode executar sob demanda.

Reexecutar o mesmo mês com os mesmos filtros pode entregar os mesmos leads novamente.

Este Actor é **stateless** do ponto de vista do cliente: ele não lembra que um lead já foi entregue em uma execução anterior.

***

### Importante sobre reexecução

`NEW_COMPANY` significa:

```text
empresa nova no mês de referência
```

e não:

```text
registro nunca antes entregue para este cliente
```

Portanto, se você executar julho duas vezes com os mesmos filtros, poderá receber julho novamente.

Para uma rotina mensal, mantenha o mês/schedule organizado no seu workflow.

***

### Cobrança

Este Actor usa:

```text
Pay Per Event
```

O modelo de publicação contém:

```text
apify-actor-start
new-company-lead
```

#### `apify-actor-start`

É o evento sintético de início da própria Apify.

Ele é configurado na aba **Pricing** e cobrado automaticamente pela plataforma.

O código deste Actor **não** deve criar um segundo `actor-start` customizado.

#### `new-company-lead`

É cobrado por cada `NEW_COMPANY` entregue.

O Actor não cobra `new-company-lead` por:

- lead além de `maxResults`;
- registro filtrado por UF/CNAE/porte;
- busca legítima sem resultados;
- `RUN_SUMMARY`.

A aba **Pricing** é sempre a fonte autoritativa dos preços atuais.

***

### O que é gratuito

Não gera cobrança de `new-company-lead`:

```text
RUN_SUMMARY
busca sem resultado
registro descartado pelos filtros
registro além do cap
```

O evento sintético de início configurado na Apify ainda pode se aplicar à execução.

***

### Controle de custo

Principais controles:

```text
ufs
cnaes
portes
maxResults
maxRuntimeMs
```

#### Lista mais focada

Use:

- uma ou poucas UFs;
- CNAE específico;
- porte específico;
- `maxResults` baixo.

#### Pesquisa mais ampla

Brasil inteiro + todos os CNAEs + todos os portes aumenta o volume lido e a quantidade potencial de leads.

Use `maxResults` para limitar entrega/cobrança.

***

### Health e transparência

O Actor não transforma indisponibilidade do índice em resposta de negócio.

Ele verifica:

- ponteiro do mês atual;
- metadados do índice;
- chunks por UF;
- formato JSON;
- mês de referência esperado;
- completude dos campos essenciais;
- limites de runtime/requests;
- cobrança.

Problemas de fonte aparecem em:

```text
qualityAlert
warnings
sourceUnavailable
units
STATS
```

***

### `STATS`

O Key-Value Store padrão recebe:

```text
STATS
```

com informações operacionais como:

- requests HTTP;
- records written;
- charged results;
- runtime;
- compute units;
- warnings;
- qualidade;
- custo estimado conforme a configuração de pricing.

***

### Limites honestos

#### Não é tempo real

A unidade de frescor deste produto é mensal.

#### Não é um feed diário de aberturas

O Actor não promete descobrir um CNPJ no mesmo dia em que ele aparece na Receita.

#### O índice mensal é uma camada intermediária

O runtime lê um índice JM Forge construído a partir do snapshot oficial.

Se esse índice estiver indisponível, o Actor não consegue substituir silenciosamente a fonte.

#### Somente matrizes ativas

Filiais ficam fora deste produto.

#### Reexecução pode repetir leads

Não há deduplicação persistente por cliente entre runs.

#### CNAE é o principal do estabelecimento

O filtro atual usa:

```text
cnaePrincipal
```

e não CNAEs secundários.

#### Município é código

O Actor não entrega o nome do município nesta versão.

#### Porte é código da fonte

Valores:

```text
01
03
05
```

#### Capital social é valor de fonte/index

Faça parsing downstream se precisar de tipo monetário específico.

#### `versaoDosDados` é essencial

Sempre preserve esse campo se você armazenar os leads em outro sistema.

#### Mês explícito depende de retenção do índice

Um mês antigo só funciona enquanto o índice correspondente estiver disponível.

#### Fonte e índice podem atrasar

Quando o mês disponível está atrás do mês fechado esperado, o Actor marca `stale: true`.

#### Não inclui dados de contato

O produto não promete:

- e-mail;
- telefone;
- site;
- nome de sócio;
- WhatsApp.

Ele entrega dados cadastrais de novos entrantes dentro do recorte documentado.

***

### Perguntas frequentes

#### De onde vêm os dados?

Dos dados abertos públicos do CNPJ da Receita Federal, pré-processados em um índice mensal mantido pela JM Forge.

#### É scraping da Receita?

Não.

#### Preciso de chave da Receita Federal?

Não.

#### O Actor entrega empresas abertas hoje?

Não.

O frescor é mensal.

#### O que é considerado empresa nova?

Matriz ativa com início de atividade no mês de referência.

#### Inclui filiais?

Não.

#### Inclui empresas baixadas?

Não neste recorte.

#### Posso buscar Brasil inteiro?

Sim.

Deixe:

```json
{
  "ufs": []
}
```

#### Posso buscar um CNAE específico?

Sim.

```json
{
  "cnaes": [
    "5611201"
  ]
}
```

#### Posso usar prefixo de CNAE?

Sim.

```json
{
  "cnaes": [
    "56"
  ]
}
```

#### Posso filtrar microempresas?

Sim.

```json
{
  "portes": [
    "01"
  ]
}
```

#### Posso pedir um mês específico?

Sim, se ele ainda estiver disponível no índice.

```json
{
  "mes": "2026-07"
}
```

#### O que acontece se o índice estiver atrasado?

O Actor marca staleness e adiciona warning.

#### O que acontece se uma UF falhar?

As UFs saudáveis podem continuar e o resultado parcial fica explicitamente marcado.

#### Uma busca com zero resultado é cobrada por lead?

Não.

#### O resumo é cobrado?

Não.

#### Se eu repetir a mesma execução, recebo os leads novamente?

Pode receber.

O produto é stateless entre runs.

#### O Actor traz nome do município?

Não nesta versão.

Traz `municipioCodigo`.

#### Traz e-mail ou telefone?

Não.

#### Pelo que eu pago?

Pelo evento `new-company-lead` para cada `NEW_COMPANY` entregue, além do evento sintético de início configurado na Apify.

#### Este Actor é oficial da Receita Federal?

Não.

É uma ferramenta comunitária independente construída sobre dados públicos oficiais.

***

### Suporte

Para bugs, dúvidas ou solicitação de campos:

```text
johnatan291303@gmail.com
```

Use também a aba **Issues** na página do Actor.

***

### Parte da suíte JM Forge

Também do mesmo desenvolvedor:

- **Consulta CNPJ Brasil e Empresas por CNAE** — consulta e pesquisa cadastral de empresas brasileiras.
- **Validador de CNPJ Alfanumérico — Lote e Migração** — validação estrutural de CNPJ numérico e alfanumérico.
- **Monitor de Mudanças Cadastrais de CNPJ** — acompanhamento de alterações cadastrais.
- **Triagem CNPJ — CEIS, CNEP, CEPIM e Leniência** — triagem factual de sanções federais.

Os Actors permanecem ferramentas independentes.

Use este Actor quando precisar de **novos entrantes do mês para prospecção e inteligência de mercado**.

# Actor input Schema

## `ufs` (type: `array`):

Estados desejados (siglas). Lista vazia = Brasil inteiro.

## `cnaes` (type: `array`):

CNAEs completos (7 dígitos) ou prefixos: "56" pega toda a divisão de alimentação. Lista vazia = todos.

## `portes` (type: `array`):

01 = Micro Empresa · 03 = Pequeno Porte · 05 = Demais. Lista vazia = todos.

## `mes` (type: `string`):

Vazio = mês mais recente disponível no índice (recomendado).

## `maxResults` (type: `integer`):

Cerca de entrega: além do teto nada é entregue nem cobrado.

## `maxRuntimeMs` (type: `integer`):

Cerca dura da run.

## `debug` (type: `boolean`):

Log detalhado.

## Actor input object example

```json
{
  "ufs": [
    "SP"
  ],
  "cnaes": [
    "56"
  ],
  "portes": [],
  "mes": "",
  "maxResults": 100,
  "maxRuntimeMs": 300000,
  "debug": false
}
```

# Actor output Schema

## `resultados` (type: `string`):

Dataset padrão contendo NEW\_COMPANY e o RUN\_SUMMARY gratuito.

## `estatisticas` (type: `string`):

Registro STATS com versão do índice, requests, cobrança, qualidade, runtime, limites e métricas operacionais.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "ufs": [
        "SP"
    ],
    "cnaes": [
        "56"
    ],
    "portes": [],
    "mes": "",
    "maxResults": 100,
    "maxRuntimeMs": 300000,
    "debug": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("johnatan029/cnpj-new-companies").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "ufs": ["SP"],
    "cnaes": ["56"],
    "portes": [],
    "mes": "",
    "maxResults": 100,
    "maxRuntimeMs": 300000,
    "debug": False,
}

# Run the Actor and wait for it to finish
run = client.actor("johnatan029/cnpj-new-companies").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "ufs": [
    "SP"
  ],
  "cnaes": [
    "56"
  ],
  "portes": [],
  "mes": "",
  "maxResults": 100,
  "maxRuntimeMs": 300000,
  "debug": false
}' |
apify call johnatan029/cnpj-new-companies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,johnatan029/cnpj-new-companies"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KFlROEKBC8CxnvMvf/builds/7OH8bqvb8cciF52aA/openapi.json
