# Amazon Brasil Sellers com CNPJ — Leads B2B e Receita Federal (`paulovitor18/amazon-brasil-vendedores-cnpj`) Actor

Descubra qual empresa está por trás de cada loja da Amazon Brasil. Informe termos de busca ou sellerIds e receba os vendedores parceiros com o CNPJ da ficha conferido na Receita Federal: razão social, situação, porte, CNAE, capital, sócios e endereço. Leads B2B para quem vende a lojista.

- **URL**: https://apify.com/paulovitor18/amazon-brasil-vendedores-cnpj.md
- **Developed by:** [MoreLock](https://apify.com/paulovitor18) (community)
- **Categories:** Lead generation, E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## Amazon Brasil Sellers com CNPJ — Leads B2B e Receita Federal

Quem vende para lojista de e-commerce sabe onde ele está, na Amazon, e não sabe **quem é a empresa por trás da loja**. Este Actor lê a ficha do vendedor na Amazon Brasil, pega o CNPJ que a própria Amazon publica ali e resolve esse CNPJ na Receita Federal: razão social, situação cadastral, porte, CNAE, capital social e quadro societário.

Os scrapers de vendedor da Amazon que comparamos na Store entregam nome, avaliação e contato da loja; nenhum deles traz CNPJ nem consulta a Receita Federal. É essa ponte que este Actor entrega.

Uma linha real, de uma execução de 10 termos (entre eles `whey protein`) em 13/09/2026:

```
Otimanutri → E A LAZARO SUPLEMENTOS ALIMENTARES LTDA
CNPJ 19.789.048/0001-59 · ATIVA · MICRO EMPRESA · desde 2014
CNAE 4763602 (Comércio varejista de artigos esportivos) · Assis/SP
Telefone publicado na ficha da Amazon · 1 sócio-administrador
```

A loja se chama Otimanutri; a empresa, não. Em 16 de 25 vendedores com CNPJ da mesma execução, o nome da loja não aparecia na razão social.

### Do nome da loja ao CNPJ conferido na Receita Federal

Cada vendedor parceiro da Amazon.com.br tem uma página pública com o bloco **Informações sobre o vendedor**: nome comercial, CNPJ, endereço e, às vezes, telefone. O Actor lê esse bloco, e só ele. O rodapé de toda página da Amazon traz o CNPJ da própria Amazon, e um raspador desatento devolveria esse número para todo vendedor; aqui o CNPJ só é aceito de dentro do bloco do vendedor e só quando fecha os dois dígitos verificadores.

Com o CNPJ em mãos, a consulta vai à base aberta da Receita Federal (minhareceita.org, com BrasilAPI de reserva). O que volta vem no campo `receita`, e o Actor ainda confere se o nome comercial da ficha bate com a razão social oficial (`nome_confere`) e se a marca da loja aparece nela (`loja_confere`).

Duas maneiras de usar:

- **Por termo de busca**: `furadeira`, `whey protein`, `ração para gato`. O Actor usa o filtro de vendedor da própria busca da Amazon para descobrir quem vende aquele produto.
- **Por ID de vendedor**: cole sellerIds (`A11UXN83IT67O5`, em qualquer caixa) ou URLs da página do vendedor (`seller=`) ou da vitrine (`me=`) em `ids_vendedores`.

### O que vem em cada vendedor

| Bloco | Campos |
|---|---|
| Loja | `seller_id`, `url_vendedor`, `nome_da_loja`, `origem` |
| Identidade da ficha | `nome_comercial`, `cnpj`, `telefone`, `telefone_fonte`, `telefone_motivo`, `endereco` (logradouro, cidade, UF, CEP, país e as linhas cruas) |
| Receita Federal | `receita`: `razao_social`, `nome_fantasia`, `situacao_cadastral`, `porte`, `natureza_juridica`, `data_inicio_atividade`, `capital_social`, `cnae_codigo`, `cnae_descricao`, `socios`, `municipio_uf`, `cep`, `matriz_ou_filial` (MATRIZ ou FILIAL), `fonte` (a base que respondeu: minhareceita.org ou brasilapi) |
| Conferência | `nome_confere`, `loja_confere`, `enriquecido`, `receita_status`, `receita_motivo` |
| Abstenção declarada | `cnpj_ausente_motivo`, `tipo_vendedor`, `dados_omitidos_motivo`, `cpf_omitido_no_nome` |
| Auditoria da cobrança | `cobrado_contato`, `cobrado_receita`, `cnpj_repetido_na_execucao`, `coletado_em` |

- **`telefone_fonte`** diz de onde o número veio: `AMAZON` (publicado na ficha, o canal que o vendedor mantém para comprador) ou `RECEITA` (cadastro fiscal). Do cadastro fiscal só sai **telefone fixo**: celular de lá costuma ser do contador ou pessoal e fica de fora, com `telefone_motivo: CELULAR_DO_CADASTRO_FISCAL_OMITIDO`. Número de fachada, como `1111111111`, também não sai.
- **`nome_confere`** compara o núcleo das palavras do nome comercial com o da razão social, dividindo pelo **maior** dos dois: `ABC COMERCIO` e `ABC TELECOM` não conferem. Na prática a Amazon publica a razão social como nome comercial, e o campo serve de controle de integridade.
- **`loja_confere`** responde outra pergunta: a marca da vitrine está na razão social? A primeira palavra da marca tem de estar lá. `false` é o comum.
- **`endereco.cidade`** prefere o município da Receita; a cidade inferida das linhas da ficha vem marcada com `cidade_inferida: true`.

### Entrada de exemplo

```json
{
  "termos_busca": ["whey protein", "ração para gato", "luminária led"],
  "max_vendedores": 40,
  "incluir_sem_cnpj": false
}
```

Ou, para vendedores específicos:

```json
{
  "ids_vendedores": ["A11UXN83IT67O5", "https://www.amazon.com.br/s?me=A3DAKZK6F5LNYP"]
}
```

### Saída de exemplo: um vendedor real com CNPJ resolvido

Item da execução `CcCowsfOkZKlv35Yt`, com os últimos dígitos do telefone e o nome do sócio ocultos só aqui na página; na sua execução os dois saem completos:

```json
{
  "seller_id": "A3DAKZK6F5LNYP",
  "url_vendedor": "https://www.amazon.com.br/sp?seller=A3DAKZK6F5LNYP",
  "nome_da_loja": "Otimanutri",
  "nome_comercial": "E A LAZARO SUPLEMENTOS ALIMENTARES LTDA",
  "cpf_omitido_no_nome": false,
  "cnpj": "19.789.048/0001-59",
  "cnpj_ausente_motivo": null,
  "tipo_vendedor": "EMPRESA_BR_COM_CNPJ",
  "dados_omitidos_motivo": null,
  "telefone": "183322••••",
  "telefone_fonte": "AMAZON",
  "telefone_motivo": null,
  "endereco": {
    "logradouro": "Av Felix de Castro, 360, Conj Hab Irma Catarina",
    "cidade": "ASSIS",
    "cidade_inferida": false,
    "uf": "SP",
    "cep": "19813700",
    "pais": "BR",
    "linhas": ["Av Felix de Castro, 360", "Conj Hab Irma Catarina", "Assis", "SÃO PAULO", "19813700", "BR"]
  },
  "receita": {
    "razao_social": "E A LAZARO SUPLEMENTOS ALIMENTARES LTDA",
    "nome_fantasia": null,
    "situacao_cadastral": "ATIVA",
    "porte": "MICRO EMPRESA",
    "natureza_juridica": "Sociedade Empresária Limitada",
    "data_inicio_atividade": "2014-02-25",
    "capital_social": 20000,
    "cnae_codigo": 4763602,
    "cnae_descricao": "Comércio varejista de artigos esportivos",
    "socios": [
      { "nome": "(oculto nesta página)", "qualificacao": "Sócio-Administrador", "faixa_etaria": "Entre 41 a 50 anos", "data_entrada": "2023-01-10" }
    ],
    "municipio_uf": "ASSIS/SP",
    "cep": "19813700",
    "matriz_ou_filial": "MATRIZ",
    "fonte": "minhareceita.org"
  },
  "receita_status": "OK",
  "receita_motivo": null,
  "nome_confere": true,
  "nome_similaridade": 1,
  "loja_confere": false,
  "loja_similaridade": 0,
  "enriquecido": true,
  "origem": "busca:whey protein",
  "origens": ["busca:whey protein"],
  "cobrado_contato": true,
  "cobrado_receita": true,
  "cnpj_repetido_na_execucao": false,
  "coletado_em": "2026-09-13T17:03:42.203Z"
}
```

### Parâmetros

| Campo | Tipo | Padrão | O que faz |
|---|---|---|---|
| `termos_busca` | lista | `furadeira` | Produtos ou categorias, como você digitaria na busca da Amazon Brasil. Cada termo revela até 6 vendedores. |
| `ids_vendedores` | lista | `[]` | SellerIds ou URLs com `seller=` ou `me=`. Preenchido, **tem precedência** sobre os termos. |
| `max_vendedores` | inteiro | `20` | Teto de vendedores entregues. Nunca sai mais que isso. |
| `incluir_sem_cnpj` | booleano | `false` | Ligado, entram também vendedores sem CNPJ na ficha, sem cobrança de Receita. |

### Quantos vendedores cada termo rende

A busca da Amazon mostra no máximo **6 vendedores** no filtro de vendedor de cada consulta. Paginar ou reordenar a mesma busca quase não acrescenta ninguém: medimos a página 2, a 3 e quatro ordenações de `furadeira`, e o conjunto passou de 6 para 7 vendedores. Quem escala é a **variedade de termos**.

Na execução de 10 termos (`CcCowsfOkZKlv35Yt`, 28 segundos): 45 vendedores distintos descobertos (7 apareceram em mais de um termo e saíram uma vez só), 25 com CNPJ na ficha, **25 de 25** resolvidos na Receita, todos com situação ATIVA. Os 20 sem CNPJ eram, na maior parte, lojas estrangeiras vendendo no .com.br; com `incluir_sem_cnpj` desligado eles não saem, não são cobrados e ficam contados em `descartados_por_motivo` no `OUTPUT`.

Regra de bolso: para **N vendedores com CNPJ**, mande pelo menos **N ÷ 2 termos** de nichos diferentes. Termo que ficou sem buscar por falta de tempo sai listado em `termos_nao_buscados` no `OUTPUT`, com o motivo.

### Dicas

- **Varie o nicho, não a palavra.** `furadeira`, `parafusadeira` e `furadeira de impacto` trazem quase os mesmos lojistas; `whey protein`, `ração para gato` e `luminária led` trazem lojistas diferentes.
- **Use `ids_vendedores` para acompanhar uma carteira fixa**: o resultado sai igual, sem gastar busca.
- **Olhe `loja_confere`** antes de chamar a empresa pelo nome da loja.
- **Prefira `telefone_fonte: AMAZON`** para contato comercial.
- **Filtre por `receita.porte` e `receita.capital_social`** para separar varejista grande de microempresa.
- **Run pela API com timeout curto?** O Actor para sozinho antes do limite e diz o que ficou de fora; com mais tempo, busca mais termos.

### Casos de uso

1. **Prospecção B2B para ecommerce**: ERP, hub de marketplace, logística, fulfillment, gateway de pagamento, agência de ads. Lojistas ativos por nicho, com CNPJ para o cadastro.
2. **Distribuidor e indústria procurando revendedor**: quem já vende a sua categoria na Amazon, com porte e endereço.
3. **Due diligence e crédito**: situação cadastral, data de abertura, capital social e sócios antes de fechar parceria ou vender a prazo.
4. **Proteção de marca**: descobrir a empresa por trás da loja que revende o seu produto.
5. **Estudo de mercado**: quantos lojistas brasileiros e estrangeiros disputam um nicho, e de que porte.
6. **Enriquecimento de base**: passe os sellerIds que você já tem e receba CNPJ e Receita para cada um.

### Perguntas frequentes

**De onde vem o CNPJ? É adivinhado pelo nome da loja?**
Não. É o CNPJ que o vendedor declara à Amazon e que ela publica no bloco "Informações sobre o vendedor" da página dele. Nada é casado por nome. Se o número não fecha o dígito verificador, ele não sai como CNPJ: a linha traz `cnpj_ausente_motivo` dizendo por quê.

**A própria Amazon aparece no resultado?**
Não. Quando a loja é a própria Amazon (Amazon Serviços de Varejo do Brasil ou Amazon Global / Amazon Export Sales), ela é descartada sem cobrança e contada em `descartados_por_motivo.amazon_propria`, mesmo com `incluir_sem_cnpj` ligado.

**Por que alguns vendedores não têm CNPJ?**
Porque não publicam: a maioria é loja estrangeira (LLC, Ltd., empresas chinesas) vendendo no Brasil. Sem CNPJ não há o que consultar na Receita, e isso é uma resposta legítima, não uma falha. Com `incluir_sem_cnpj` desligado essas lojas não saem; ligado, saem sem cobrança de Receita.

**Vocês entregam dados de pessoa física?**
Não da ficha. Vendedor sem CNPJ só mantém nome, loja, endereço e telefone quando o nome comercial traz sufixo societário (LLC, Ltd., Inc., GmbH, S.A., 有限公司…). Qualquer outro, seja possível pessoa física ou ficha sem nome comercial, sai só com o ID, os campos nulos e o motivo em `dados_omitidos_motivo`, sem cobrança. No MEI e no empresário individual a empresa sai (tem CNPJ), mas o CPF colado à razão social vira `[CPF omitido]` e celular do cadastro fiscal não é entregue. O que aparece de pessoa natural é o **quadro societário do registro público de CNPJ**, em `receita.socios`.

**Os sócios vêm sempre?**
Vêm quando a Receita tem quadro societário para aquele CNPJ; MEI e empresário individual não têm sócios, e `receita.socios` vem vazio. As duas bases consultadas, a minhareceita.org e a BrasilAPI de reserva, devolvem o quadro; `receita.fonte` diz qual respondeu.

**A execução pode terminar sem nenhuma linha?**
Pode, e sem cobrança: termos que só trazem lojas estrangeiras, IDs que não existem na Amazon ou IDs fora do formato. O `OUTPUT` diz quantos de cada caso em `descartados_por_motivo`. Quando a falha é nossa (bloqueio ou rede), a execução termina como falha, em vez de sucesso com resultado vazio.

**E se a Receita estiver fora do ar ou lenta?**
Cada consulta tem prazo e a execução nunca espera além do tempo dela. O vendedor sai com os dados da Amazon, `receita_status: ERRO_TRANSITORIO` e o motivo, e o evento da Receita não é cobrado. Se a Receita falhar para 3 vendedores seguidos, o Actor para de insistir no resto da execução e avisa no status.

**Preciso configurar proxy?**
Não. A página do vendedor só chega inteira por proxy residencial do Brasil, e o Actor já usa o Apify Proxy desse jeito. Por IP de datacenter a Amazon responde com uma página vazia que parece sucesso; o Actor reconhece esse caso e tenta de novo com outra sessão, em vez de entregar registro vazio.

### Preços

Este Actor cobra por resultado (Pay Per Event), com **dois eventos separados**:

| Evento | Preço | Quando dispara |
|---|---|---|
| `vendedor_com_contato` | **US$ 0,008** | O vendedor saiu com a identidade da empresa: nome comercial mais endereço ou telefone publicados na ficha. Uma vez por vendedor na execução. |
| `cnpj_resolvido_receita` | **US$ 0,006** | A Receita Federal **resolveu** o CNPJ. Uma vez por CNPJ distinto na execução. Achar o número na ficha não basta. |

**Uma execução real, para você fazer a conta antes de rodar.** 10 termos de busca (`CcCowsfOkZKlv35Yt`): 25 vendedores entregues com identidade de empresa e 25 CNPJs resolvidos na Receita. A conta fecha em 25 × US$ 0,008 + 25 × US$ 0,006 = **US$ 0,35**. Os 20 vendedores sem CNPJ que a busca achou não saíram e não custaram nada.

O que **nunca** é cobrado:

- vendedor sem CNPJ, quando `incluir_sem_cnpj` está desligado (ele nem sai);
- possível pessoa física ou ficha sem nome comercial, com os dados omitidos;
- loja estrangeira sem endereço nem telefone na ficha;
- a própria Amazon;
- ID fora do formato, recusado antes de qualquer consulta;
- vendedor que não existe mais na Amazon;
- a perna fiscal de CNPJ que a Receita não encontrou ou não respondeu a tempo;
- o mesmo CNPJ pela segunda vez na mesma execução (`cnpj_repetido_na_execucao`);
- o mesmo vendedor achado por dois termos: ele sai e cobra uma vez só.

### Actors da mesma suíte

- **Consulta CNPJ em Lote**: dados da Receita Federal para uma lista de CNPJs.
- **Google Maps Brasil Leads**: negócios locais com telefone, site e CNPJ resolvido.
- **Hotéis e Pousadas no Booking Brasil**: leads de hotelaria com e-mail e CNPJ.
- **Reclame Aqui Scraper**: reputação de empresas brasileiras.

### Histórico de versões

- **0.1**: Primeira versão. Descoberta pelo filtro de vendedor da busca, ficha do vendedor por proxy residencial do Brasil, CNPJ com dígito verificador, Receita Federal com fonte de reserva, prazo e disjuntor, regra de LGPD para vendedor sem CNPJ, pessoa física e MEI, telefone validado, cobrança em dois eventos.

### Suporte

Abra uma issue na aba **Issues** do Actor. Se o resultado não for o esperado, mande o `runId`: o registro `OUTPUT` guarda cada termo buscado, quantos vendedores ele rendeu e a contagem de cada descarte por motivo.

### In English

Amazon Brazil seller leads with official company data. Give it product search terms (or Amazon sellerIds) and it returns third-party sellers on Amazon.com.br with the CNPJ (Brazilian tax ID) published on the seller page, checked against the Receita Federal registry: legal name, status, company size, CNAE, share capital and partners. B2B ecommerce leads for marketplace software, logistics and credit. Foreign sellers without a CNPJ are excluded by default; likely individuals have their personal data omitted (LGPD). Pay per result.

# Actor input Schema

## `termos_busca` (type: `array`):

Produtos ou categorias como você digitaria na busca da Amazon Brasil. Cada termo revela até 6 vendedores parceiros distintos (o filtro de vendedor da própria Amazon). Para mais vendedores, use mais termos.

## `ids_vendedores` (type: `array`):

SellerIds da Amazon (ex.: A11UXN83IT67O5) ou URLs da página do vendedor com seller=. Preenchido, tem precedência sobre os termos de busca. ID fora do formato é recusado antes de qualquer consulta, sem cobrança.

## `max_vendedores` (type: `integer`):

Teto de vendedores entregues no resultado nesta execução.

## `incluir_sem_cnpj` (type: `boolean`):

Desligado, só saem vendedores com CNPJ na ficha. Ligado, saem também empresas estrangeiras sem CNPJ; possíveis pessoas físicas saem só com o ID e os dados pessoais omitidos (LGPD).

## Actor input object example

```json
{
  "termos_busca": [
    "furadeira"
  ],
  "ids_vendedores": [],
  "max_vendedores": 20,
  "incluir_sem_cnpj": false
}
```

# Actor output Schema

## `vendedores` (type: `string`):

Uma linha por vendedor, com CNPJ da ficha e dados da Receita Federal quando ela resolve.

## `resumo` (type: `string`):

Termos buscados, fichas consultadas, descartes com motivo e a conta do que foi cobrado.

# 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 = {
    "termos_busca": [
        "furadeira"
    ],
    "ids_vendedores": [],
    "max_vendedores": 20,
    "incluir_sem_cnpj": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("paulovitor18/amazon-brasil-vendedores-cnpj").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 = {
    "termos_busca": ["furadeira"],
    "ids_vendedores": [],
    "max_vendedores": 20,
    "incluir_sem_cnpj": False,
}

# Run the Actor and wait for it to finish
run = client.actor("paulovitor18/amazon-brasil-vendedores-cnpj").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 '{
  "termos_busca": [
    "furadeira"
  ],
  "ids_vendedores": [],
  "max_vendedores": 20,
  "incluir_sem_cnpj": false
}' |
apify call paulovitor18/amazon-brasil-vendedores-cnpj --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,paulovitor18/amazon-brasil-vendedores-cnpj"
        }
    }
}
```

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/X23ApjevgELi4gdhi/builds/ttcaRnTD5BwHO3zJs/openapi.json
