# Brazil New Business Leads (`basta_compilar/brazil-fresh-business-leads`) Actor

Discover newly opened Brazilian companies before your competitors. Filter by company age, location, CNAE, and size, with structured CNPJ data and available contact information for B2B prospecting.

- **URL**: https://apify.com/basta\_compilar/brazil-fresh-business-leads.md
- **Developed by:** [Basta Compilar](https://apify.com/basta_compilar) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.50 / 1,000 new company leads

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

## Brazil New Business Leads 🇧🇷

**Find Brazilian companies right when they start doing business.**

*Fresh companies. Better timing. Better leads.*

Discover newly opened Brazilian companies before your competitors. Filter by company age, location, CNAE, and size, with structured CNPJ data and available contact information for B2B prospecting.

***

### What it does

Brazil New Business Leads helps you discover **newly opened Brazilian companies** at the moment they enter the market — so you can prospect with better timing.

The core value is:

**new company + opening date + company age + commercial filters + structured CNPJ data**

Phone, email, website and other contacts are returned as **available contact information** when found in public sources. Availability is never guaranteed.

***

### Find companies at the right moment

Use it to answer questions like:

```text
Companies opened in the last 7 days

New electricians in Campinas

New ME/EPP companies in São Paulo

Companies opened in my target market this month
```

That timing advantage is the product: reach businesses while they are still choosing suppliers, tools and services.

***

### Why newly opened companies?

New companies are often still deciding on:

- software
- accounting
- marketing
- internet
- telephony
- insurance
- financial services
- suppliers
- equipment
- professional services
- consulting

Finding them early creates an opportunity to reach potential customers **before** they lock in relationships with competitors.

This is timing-based sales intelligence — not a promise that every new company will buy.

***

### Key features

1. **Newly opened companies** — focus on businesses that just started
2. **`maxCompanyAgeDays`** — main freshness control
3. **Opening date** — official start of activities
4. **Company age in days** — exact days since opening
5. **Location** — state and city filters
6. **CNAE** — industry / activity codes and segments
7. **Company size (porte)** — ME, EPP and more
8. **Registration status** — e.g. only active companies
9. **Structured CNPJ data** — registry fields ready for CRM and automation
10. **Public contacts when available** — phone, email, website and other public contact information

***

### Maximum company age

The most important filter is:

```text
maxCompanyAgeDays
```

It returns only companies opened within the selected number of days.

**Default: 30 days**

```json
{
  "maxCompanyAgeDays": 7
}
```

Returns only companies opened in the last 7 days.

```json
{
  "maxCompanyAgeDays": 30
}
```

Returns only companies opened in the last 30 days.

> Companies older than the selected maximum age are excluded from the results.

You can also use presets in the Apify Console (Last 7 / 15 / 30 / 60 / 90 days, 6 months, 1 year, or Custom).

***

### Perfect for

#### B2B prospecting

Find companies that just entered the market.

#### Accounting firms

Identify newly opened companies that may need accounting services.

#### SaaS companies

Find new businesses still choosing the tools they will use.

#### Marketing agencies

Discover companies that may need digital presence and customer acquisition.

#### Banks & fintechs

Identify new businesses that may need business accounts, payments or credit.

#### Insurance

Find new companies that may need to purchase insurance.

#### Telecom providers

Discover new businesses that may be contracting internet, telephony and infrastructure.

#### Suppliers

Find potential customers recently entering the market.

***

### Input examples

#### Companies opened in the last 7 days

```json
{
  "maxCompanyAgeDays": 7,
  "states": ["SP"],
  "maxResults": 100
}
```

#### New electricians in Campinas

```json
{
  "maxCompanyAgeDays": 30,
  "states": ["SP"],
  "cities": ["Campinas"],
  "keywords": ["eletricista"],
  "maxResults": 100
}
```

#### New ME/EPP companies in São Paulo

```json
{
  "maxCompanyAgeDays": 30,
  "states": ["SP"],
  "companySizes": ["ME", "EPP"],
  "onlyActive": true,
  "maxResults": 500
}
```

#### Companies opened in my target market this month

```json
{
  "maxCompanyAgeDays": 30,
  "states": ["SP"],
  "cities": ["Campinas", "Hortolândia"],
  "onlyActive": true,
  "onlyHeadquarters": true,
  "maxResults": 200
}
```

***

### Output example

```json
{
  "company": {
    "cnpj": {
      "raw": "12345678000190",
      "formatted": "12.345.678/0001-90"
    },

    "legalName": "Example Company LTDA",
    "tradeName": "Example Company",

    "openingDate": "2026-09-10",
    "companyAgeDays": 4,

    "freshness": "VERY_FRESH",

    "status": "ATIVA",

    "companySize": "ME",

    "mainCnae": {
      "code": "4321-5/00",
      "description": "Electrical installation"
    },

    "address": {
      "city": "Campinas",
      "state": "SP"
    }
  },

  "contacts": {
    "phones": [
      "+5519999999999"
    ],

    "emails": [
      "contact@example.com"
    ]
  }
}
```

> Contact information depends on publicly available data and may not be available for every company.

***

### What you get

Each lead includes structured CNPJ / company data for prospecting:

- CNPJ
- legal name
- trade name
- opening date
- company age in days
- freshness classification
- registration status (situação cadastral)
- main CNAE
- secondary CNAEs
- company size (porte)
- legal nature
- share capital
- headquarters / branch (matriz / filial)
- complete address
- city
- state
- ZIP code

Also, **when available** (never guaranteed):

- phone
- email
- website
- additional public contact information, when enrichment is enabled

Optional enrichment may discover additional publicly available contact information. Phone, email, website and other contacts are **not** guaranteed for every company.

***

### Freshness classification

```text
VERY_FRESH = 0–7 days
FRESH      = 8–30 days
RECENT     = 31–90 days
YOUNG      = 91–180 days
OLD        = 181+ days
```

`maxCompanyAgeDays` controls which freshness categories can appear in your results. For example, with `maxCompanyAgeDays: 7`, you only get `VERY_FRESH` companies.

***

### Integrations

Use Brazil New Business Leads with:

- CRMs
- spreadsheets
- sales pipelines
- lead databases
- automation tools
- internal systems
- APIs

Typical flow:

```text
Brazil New Business Leads
↓
Newly opened companies
↓
CRM
↓
Sales team
↓
Outreach
```

***

### Built for volume

Designed for affordable, high-volume discovery of newly opened Brazilian companies.

Pay for delivered leads — not for companies filtered out by age or other criteria before enrichment.

Exact Store pricing can change; check the current Apify Store page for rates.

***

### Important notes

- The product is for discovering newly opened companies — not a contact-guarantee tool.
- Contact information depends on public data availability.
- Not every company has a phone, email or website.
- Opening date and company information depend on the underlying public data sources.
- Recently opened companies may have little or no digital presence yet.

***

### API & automation

Run the Actor from the Apify Console, via the Apify API, or from your own automations.

Typical usage:

1. Set `maxCompanyAgeDays` (or a Console preset).
2. Add location / CNAE / size / status filters for your market.
3. Set `maxResults`.
4. Optionally enable enrichment for available contact information.
5. Export dataset results to your CRM, sheet or pipeline.

Example API-oriented input:

```json
{
  "maxCompanyAgeDays": 30,
  "states": ["SP"],
  "cities": ["Campinas"],
  "onlyActive": true,
  "onlyHeadquarters": true,
  "enrichmentMode": "smart",
  "maxResults": 100
}
```

Results are written to the Actor dataset for download or downstream automation.

# Actor input Schema

## `maxCompanyAgeDaysPreset` (type: `string`):

Only return companies opened within this period. This is the main freshness control for the Actor.

## `maxCompanyAgeDays` (type: `integer`):

Used when Maximum company age is Custom, or when set directly in JSON input. Exact day count between opening date and run date. Default: 30.

## `openedAfter` (type: `string`):

Optional lower bound for opening date (YYYY-MM-DD). Combined with maxCompanyAgeDays — both must match.

## `openedBefore` (type: `string`):

Optional upper bound for opening date (YYYY-MM-DD). Combined with maxCompanyAgeDays — both must match.

## `states` (type: `array`):

Brazilian state codes, e.g. SP, RJ, MG. Empty array or omitted = search all Brazil (no state filter).

## `cities` (type: `array`):

City names (without UF), e.g. Campinas, Hortolândia. Empty array or omitted = no city filter (Actor may auto-shard mid-size cities for better matriz discovery).

## `segments` (type: `array`):

Filter by industry segment. Includes Orzu service niches, popular shortcuts, and all IBGE CNAE divisions. Empty = any segment.

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

Primary CNAE codes (7 digits or formatted, e.g. 4321500 or 4321-5/00). Merged with selected segments. Empty array or omitted = no CNAE filter.

## `keywords` (type: `array`):

Match against legal name, trade name, and CNAE description (e.g. eletricista, construção). Empty array or omitted = no textual filter.

## `companySizes` (type: `array`):

Porte da empresa. Empty array or omitted = any size (no porte filter).

## `legalNature` (type: `array`):

Natureza jurídica codes (e.g. 2062 for LTDA). Empty = any.

## `onlyActive` (type: `boolean`):

Keep only companies with status ATIVA.

## `onlyHeadquarters` (type: `boolean`):

Keep only CNPJ matriz (/0001). Tip: leave **Cities** empty — the Actor auto-shards mid-size cities (Campinas, Guarulhos…). Statewide SP without cities returns mostly chain filiais and yields 0 leads.

## `onlyWithPhone` (type: `boolean`):

Only keep leads that have at least one phone after processing.

## `onlyWithEmail` (type: `boolean`):

Only keep leads that have at least one email after processing.

## `onlyWithWhatsapp` (type: `boolean`):

Only keep leads with WhatsApp status **CONFIRMED** (explicit wa.me / send / labeled WhatsApp text). Mobile registry numbers alone are LIKELY, not confirmed.

## `onlyWithWebsite` (type: `boolean`):

Only keep leads that have a website.

## `enrichmentMode` (type: `string`):

**none** (default / Store auto-test) — cheapest & fastest: registry / CNPJ data only; no websites, Google, Maps, social, or browser.
**smart** — may discover publicly available contact information (website, Instagram, contact pages, link-in-bio; HTTP only).
**deep** — more pages and deeper public contact search (higher cost).

## `whatsappDiscovery` (type: `string`):

**none** (default / Store auto-test) — skip dedicated contact-channel discovery.
**smart** — registry + Instagram/site + website/contact pages + link-in-bio when public (HTTP only).
**deep** — also dedicated public search for contact links (higher cost). Availability is never guaranteed.

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

Maximum number of leads written to the dataset (and basic-lead events charged). Default 10 keeps Store auto-tests fast and cheap — raise this for production runs.

## `discoveryConcurrency` (type: `integer`):

Parallel requests for company discovery / registry lookups.

## `enrichmentConcurrency` (type: `integer`):

Parallel website enrichment requests (smart/deep modes).

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

Emit detailed pipeline logs (discovery, age filter, enrichment, early stop). Never logs secrets.

## Actor input object example

```json
{
  "maxCompanyAgeDaysPreset": "30",
  "maxCompanyAgeDays": 30,
  "states": [],
  "cities": [],
  "segments": [],
  "cnaes": [],
  "keywords": [],
  "companySizes": [],
  "onlyActive": true,
  "onlyHeadquarters": true,
  "onlyWithPhone": false,
  "onlyWithEmail": false,
  "onlyWithWhatsapp": false,
  "onlyWithWebsite": false,
  "enrichmentMode": "none",
  "whatsappDiscovery": "none",
  "maxResults": 10,
  "discoveryConcurrency": 5,
  "enrichmentConcurrency": 3,
  "debug": false
}
```

# Actor output Schema

## `leads` (type: `string`):

Dataset of newly opened business leads.

# 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 = {
    "maxCompanyAgeDaysPreset": "30",
    "maxCompanyAgeDays": 30,
    "states": [],
    "cities": [],
    "segments": [],
    "cnaes": [],
    "keywords": [],
    "companySizes": [],
    "onlyActive": true,
    "onlyHeadquarters": true,
    "onlyWithPhone": false,
    "onlyWithEmail": false,
    "onlyWithWhatsapp": false,
    "onlyWithWebsite": false,
    "enrichmentMode": "none",
    "whatsappDiscovery": "none",
    "maxResults": 10,
    "discoveryConcurrency": 5,
    "enrichmentConcurrency": 3,
    "debug": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("basta_compilar/brazil-fresh-business-leads").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 = {
    "maxCompanyAgeDaysPreset": "30",
    "maxCompanyAgeDays": 30,
    "states": [],
    "cities": [],
    "segments": [],
    "cnaes": [],
    "keywords": [],
    "companySizes": [],
    "onlyActive": True,
    "onlyHeadquarters": True,
    "onlyWithPhone": False,
    "onlyWithEmail": False,
    "onlyWithWhatsapp": False,
    "onlyWithWebsite": False,
    "enrichmentMode": "none",
    "whatsappDiscovery": "none",
    "maxResults": 10,
    "discoveryConcurrency": 5,
    "enrichmentConcurrency": 3,
    "debug": False,
}

# Run the Actor and wait for it to finish
run = client.actor("basta_compilar/brazil-fresh-business-leads").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 '{
  "maxCompanyAgeDaysPreset": "30",
  "maxCompanyAgeDays": 30,
  "states": [],
  "cities": [],
  "segments": [],
  "cnaes": [],
  "keywords": [],
  "companySizes": [],
  "onlyActive": true,
  "onlyHeadquarters": true,
  "onlyWithPhone": false,
  "onlyWithEmail": false,
  "onlyWithWhatsapp": false,
  "onlyWithWebsite": false,
  "enrichmentMode": "none",
  "whatsappDiscovery": "none",
  "maxResults": 10,
  "discoveryConcurrency": 5,
  "enrichmentConcurrency": 3,
  "debug": false
}' |
apify call basta_compilar/brazil-fresh-business-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,basta_compilar/brazil-fresh-business-leads"
        }
    }
}
```

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/KyY2M7wAO4JdfL6vu/builds/Nry4uJs4wxXkjuqZy/openapi.json
