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.legal

Custom 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.

📈

Presidio 12-Month TCO Analysis

Detailed cost breakdown: setup, maintenance, infrastructure, and hidden costs for self-hosting.

Read More →
⚖

Compare: Presidio DIY vs anonym.legal

Feature-by-feature comparison with deployment options, accuracy, and support coverage.

View Comparison →
🔨

anonym.plus

The engine on your own machines, under a perpetual licence.

Learn More →

Start with the Managed Service.

anonym.legal is built on Presidio, like a DIY setup. Add the integrations and the operations that self-hosting leaves to you.

Does this apply to your organisation?

The guide is general; your obligation is not. Tell us the sector and where the data is allowed to go, and we will tell you what applies.