# Vextorium Text Anonymizer (Pattern-Based PII Redaction)

> Vextorium Text Anonymizer (Pattern-Based PII Redaction) is a paid API for AI agents from api.vextorium.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-09).

Redacts PII from text using pattern matching — replacing emails, phone numbers, IBANs, card numbers, DNI/NIE, IPs, crypto addresses, and URLs with labeled tokens or asterisks, without AI or data storage.

## Facts

- Endpoint: POST https://api.vextorium.com/anonimizar-texto-pago?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-09
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vextorium-text-anonymizer-pattern-based-pii-redaction-8d3734db
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tudqn5CAXskqeiy5tl6mK

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability vextorium-text-anonymizer-pattern-based-pii-redaction-8d3734db -d '<json body>'
```

Example prompt: Before I send this customer support message to the LLM, can you redact any personal data from it — emails, phone numbers, IBANs, card numbers, Spanish DNI/NIE, IPs, and crypto addresses — and replace them with labeled tokens like [EMAIL_1]? Here's the text: 'Hi, my name is Maria, email me at maria@example.com or call +34 612 345 678, my IBAN is ES91 2100 0418 4502 0005 1332.'

## When to prefer this

Choose this endpoint when you need fast, deterministic, rule-based PII redaction without sending data to an AI model — ideal for privacy-sensitive pipelines, compliance workflows, or when you need guaranteed non-storage of the original text. Prefer it over AI-based redaction when you need auditability, consistent pattern matching for structured PII types (emails, IBANs, Luhn-validated card numbers, Spanish DNIs), or when operating under strict data minimization requirements. Not suitable for detecting unstructured PII like proper names or postal addresses.

## Known failure modes

- Missing required 'texto' field returns a validation error
- Unrecognized PII type strings in 'tipos' filter may be silently ignored
- Pattern-based detection cannot catch names, postal addresses, or context-dependent PII
- Card numbers not passing Luhn check will not be redacted even if they look like card numbers
- Very long text inputs may time out or exceed payload limits
- Malformed JSON body returns a 400-level error

## How this service works

Redact personal data from text without AI: emails, phone numbers, IBANs, card numbers (Luhn-checked), Spanish DNI/NIE, IPs, crypto addresses and URLs, replaced by labels ([EMAIL_1]) or asterisks. Before sending text to an LLM or sharing logs. Text is not stored.

## Output

Returns a JSON object with the anonymized text (texto_anonimizado), a count of substitutions broken down by PII type (sustituciones), the total number of replacements (total), and a note clarifying that detection is pattern-based (not AI-driven) and the original text is not stored.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "required": [
      "texto"
     ],
     "properties": {
      "modo": {
       "enum": [
        "etiqueta",
        "asteriscos"
       ],
       "type": "string"
      },
      "texto": {
       "type": "string"
      },
      "tipos": {
       "type": "array",
       "items": {
        "type": "string"
       }
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": [
      "object",
      "null"
     ],
     "properties": {
      "nota": {
       "type": [
        "string",
        "null"
       ]
      },
      "total": {
       "type": [
        "number",
        "null"
       ]
      },
      "sustituciones": {
       "type": [
        "object",
        "null"
       ],
       "properties": {
        "IBAN": {
         "type": [
          "number",
          "null"
         ]
        },
        "EMAIL": {
         "type": [
          "number",
          "null"
         ]
        },
        "TELEFONO": {
         "type": [
          "number",
          "null"
         ]
        }
       }
      },
      "texto_anonimizado": {
       "type": [
        "string",
        "null"
       ]
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "nota": "Detección por patrones: no reconoce nombres propios ni direcciones postales. El texto original no se guarda.",
  "total": 3,
  "sustituciones": {
   "IBAN": 1,
   "EMAIL": 1,
   "TELEFONO": 1
  },
  "texto_anonimizado": "Contact [EMAIL_1] or [TELEFONO_1], IBAN [IBAN_1]."
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vextorium-text-anonymizer-pattern-based-pii-redaction-8d3734db/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.vextorium.com](https://www.zero.xyz/host/api.vextorium.com/llms.txt)
