# INPI Registro de Marcas por CNPJ - API (`brasildados/inpi-marcas-api-cnpj`) Actor

Consulte as marcas (INPI) Instituto Nacional da Propriedade Industrial de qualquer empresa por CNPJ: número do processo, marca, tipo, registro, situação, titular, classe e data de prioridade, com o comprovante HTML da consulta.

- **URL**: https://apify.com/brasildados/inpi-marcas-api-cnpj.md
- **Developed by:** [brasildados.org - API de Dados Abertos](https://apify.com/brasildados) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $650.00 / 1,000 por cnpjs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🔎 O que é a API de Marcas INPI por CNPJ?

Esta **API e scraper de marcas do INPI** consulta a base pública do **Instituto Nacional da Propriedade Industrial (INPI)** pelo **CNPJ do titular** e devolve as marcas registradas em nome da empresa: número do processo, nome da marca, tipo de apresentação, registro, situação, titular, classe e data de prioridade. Cada consulta traz também o **comprovante HTML** da pesquisa no INPI, salvo no armazenamento da sua execução.

- ✅ **Busca por CNPJ, não por nome:** traz as marcas em nome da empresa, inclusive as que você não sabia que existiam.
- ✅ **Todas as situações:** marcas em vigor, extintas, arquivadas e pedidos aguardando exame.
- ✅ **Paginação controlada por você:** cada execução traz uma página de até 20 marcas, com o total de marcas e de páginas para você seguir quando quiser.
- ✅ **Comprovante HTML da consulta:** a página de resultado do INPI no momento da pesquisa, para evidência em due diligence e auditoria.
- ✅ **Sem cadastro no INPI, sem captcha e sem certificado digital.**
- ✅ **Em lote:** até 30 CNPJs por execução, consultados em paralelo.
- ✅ **Você só paga pelo que é entregue:** CNPJ inválido, CNPJ sem marcas e página inexistente não são cobrados.

### 💼 Casos de uso

- ⚖️ **Escritórios de PI e jurídicos:** revisar o portfólio de marcas de clientes e prospects pelo CNPJ.
- 💼 **Due diligence, M\&A e investimentos:** levantar as marcas da empresa-alvo antes de comprar, investir ou fechar parceria.
- 👀 **Monitoramento de marcas:** acompanhar a situação de cada processo no INPI com execuções agendadas.
- 🕵️ **Inteligência competitiva:** ver quais marcas um concorrente ou fornecedor tem registradas e em quais classes.
- 🏦 **Crédito e compliance:** enriquecer o cadastro de clientes PJ com o portfólio de marcas como sinal de maturidade.
- 📈 **Vendas B2B:** segmentar empresas que investem em marca para prospecção.

### 🚀 Como usar pela API

```bash
curl -X POST "https://api.apify.com/v2/acts/brasildados~inpi-marcas-api-cnpj/run-sync-get-dataset-items" \
  -H "Authorization: Bearer SEU_TOKEN_APIFY" \
  -H "Content-Type: application/json" \
  -d '{"cnpjs":["71.673.990/0001-77"],"pagina":1}'
```

Resposta real (a lista `marcas` foi resumida a 3 das 20 marcas da página):

```json
[
  {
    "cnpj": "71673990000177",
    "cnpjFormatado": "71.673.990/0001-77",
    "pagina": 1,
    "totalPaginas": 67,
    "proximaPagina": 2,
    "totalMarcas": 1339,
    "marcasNaPagina": 20,
    "marcas": [
      {
        "INPInumeroMarcaProcesso": "821154494",
        "marca": "BRINGI",
        "tipo": "Marca Nominativa",
        "registro": "Marca Arquivada",
        "situacao": "Registro de marca extinto",
        "titular": "NATURA COSMÉTICOS S/A",
        "classe": "NCL(8) 03",
        "dataPrioridade": null
      },
      {
        "INPInumeroMarcaProcesso": "006475922",
        "marca": null,
        "tipo": "Marca Figurativa",
        "registro": "Marca Registrada",
        "situacao": "Registro de marca em vigor",
        "titular": "Natura Cosméticos S.A.",
        "classe": "03 : 20",
        "dataPrioridade": "1975-07-22"
      },
      {
        "INPInumeroMarcaProcesso": "811025756",
        "marca": "L'ARC EN CIEL",
        "tipo": "Marca Mista",
        "registro": "Marca Registrada",
        "situacao": "Registro de marca em vigor",
        "titular": "Natura Cosméticos S.A.",
        "classe": "03 : 20",
        "dataPrioridade": "1982-11-25"
      }
    ],
    "comprovanteHtmlUrl": "https://api.apify.com/v2/key-value-stores/<id-do-armazenamento>/records/marcas-71673990000177-pagina-1.html?signature=<assinatura>",
    "consultadoEm": "2026-10-18T03:30:09.215Z"
  }
]
```

O token fica em **Settings → API & Integrations** no Console da Apify. O link `comprovanteHtmlUrl` já vem assinado e abre direto no navegador, sem token.

#### 🖱️ Pelo Console

1. Clique em **Try for free** (ou **Start**) no topo desta página.
2. Cole os CNPJs, um por linha, e escolha a página (padrão 1).
3. Clique em **Start**. Os resultados aparecem na aba **Output**, prontos para exportar em JSON, CSV ou Excel.

### ⬇️ Entrada

| Campo | Descrição |
|---|---|
| `cnpjs` | **Obrigatório.** De 1 a 30 CNPJs, com ou sem pontuação. |
| `pagina` | Opcional. Página de resultados a consultar, com 20 marcas por página. Padrão: `1`. Vale para todos os CNPJs da execução. |

```json
{
  "cnpjs": ["71.673.990/0001-77", "00.000.000/0001-91"],
  "pagina": 1
}
```

**Uma página por execução.** Com `"pagina": 5`, o Actor consulta só a página 5 de cada CNPJ e termina. Para continuar, rode de novo com o número de `proximaPagina`, até chegar a `totalPaginas`.

⚠️ **CNPJs inválidos ou repetidos:**

| Você envia | O que acontece |
|---|---|
| `71.673.990/0001-77` ou `71673990000177` | ✅ Válido, consultado. |
| O mesmo CNPJ duas vezes na lista | ✅ Consultado e cobrado uma vez só. |
| `12.345.678/0001-00` (dígito verificador errado), `abc`, `123` | ⏭️ Ignorado e listado no log, sem cobrança. A execução continua com os válidos. |
| CNPJ válido sem marcas no INPI | ⏭️ Registrado no log, sem cobrança. |
| Página maior que o total de páginas do CNPJ | ⏭️ Registrada no log, sem cobrança. |

### ⬆️ Saída

Um registro por CNPJ encontrado, com uma página de marcas. Download (JSON, CSV, Excel) e API sempre trazem todos os campos; as abas da aba **Output** do Console só mudam quais colunas aparecem na tela.

| Campo | Descrição |
|---|---|
| `cnpj` | CNPJ consultado, só dígitos |
| `cnpjFormatado` | CNPJ no formato 00.000.000/0000-00 |
| `pagina` | Página retornada |
| `totalPaginas` | Total de páginas de marcas do CNPJ |
| `proximaPagina` | Número da próxima página, ou `null` quando esta é a última |
| `totalMarcas` | Total de marcas do CNPJ no INPI, somando todas as páginas |
| `marcasNaPagina` | Quantidade de marcas nesta página (até 20) |
| `marcas` | Lista de marcas desta página |
| `marcas[].INPInumeroMarcaProcesso` | Número do processo no INPI |
| `marcas[].marca` | Nome da marca; `null` em marca figurativa, que não tem nome |
| `marcas[].tipo` | Apresentação: Marca Nominativa, Marca Mista, Marca Figurativa... |
| `marcas[].registro` | Marca Registrada, Marca Arquivada, Marca requerida... |
| `marcas[].situacao` | Situação do processo no INPI (ex.: "Registro de marca em vigor", "Extinto", "Aguardando exame de mérito") |
| `marcas[].titular` | Titular registrado no INPI |
| `marcas[].classe` | Classe da marca: Nice (ex.: `NCL(8) 03`) ou a classificação nacional antiga (ex.: `03 : 20`) |
| `marcas[].dataPrioridade` | Data de prioridade (aaaa-mm-dd); `null` quando o INPI não informa |
| `comprovanteHtmlUrl` | Link do comprovante HTML da consulta no INPI, salvo no armazenamento da sua execução |
| `consultadoEm` | Data e hora da consulta (ISO 8601) |

**Particularidades do dado:**

- O titular aparece como está em cada processo no INPI, por isso a mesma empresa pode vir escrita de formas diferentes (ex.: "NATURA COSMÉTICOS S/A" e "Natura Cosméticos S.A.").
- A classe pode vir na classificação nacional antiga (`03 : 20`) ou na classificação de Nice (`NCL(8) 03`), conforme o processo.
- A busca é pelo CNPJ informado: empresas do mesmo grupo com CNPJ próprio precisam ser consultadas separadamente.

### 💰 Quanto custa?

Você paga **por CNPJ encontrado, por página consultada**, independentemente de quantas marcas a página tiver. O valor está na aba **Pricing**.

🆓 **Não são cobrados:** CNPJs inválidos, CNPJs sem marcas no INPI, páginas acima do total e consultas que falharem na fonte. Esses casos ficam só no log e não entram no resultado.

Se você definir um limite de gasto para a execução, o Actor para de consultar quando o limite é atingido e avisa no log quantos CNPJs ficaram de fora.

### ⚖️ É legal consultar marcas do INPI?

Sim. As marcas depositadas no INPI são **informação pública**: a própria busca do INPI é aberta a qualquer pessoa, e a publicidade dos processos faz parte do sistema de registro de marcas (Lei da Propriedade Industrial, Lei nº 9.279/1996). Este Actor só automatiza a consulta pública por titular.

### 🔗 Integrações

- **API REST** e clientes oficiais da Apify para **JavaScript** e **Python**.
- **n8n, Make e Zapier** para levar as marcas para planilhas, CRM ou alertas.
- **Google Sheets**, **webhooks** e **Slack** a partir do resultado de cada execução.
- **Agendamento** no Apify para rodar diariamente, semanalmente ou mensalmente e monitorar o portfólio de uma lista de empresas.
- **MCP** para usar o Actor dentro de agentes de IA.

### ❓ Perguntas frequentes

#### Como consultar as marcas de uma empresa no INPI pelo CNPJ via API?

Chame `run-sync-get-dataset-items` com `{"cnpjs":["<CNPJ>"],"pagina":1}` (exemplo em [Como usar pela API](#-como-usar-pela-api)). A resposta traz as marcas da página, o total de marcas e o total de páginas.

#### Como pegar todas as marcas de uma empresa com muitas marcas?

Rode com `"pagina": 1` e veja `totalPaginas`. Depois rode de novo com `pagina` 2, 3... até o total. Cada página traz até 20 marcas, e cada página encontrada é cobrada separadamente.

#### O que é cobrado se eu pedir uma página que não existe?

Nada. Página maior que o total de páginas do CNPJ fica só no log, sem cobrança.

#### Preciso de certificado digital, login no INPI ou resolver captcha?

Não. Basta o CNPJ. O Actor faz a consulta pública por titular por você.

#### O que é o comprovante HTML?

É a página de resultado da busca do INPI no momento da consulta, salva no armazenamento da sua execução. Serve como evidência da pesquisa em due diligence, auditoria e processos internos.

#### O que acontece se eu enviar CNPJs errados na lista?

Os inválidos são ignorados, aparecem no log e não são cobrados. A execução segue com os CNPJs válidos.

#### Posso consultar por nome da marca ou por CPF?

Não. Este Actor busca só pelo CNPJ do titular, o que garante que você recebe as marcas em nome daquela empresa.

#### Este Actor traz patentes?

Não, só marcas. Para patentes e marcas em inglês, veja o [Patents and Brands (INPI) - Brazil API by CNPJ](https://apify.com/brasildados/cnpj-trademarks-patents?fpr=t5lwzq).

#### Qual o limite por execução?

30 CNPJs, com uma página cada. Para listas maiores, divida em várias execuções ou chame a API em sequência.

#### Os dados são atualizados?

Cada execução faz uma consulta nova ao INPI. O campo `consultadoEm` registra o momento exato.

### 🧩 Outros Actors da brasildados

- 🔬 [Patents and Brands (INPI) - Brazil API by CNPJ](https://apify.com/brasildados/cnpj-trademarks-patents?fpr=t5lwzq)
- 🏢 [Consulta CNPJ em Lote - Enriquecimento de Empresas](https://apify.com/brasildados/enriquecimento-lista-empresas-por-cnpj?fpr=t5lwzq)
- 📄 [Certidões de Empresas por CNPJ - 8 Documentos Oficiais](https://apify.com/brasildados/certidoes-empresa-cnpj-pgfn-fgts-cndt?fpr=t5lwzq)
- 🚫 [Consulta Sanções CPF/CNPJ - CEIS, CNEP, CEPIM, CEAF e Leniência](https://apify.com/brasildados/consulta-sancoes-cpf-cnpj-ceis-cnep-cepim-ceaf?fpr=t5lwzq)
- 🕒 [Histórico de Alterações da Empresa por CNPJ - API](https://apify.com/brasildados/historico-empresa-cnpj-api?fpr=t5lwzq)

🌐 <https://brasildados.org/> · 🛒 [Todos os Actors da brasildados](https://apify.com/brasildados?fpr=t5lwzq)

### 🇺🇸 English summary

**Brazil INPI Trademarks by CNPJ API.** Look up the trademarks registered at INPI (Brazil's patent and trademark office) for any Brazilian company by its CNPJ (tax ID), with the HTML receipt of the search.

- **Input:** `cnpjs` (1 to 30 CNPJs, any format, required) and `pagina` (results page, 20 trademarks per page, default 1). One page per run.
- **Output:** one record per CNPJ with `totalMarcas`, `totalPaginas`, `proximaPagina`, the `marcas` list (process number, mark, type, registration, status, holder, class, priority date) and `comprovanteHtmlUrl`.
- **Use cases:** IP due diligence, M\&A, trademark monitoring, competitive intelligence, KYB.
- **Pricing:** per CNPJ found, per page. Invalid CNPJs, CNPJs without trademarks and pages beyond the total are not charged. See the Pricing tab.
- **API:** `POST https://api.apify.com/v2/acts/brasildados~inpi-marcas-api-cnpj/run-sync-get-dataset-items` with `{"cnpjs":["71.673.990/0001-77"],"pagina":1}` and `Authorization: Bearer <token>`.

# Actor input Schema

## `cnpjs` (type: `array`):

Obrigatório. De 1 a 30 CNPJs por execução (qualquer formato, com ou sem pontuação). Todos são validados pelo dígito verificador: os inválidos são ignorados, sem cobrança, e a execução continua com os válidos.

## `pagina` (type: `integer`):

Opcional. Página de resultados a consultar (20 marcas por página). Padrão: 1. O resultado informa `totalPaginas` e `proximaPagina`; para continuar, rode de novo com o número da próxima página. Página maior que o total não é cobrada.

## Actor input object example

```json
{
  "cnpjs": [
    "71.673.990/0001-77"
  ],
  "pagina": 1
}
```

# Actor output Schema

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

Dataset com um registro por CNPJ encontrado.

## `comprovantes` (type: `string`):

Armazenamento com o comprovante HTML de cada consulta.

# 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 = {
    "cnpjs": [
        "71.673.990/0001-77"
    ],
    "pagina": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("brasildados/inpi-marcas-api-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 = {
    "cnpjs": ["71.673.990/0001-77"],
    "pagina": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("brasildados/inpi-marcas-api-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 '{
  "cnpjs": [
    "71.673.990/0001-77"
  ],
  "pagina": 1
}' |
apify call brasildados/inpi-marcas-api-cnpj --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,brasildados/inpi-marcas-api-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/fjhw0lTKs56WqG6Ku/builds/4USCygoArShqC70GK/openapi.json
