INPI para devs e agentes de IA.MCP, ou REST puro.

A base inteira, com as ferramentas prontas para um agente de IA. Grátis até 1.000 requisições por hora.

Uma requisição
curl 'https://api.marcasafe.com.br/api/v1/brands?q=ziptalk&limit=1' \
  -H 'Authorization: Bearer mk_live_...'
Conectar no Claude
processos do INPI
6.568.057
despachos
24.467.748
primeira edição da RPI
29/03/1973
MCP

A base dentro do seu agente de IA

O mesmo dado, sem cliente HTTP. O servidor MCP roda no /api/mcp e responde a Claude Code, Cursor, VS Code e Windsurf com a sua chave, ou ao conector do claude.ai com um login — nesse caso não há chave para colar: você autoriza numa tela e revoga quando quiser.

Conectar no Claude

No Claude a janela abre preenchida e você só confirma. No ChatGPT, cole a URL em Plugins → + → Add custom MCP server; conector personalizado lá depende do seu plano.

https://mcp.marcasafe.com.br/api/mcp
Claude Code
claude mcp add --transport http marcasafe \
  https://mcp.marcasafe.com.br/api/mcp \
  --header "Authorization: Bearer mk_live_..."
Cursor, VS Code, Windsurf (mcp.json)
{
  "mcpServers": {
    "marcasafe": {
      "type": "http",
      "url": "https://mcp.marcasafe.com.br/api/mcp",
      "headers": {
        "Authorization": "Bearer mk_live_..."
      }
    }
  }
}

O que o agente de IA ganha

  • check_collisionBusca de colidência com os parâmetros certos já embutidos, vigentes e pendentes juntos.
  • search_brandsA busca por semelhança, com todos os filtros da API.
  • list_owner_brandsA carteira inteira de uma empresa pelo CNPJ, com o nome do titular que a RPI não traz.
  • get_processUm processo pelo número.
  • list_dispatchesA linha do tempo, com o prazo legal já contado contra hoje.
  • explain_dispatchTraduz um código IPAS no ato, na severidade e no prazo que ele abre.

As chamadas contam na mesma cota por hora do seu plano, e o servidor é só de leitura: não há ferramenta que crie, altere ou apague nada.

Um agente de IA que chegar aqui sozinho encontra o mapa em /llms.txt: o que existe, o que a base não tem e para onde ir, em texto puro.

O que ela faz

O dado do INPI, sem o INPI no caminho

Busca por semelhança, não por igualdade

Quem procura zapluz também acha zap luz. Insensível a acento e a maiúscula, com paginação por cursor — que não pula nem repete registro quando a base cresce no meio da leitura.

A linha do tempo inteira

Não só a situação atual: cada despacho com o código IPAS, o texto oficial, o tom e quantos dias faltam do prazo. É a diferença entre saber que o pedido foi indeferido e saber que restam 27 dias para recorrer.

Campo nulo documentado, não escondido

Marca figurativa é desenho puro e não tem nome — são 100% delas, e isso não é dado faltando, é a definição. A referência separa o que falta por natureza do que falta por lacuna do INPI, com o percentual medido de cada campo.

Sem raspagem, sem sessão, sem quebrar

Quem raspa o pePI depende de JSESSIONID, de HTML de 2003 e de um servidor que cai. Aqui é JSON estável com resposta em cache, versionado pela edição da RPI.

Como é na prática

Uma requisição, uma resposta

Sem SDK obrigatório, sem handshake, sem paginação por offset. A chave vai no Authorization e o resto é HTTP.

Note o owner_name: null no exemplo: é o comportamento normal da base, não um erro. A referência diz o percentual de cada campo.

Requisição
curl 'https://api.marcasafe.com.br/api/v1/brands?q=ziptalk&limit=1' \
  -H 'Authorization: Bearer mk_live_...'
Resposta
{
  "data": [
    {
      "inpi_number": "937579181",
      "brand": "ziptalk",
      "presentation": "nominative",
      "nature": "products_and_services",
      "madrid_protocol": false,
      "owner_name": null,
      "filed_at": null,
      "nice_classes": [9, 42],
      "last_rpi_issue": 2901
    }
  ],
  "next_cursor": "eyJpIjoiOTM3NTc5MTgxIn0"
}
Webhooks

Você não precisa ficar perguntando

A RPI sai uma vez por semana. Consultar a API todo dia para descobrir se algo mudou é gastar requisição para receber “não” seis vezes — o webhook chega quando há o que contar.

  • Assinado em HMAC-SHA256, com o timestamp dentro da mensagem assinada — reenviar uma entrega antiga não passa.
  • Retentativa em 1min, 5min, 30min, 2h e 6h.
  • O id da entrega é estável entre retentativas, para você deduplicar.
Os eventos
Cada um com o corpo documentado, campo a campo.
dispatch.published

A RPI publicou um despacho para um processo que você acompanha. Sai toda terça, junto com a edição.

process.status_changed

O processo passou a deferido, indeferido, arquivado, extinto ou teve o registro concedido.

deadline.approaching

Uma exigência ou oposição com prazo correndo está perto do fim.

filing.similar

Alguém depositou um pedido com nome parecido com o de uma marca que você acompanha.

Limites

Por hora, e o painel mostra quanto você usou

A janela é de uma hora e reseta na virada. Ao estourar, a resposta é 429 com o cabeçalho que diz quando tentar de novo — nada é cobrado por excesso, e nada é cortado sem aviso.

Grátis
1.000

requisições por hora

Starter
10.000

requisições por hora

Pro
60.000

requisições por hora

Precisa de mais? Ver os planos.

A chave sai em um clique

Crie uma em Configurações › API, teste o endpoint ali mesmo no painel e copie o exemplo pronto em cURL, Node, Python ou PHP.

Procurando o produto para acompanhar as suas marcas? Comece por aqui.