
Security model
Security controls for sensitive text.
Security is foundational to SanitiseAI. The product is built as a focused privacy layer that helps teams sanitise sensitive text before sharing it with AI tools, docs, or workflows.

Operational safeguards
- Request-scoped processing
- Structured token replacement
- Encrypted transport
- Usage limits
Technical safeguards
Architecture controls focus on reducing exposure at ingest, processing, and delivery.
Deterministic + entity-aware pipeline
SanitiseAI combines deterministic pattern matching with entity-aware detection to produce practical, readable anonymised output for contracts, notes, support logs, and prompt drafts.
Pattern scanningEnabled
Entity detectionEnabled
Transport security
Requests run over encrypted transport and sanitised output is returned through the same protected path.
Security controlsPre-sharing sanitisation
Sensitive text is sanitised before downstream sharing so unredacted values are masked as early as possible.
Controlled updates
Operational changes follow reviewable releases so processing behaviour can be updated deliberately.
Layered detection
Entity detection and deterministic pattern matching run together to improve practical output quality.
Transparent data lifecycle
Understand how text moves through SanitiseAI from raw input to share-ready output.
Request statusEncrypted
- 01. Ingestion
Secure inbound
Input is received over encrypted transport and handled in active processing memory.
- 02. Sanitisation
PII detection
Entity and pattern detectors identify names, contact data, identifiers, and common secret formats.
- 03. Anonymisation
Token replacement
Detected values are replaced with structured placeholders to preserve context for safe sharing.
- 04. Delivery
Clean output
Sanitised text is returned and transient request buffers are released at the end of the request lifecycle.
Ready to review your workflow?
Run SanitiseAI with an example, then contact us for implementation guidance.
Evidence, not a perfect-detection promise
Our stored synthetic regression run from 18 August 2026 matched 164 of 189 labelled entities across 30 fixtures (86.8% recall). This historical local-engine run is not an independent audit, a live-service uptime measurement or an estimate of accuracy on your documents.
The harness compares detector types and normalised text spans, allowing containment matches. That can credit partial spans; its precision figure is a proxy, not a full false-positive audit. The report includes misses. No critical misses in these fixtures does not mean all credentials are detected.
Download the historical results (JSON) ยท Inspect the fixtures and runner
Reproduce and review
With the repository checked out and Node installed, run node benchmarks/run.mjs. Results describe that checkout and synthetic fixtures only. Compare missed spans, over-redaction and remaining context, not just the headline score.
The examples on our workflow pages are synthetic and include expected output. They are regression examples, not customer records or proof of full anonymisation. Unusual names, encoded secrets, indirect identifiers and PDF extraction errors still require human review.
