# INPI Trademark Checker - Brazil (`cloway/inpi-trademark-checker`) Actor

Verifica se marcas estao registradas no INPI (Instituto Nacional da Propriedade Industrial do Brasil). Suporta consulta individual ou em lote (ate 20 marcas).

- **URL**: https://apify.com/cloway/inpi-trademark-checker.md
- **Developed by:** [Cloway](https://apify.com/cloway) (community)
- **Categories:** SEO tools, E-commerce, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## INPI Trademark Checker - Brazil

Verifica automaticamente se marcas estao registradas no **INPI** (Instituto Nacional da Propriedade Industrial do Brasil).

**A unica API de verificacao de marcas INPI disponivel.** Consulte o banco de dados oficial do INPI em segundos, sem precisar navegar pelo site manualmente. Gratuito.

### O que faz

- Consulta o banco de dados oficial do INPI (busca.inpi.gov.br) em tempo real
- Verifica se uma marca ja esta registrada (busca exata)
- Suporta consulta individual ou em lote (ate 20 marcas por execucao)
- Retorna status claro: `registrada` (true/false/null)
- Retry automatico com criacao de nova sessao em caso de falha
- Rotacao de User-Agent e gerenciamento de sessao automatico
- 100% de taxa de sucesso em testes com 140+ consultas

### Gratuito

Este Actor e **gratuito**. Voce paga apenas o custo de compute do Apify (centavos por execucao no free tier). Nao ha cobranca adicional.

### Input

| Campo | Tipo | Descricao | Padrao |
|-------|------|-----------|--------|
| `marcas` | string[] | Lista de marcas para verificar (max 20) | - |
| `marca` | string | Marca individual para verificar | - |
| `delayBetweenQueries` | number | Delay entre consultas em ms | 500 |
| `maxRetries` | number | Tentativas maximas por marca | 3 |
| `sessionRetryDelay` | number | Delay antes de nova sessao em ms | 2000 |

#### Exemplo de input (lote)

```json
{
    "marcas": ["NomePronto", "Google", "Nubank", "MinhaMarca"]
}
````

#### Exemplo de input (individual)

```json
{
    "marca": "MinhaMarca"
}
```

### Output

```json
{
    "resultados": [
        { "marca": "NomePronto", "registrada": false },
        { "marca": "Google", "registrada": true },
        { "marca": "Nubank", "registrada": true },
        { "marca": "MinhaMarca", "registrada": false }
    ],
    "total": 4,
    "registradas": 2,
    "disponiveis": 2,
    "inconclusivas": 0,
    "tempo_ms": 5234,
    "stats": {
        "total_queries_feitas": 4,
        "sessoes_criadas": 1,
        "sessoes_falharam": 0,
        "retries_usados": 0
    }
}
```

#### Significado de `registrada`

| Valor | Significado |
|-------|-------------|
| `false` | Marca **nao registrada** no INPI — disponivel para registro |
| `true` | Marca **registrada** no INPI — ja existe registro ativo |
| `null` | Resultado **inconclusivo** — falha de conexao ou INPI fora do ar apos retries |

### Como funciona

1. Cria uma sessao autenticada no sistema de busca do INPI (busca.inpi.gov.br)
2. Para cada marca, envia uma busca exata no banco de dados oficial
3. Analisa a resposta para determinar se existe registro ativo
4. Se a sessao expirar, cria automaticamente uma nova e repete a consulta
5. Retorna todos os resultados estruturados em JSON

### Performance

Testado com 140 consultas consecutivas ao INPI:

| Metrica | Resultado |
|---------|-----------|
| Taxa de sucesso | **100%** (140/140) |
| 20 marcas em paralelo | **2.1 segundos** |
| 20 marcas sequenciais | **19 segundos** |
| Sessao sobrevive | **50+ queries** sem expirar |
| Criacao de sessao | **80-250ms** |

### Casos de uso

- **Empreendedores**: Verificar se o nome da empresa esta disponivel antes de abrir o negocio
- **Agencias de branding**: Validar lotes de nomes criativos para clientes
- **Escritorios de propriedade intelectual**: Triagem rapida antes de entrar com pedido de registro no INPI
- **Plataformas SaaS**: Integrar verificacao INPI no seu produto via API do Apify
- **Startups**: Validar nome antes de investir em branding e identidade visual
- **Contabilidades**: Verificar nomes antes de abrir CNPJ para clientes

### Integracao via API

Chame este Actor programaticamente via API REST:

```bash
curl -X POST "https://api.apify.com/v2/acts/SEU_USUARIO~inpi-trademark-checker/runs?waitForFinish=60" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SEU_TOKEN_APIFY" \
  -d '{"marcas": ["MinhaMarca", "OutraMarca"]}'
```

Ou via SDK (Node.js):

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

const client = new ApifyClient({ token: 'SEU_TOKEN' });
const run = await client.actor('SEU_USUARIO/inpi-trademark-checker').call({
    marcas: ['MinhaMarca', 'OutraMarca', 'TerceiraMarca'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].resultados);
```

### Limites e avisos

- Maximo **20 marcas** por execucao
- A busca e **exata** (correspondencia literal do nome)
- **Nao substitui analise juridica profissional** — use como triagem preliminar
- O INPI pode ocasionalmente estar fora do ar ou lento (o Actor faz retry automaticamente)
- Resultados refletem o estado do banco de dados do INPI no momento da consulta

### Custo estimado

| Marcas | Tempo | Custo Apify (free tier) |
|--------|-------|------------------------|
| 1 | ~2s | ~$0.001 |
| 5 | ~5s | ~$0.003 |
| 10 | ~10s | ~$0.005 |
| 20 | ~20s | ~$0.01 |

***

**Precisa gerar nomes criativos para sua empresa E verificar disponibilidade automaticamente?**
Conheca o [NomePronto](https://nomepronto.com.br) — gerador de nomes com IA que verifica INPI + dominios .com e .com.br em segundos. Sem cadastro, resultado imediato.

# Actor input Schema

## `marcas` (type: `array`):

Lista de nomes de marcas para verificar no INPI. Máximo 20 por execução.

## `marca` (type: `string`):

Nome de uma única marca para verificar. Use 'marcas' para lote.

## `delayBetweenQueries` (type: `integer`):

Tempo de espera entre cada consulta ao INPI na mesma sessão. Mínimo recomendado: 500ms.

## `maxRetries` (type: `integer`):

Número máximo de tentativas por marca em caso de falha (sessão expirada, erro de conexão).

## `sessionRetryDelay` (type: `integer`):

Tempo de espera antes de criar nova sessão após falha.

## Actor input object example

```json
{
  "marcas": [
    "MinhaMarca",
    "OutraMarca"
  ],
  "marca": "MinhaMarca",
  "delayBetweenQueries": 500,
  "maxRetries": 3,
  "sessionRetryDelay": 2000
}
```

# Actor output Schema

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

Lista de marcas verificadas com status de registro no INPI.

# 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 = {
    "marcas": [
        "NomePronto",
        "Google"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("cloway/inpi-trademark-checker").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 = { "marcas": [
        "NomePronto",
        "Google",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("cloway/inpi-trademark-checker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "marcas": [
    "NomePronto",
    "Google"
  ]
}' |
apify call cloway/inpi-trademark-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=cloway/inpi-trademark-checker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "INPI Trademark Checker - Brazil",
        "description": "Verifica se marcas estao registradas no INPI (Instituto Nacional da Propriedade Industrial do Brasil). Suporta consulta individual ou em lote (ate 20 marcas).",
        "version": "1.0",
        "x-build-id": "C9q6ks7GPkr9L02D0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/cloway~inpi-trademark-checker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-cloway-inpi-trademark-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/cloway~inpi-trademark-checker/runs": {
            "post": {
                "operationId": "runs-sync-cloway-inpi-trademark-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/cloway~inpi-trademark-checker/run-sync": {
            "post": {
                "operationId": "run-sync-cloway-inpi-trademark-checker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "marcas": {
                        "title": "Marcas para verificar",
                        "type": "array",
                        "description": "Lista de nomes de marcas para verificar no INPI. Máximo 20 por execução.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "marca": {
                        "title": "Marca (individual)",
                        "type": "string",
                        "description": "Nome de uma única marca para verificar. Use 'marcas' para lote."
                    },
                    "delayBetweenQueries": {
                        "title": "Delay entre consultas (ms)",
                        "minimum": 300,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Tempo de espera entre cada consulta ao INPI na mesma sessão. Mínimo recomendado: 500ms.",
                        "default": 500
                    },
                    "maxRetries": {
                        "title": "Tentativas máximas",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Número máximo de tentativas por marca em caso de falha (sessão expirada, erro de conexão).",
                        "default": 3
                    },
                    "sessionRetryDelay": {
                        "title": "Delay antes de nova sessão (ms)",
                        "minimum": 1000,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Tempo de espera antes de criar nova sessão após falha.",
                        "default": 2000
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
