Detectors
anonymizer ships with a fixed registry of detectors, all enabled by default. Each can be toggled off in the UI’s Settings modal per session.
NER-based detectors (Natasha + spaCy)
These run a language-specific NER model and post-process the spans.
| Category | Detector | Languages |
|---|---|---|
| Personal names | PersonRuDetector, PersonEnDetector, PersonEsDetector, PersonDeDetector | ru, en, es*, de* |
| Companies (legal entities) | CompanyRuDetector, CompanyEnDetector, CompanyEsDetector, CompanyDeDetector | ru, en, es*, de* |
| Addresses | AddressDetector | ru, en, es*, de* |
* Spanish and German run when their optional model is installed — see Language packs.
Regex-based detectors
Pattern-matching, often with a checksum or format validator. Language-agnostic unless noted.
| Category | Detector |
|---|---|
| Emails | EmailDetector |
| Phone numbers (E.164 + national formats) | PhoneDetector |
| Dates | DateDetector |
| Bank cards | CardDetector (Luhn) |
| IBAN | IBANDetector (checksum) |
| BIC (SWIFT) / BIC (RU) | BICDetector, BICRuDetector |
| Russian bank accounts (20 digits) | RuBankAccountDetector |
| ИНН (RU taxpayer ID) | INNDetector (checksum) |
| ОГРН (RU registration number) | OGRNDetector |
| КПП (RU tax registration reason code) | KPPDetector |
| Labelled legal/business identifiers | LegalIdentifierDetector |
| СНИЛС (RU personal pension number) | SNILSDetector (checksum) |
| RU passport (series + number) | PassportRuDetector |
RU passport division code (NNN-NNN) | PassportDivisionDetector |
| RU civil-act-record series | CivilActSeriesRuDetector |
| US EIN (taxpayer ID) | EINDetector |
| Mexican RFC / CURP / CLABE | RFCMxDetector, CURPDetector, CLABEDetector |
| Contract numbers | ContractNumberDetector |
Crypto detectors
Cryptocurrency identifiers get their own CRYPTO token category and are
enabled by default, like every other detector:
| Category | Detector | Validation |
|---|---|---|
| Wallet addresses | CryptoWalletDetector | Checksum-validated BTC/TRON/XRP/LTC/DOGE (base58) and bech32/bech32m addresses; ETH/EVM by pattern; Solana is context-gated best effort |
| Transaction hashes | CryptoTxHashDetector | 0x-prefixed hashes; bare 64-hex only with tx/hash context nearby |
| Private keys / extended keys | CryptoSecretDetector | Checksum-validated WIF private keys and xprv/xpub extended keys |
One OCR caveat: crypto is not detected on scanned pages. OCR confusions break base58/bech32 checksums, so wallet addresses and secrets in scanned images must be reviewed manually.
What is NOT detected
- Free-form aliases or nicknames not seen in the NER training data
- Handwritten names in scanned PDFs (printed scan text is OCR’d; handwriting remains unreliable)
- Implicit references like “my client” or “the daughter of”
- PII inside image attachments, logos, or signature blocks that are not part of a scanned PDF page
- Crypto addresses and keys inside scanned images (OCR breaks their checksums)
- IP addresses, MAC addresses, URLs — no dedicated detector in the current release
If something important is missed, see Reporting feedback.