🇧🇷 Infraestrutura 100% nacional Pay-as-you-go REST API CPF · CNPJ · RG · CNH · OAB · CRM Tokens reversíveis

PII Detection API
feita para o Brasil

Detecta e mascara dados pessoais brasileiros antes de qualquer chamada à IA. Uma linha de código. Processado em São Paulo.

javascript
// Antes de enviar para a IA
const { textoLimpo, mapa } = await fetch(
  "https://api.mascaraai.com/api/scan", {
    method: "POST",
    headers: {
      "X-API-Key": "msk_sua_chave",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ texto: payload })
  }
).then(r => r.json());

// Envia limpo para Claude/GPT/Gemini
const resposta = await openai.chat(textoLimpo);

// Restaura via API
const { textoRestaurado } = await fetch(
  "https://api.mascaraai.com/api/restore",
  { body: JSON.stringify({ texto: resposta, mapa }) }
).then(r => r.json());
200 OK · 340ms
{
  "textoLimpo": "Contrato de ⟦PII:NOME:A3F2⟧,
  CPF ⟦PII:CPF:B7C1⟧, residente em
  ⟦PII:CEP:D2E9⟧...",

  "totalEncontrado": 3,

  "mapa": {
    "⟦PII:NOME:A3F2⟧": "João Silva",
    "⟦PII:CPF:B7C1⟧": "123.456.789-00",
    "⟦PII:CEP:D2E9⟧": "01310-100"
  },

  "creditos_restantes": 4892043
}

O que detecta

Detecção em duas camadas — regex com validação de dígito verificador + modelo NER especializado.

🔢

Dados estruturados

CPF, CNPJ, RG, CNH, PIS, Cartão de crédito, CEP, Telefone, Email — com validação de dígito verificador.

👤

Dados textuais

Nomes, datas de nascimento, naturalidade, filiação — detectados pelo modelo GLiNER com contexto.

📋

Registros profissionais

OAB/SP 12345, CRM/RJ 67890, CREA/MG 123456, COREN/RS 7890 — com prefixo da sigla.

🔄

Tokens reversíveis

Cada dado vira ⟦PII:TIPO:HASH⟧. Mesmo valor = mesmo token. Restaure via POST /api/restore.

🧪

Anonimização para homologação

Sanitize exports de produção antes de usar em staging, QA ou pentest. O mapa retornado permite restaurar quando necessário — dado real nunca entra no ambiente de teste.

📦

Batch processing

Até 50 textos por chamada via POST /api/scan/batch. Ideal para processar arrays de documentos.

🪝

Webhook

Configure uma URL para receber notificação sempre que PII for detectado. Útil para auditoria em tempo real.

Endpoints

Base URL: https://api.mascaraai.com

POST/api/scanScan autenticado — usa créditos da conta
POST/api/scan/freeScan anônimo — 500k chars/mês grátis
POST/api/scan/batchArray de até 50 textos em uma chamada
POST/api/restoreRestaura tokens usando o mapa retornado
GET/api/usageCréditos, uso e métricas da conta
GET/api/logsHistórico de scans (sem conteúdo)
GET/api/logs/exportExporta logs em CSV
POST/api/webhookConfigura webhook de notificação
POST/api/members/inviteConvida membro para a conta
POST/api/members/limitsDefine limites diários/mensais por membro
Autenticação: Header X-API-Key: msk_sua_chave ou X-Session-Token: token

Exemplos

Casos de uso comuns com código pronto.

python — chatbot de atendimento
import requests

def chat_seguro(mensagem_usuario):
    # 1. Mascara dados do usuário
    scan = requests.post(
        "https://api.mascaraai.com/api/scan",
        headers={"X-API-Key": "msk_..."},
        json={"texto": mensagem_usuario}
    ).json()

    # 2. Envia limpo para o LLM
    resposta_llm = openai.chat(scan["textoLimpo"])

    # 3. Restaura dados na resposta
    restaurado = requests.post(
        "https://api.mascaraai.com/api/restore",
        headers={"X-API-Key": "msk_..."},
        json={"texto": resposta_llm, "mapa": scan["mapa"]}
    ).json()["textoRestaurado"]

    return restaurado
python — sanitizar export de produção para staging
import requests, json

def sanitizar_para_homologacao(registros: list) -> tuple:
    """
    Recebe lista de dicts com dados reais.
    Retorna (registros_limpos, mapa_global) para uso em staging.
    Nunca armazene o mapa no ambiente de teste.
    """
    textos = [json.dumps(r, ensure_ascii=False) for r in registros]

    resp = requests.post(
        "https://api.mascaraai.com/api/scan/batch",
        headers={"X-API-Key": "msk_..."},
        json={"textos": textos}
    ).json()

    mapa_global = {}
    registros_limpos = []
    for r in resp["resultados"]:
        mapa_global.update(r["mapa"])
        registros_limpos.append(json.loads(r["textoLimpo"]))

    # mapa_global fica em produção — staging só recebe registros_limpos
    return registros_limpos, mapa_global
// Processa array de contratos de uma vez
const { resultados } = await fetch(
  "https://api.mascaraai.com/api/scan/batch", {
    method: "POST",
    headers: { "X-API-Key": "msk_..." },
    body: JSON.stringify({
      textos: contratos.map(c => c.conteudo)
    })
  }
).then(r => r.json());

// resultados[i].textoLimpo — pronto para RAG/embedding
const limpos = resultados.map(r => r.textoLimpo);

Preço

Três planos. Pay-as-you-go via Pix. Créditos não expiram. Você já entende tokens — a gente fala a mesma língua.

Grátis
R$ 0
~143k tokens/mês
sem cartão
Pro
R$ 49
~1,4M tokens
≈ R$ 0,035/1k tokens
Enterprise
Sob consulta
volume + SLA
contato@mascaraai.com
* 1 token ≈ 3,5 chars em pt-BR  ·  grátis equivale a 500k chars/mês  ·  billing interno em chars, apresentado em tokens
🇧🇷 Dado processado no Brasil · Sem transferência internacional · Facilita adequação à LGPD

Comece agora

~143k tokens grátis por mês. Sem cartão. API key em segundos.

Eficácia e limitações

Precisão por categoria de dado — para você dimensionar o risco antes de ir para produção.

DETECÇÃO DETERMINÍSTICA — alta confiança
✅ CPF, CNPJ, PIS — validação por dígito verificador
✅ Cartão de crédito — algoritmo de Luhn
✅ Email, CEP, telefone — regex estruturado
✅ CNH, RG com prefixo contextual
Cobertura: ~99% para formatos padrão
DETECÇÃO POR MODELO NER — probabilística
⚠️ Nomes de pessoas — ~85–90% em texto corrido
⚠️ Endereços em texto livre — ~80–85%
⚠️ Naturalidade e filiação — ~80–88% (doc. estruturado)
⚠️ Outros dados pessoais — varia por domínio
Threshold padrão: 0.35 · ajustável por header
O que isso significa na prática: dados estruturados (CPF, CNPJ, cartão) são detectados com segurança próxima de 100%. Dados textuais em linguagem natural têm margem de erro — apelidos, grafias não convencionais, abreviações e nomes muito curtos podem passar.

MascaraAI reduz significativamente a superfície de exposição de PII. Para conformidade LGPD formal, combine com revisão humana em fluxos de alto risco ou consulte seu DPO.