Two Ways to the Same Goal
This matters because it removes one of the most common objections to managed services: "We'll get better accuracy if we control the model." In this case, the base engine of anonym.legal is Presidio itself.
Microsoft Presidio is an open source Python library that combines:
- spaCy NLP models for entity recognition (names, locations, organizations)
- Pattern-based recognizers (regex + context rules) for structured PII (phone numbers, credit cards, IDs)
anonym.legal uses the same open-source Presidio engine as its base, but extends it: 273 entity types of its own instead of Presidio’s much smaller default set, and its own language pipeline: 48 languages, 42 of them with a name model (spaCy, Stanza or a transformer model). So entity types and language support are not the same. What also differs is the infrastructure, the operational wrapper, and the integrations (MCP Server, Office Add-in, Chrome Extension, Desktop App).
The Decision Matrix: 8 Criteria
| Criterion | Presidio DIY | anonym.legal Managed |
|---|---|---|
| Deployment time | 2–4 weeks to production | Same day to 1 week |
| Ongoing maintenance | 20–40 hrs/month (your team) | Included in subscription |
| Year 1 cost | $42,000–$113,000 (engineering + infra) | Public plans from €0 to €29 per month incl. VAT |
| Support | Community / GitHub issues | Support from the team that runs the service; no contractual SLA |
| Compliance documentation | Build yourself (80–200 hrs) | No ready-made package; a DPA is issued on request |
| Custom entity types | Full control — any recognizer | Configurable via API + custom preset feature |
| Scalability | Manual — you design the scaling architecture | Operated for you on a single production server, with fixed rate limits |
| Air-gap / offline | Yes — runs fully offline | Yes — anonym.plus, which runs entirely on the machine |
When to Choose Presidio DIY: The 5 Scenarios
1. You Have Deep NLP Expertise In-House
If your team includes Python ML engineers who work with spaCy and transformers regularly, the incremental cost of operating Presidio is modest. You can leverage existing infrastructure, CI/CD pipelines, and MLOps tooling.
2. You Need Custom NLP Model Training
If your domain uses specialized terminology — legal citations, medical codes, financial instruments — you may need to train custom NER models on domain-specific labeled data. Presidio supports this natively; managed services offer limited custom model training.
3. Complete Air-Gap is Required
For organizations with strict air-gap requirements (government, defense, critical infrastructure), self-hosted Presidio running fully offline on your own hardware is the only option. Note that the anonym.plus also satisfies this requirement for document-level use cases.
4. Volume Economics Favor Self-Hosting
At very high volumes (100M+ documents/year), per-request API pricing can exceed infrastructure costs. Run the numbers: if your monthly API cost exceeds the monthly infrastructure + engineering cost at your volume, self-hosting may be cheaper.
5. You're Building a Product That Re-Sells PII Detection
If your product embeds PII detection as a feature and you resell it to customers, you need either a source-available license or a commercial OEM agreement. Presidio's MIT license permits this; managed service subscriptions typically do not.
When to Choose a Managed Service: The 5 Scenarios
1. You Need to Move Fast
Time to first API call with anonymize.solutions: under 5 minutes. Time to production with Presidio DIY: 2–4 weeks. If your compliance deadline is next quarter, managed service is the only realistic option.
2. Your Team Lacks MLOps Experience
Deploying and maintaining transformer models in production requires specific skills. If your backend team is strong but doesn't have NLP/MLOps depth, self-hosting Presidio creates a knowledge gap that grows over time.
3. You Need Compliance Documentation
GDPR, HIPAA, PCI-DSS, and ISO 27001 assessments require technical documentation of your data processing tools. Building this documentation from scratch for a Presidio deployment takes 80–200 engineering hours. anonym.legal does not ship a compliance documentation package; a DPA is issued on request, and the rest of the assessment stays with you.
4. You Want the Integrations
The MCP Server for Claude Desktop and Cursor, the Chrome Extension for AI chat protection, and the Office Add-in for Word/Excel are capabilities of the managed service (anonym.legal). Fully offline, air-gapped processing is a different product: anonym.plus, bought and run locally, not part of the managed service. Self-hosting Presidio gives you the API — nothing else.
5. Operational Support Matters
Presidio is community-supported. Response times on GitHub issues vary from days to weeks. If your production PII detection service goes down or degrades in accuracy, a managed service run by the team that operates it is usually more reliable than a self-run one, though anonym.legal offers no contractual uptime guarantee.
Migration: Moving from Presidio to anonymize.solutions
The migration path is manageable because the underlying engine is Presidio. Your existing Presidio-based code becomes an authenticated HTTP call; the response format differs from Presidio’s Python objects, so result handling needs adapting:
# Before: Presidio direct Python API
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
results = analyzer.analyze(text=my_text, language='en')
# After: anonym.legal REST API
import requests
results = requests.post(
"https://anonym.legal/api/presidio/analyze",
headers={"Authorization": "Bearer YOUR_API_TOKEN"},
json={"text": my_text, "language": "en"}
).json()
# Response format and entity types differ from Presidio defaults;
# see the API documentation at anonym.legalCustom recognizers (regex patterns, custom entity types) can be migrated to the custom preset configuration in the managed service without rewriting logic — only the format changes from Python class to JSON configuration.
A Hybrid Approach: Hosted Where You May, Local Where You Must
anonymize.solutions offers a third path: anonym.legal where the text may go to a processor in Germany, and anonym.plus on your own machines where it may not.
This hybrid approach works well for organizations that:
- Want managed service features but cannot send data to a third-party cloud
- Are building towards a fully self-operated deployment but need to ship now
- Operate in regulated industries that require data residency in specific facilities
If the text may not leave your own hardware at all, the managed answer is anonym.plus, which runs the engine locally; its local API is a different interface from the hosted one.
Limitations & Honest Caveats
No single option is right for everyone. A managed service is not the best fit when your team already has deep in-house NLP expertise, faces a hard rule that data may never leave your own hardware, or would rather spend engineering time than recurring licence fees — in those cases self-hosting Presidio is the better choice. This comparison also has limitations: the cost and effort figures are representative estimates rather than a quote, and real totals shift with data volume, language coverage, and how heavily you customise the detection pipeline.