presidio-analyzer
Presidio Analyzer package
Decision gist · record as of 2026-08-14
Yes. Presidio Analyzer is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers low-friction installation. It solves a concrete privacy problem with both out-of-the-box recognizers and extensibility for custom needs. The choice between pattern-based and LLM-based detection gives flexibility for different accuracy and privacy trade-offs.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires spaCy NLP model to be downloaded; the AnalyzerEngine loads it by default on first use.
- For GPU acceleration on Linux with NVIDIA, cupy-cuda12x or matching CUDA version must be installed separately.
- Low friction installation with a wheel distribution.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) allows free use, modification, and distribution with minimal restrictions, making it suitable for commercial and open-source projects.
last release 2026-07-22 (23 days) · last repo commit 2026-08-11 · 10,483 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 6,771,284 downloads/mo, #1,852 on PyPI
Alternatives
Verify before relying
pip install presidio-analyzer
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
results = analyzer.analyze(
text="My phone number is 212-555-5555",
entities=["PHONE_NUMBER"],
language='en'
)
print(results)- Whether predefined recognizers cover all common PII entity types or if custom recognizers are required for specific use cases.
- Performance characteristics (latency, throughput) for large-scale text analysis.
- Whether LangExtract recognizers (Ollama, Azure OpenAI) require additional setup beyond the base install.
What it is and what it does
Presidio Analyzer is a Python service that scans unstructured text to find and identify personally identifiable information (PII) such as phone numbers, email addresses, and other sensitive data. It comes with a set of predefined recognizers that use regex, spaCy-based named entity recognition, and other detection logic to identify PII entities. The package can be extended with custom recognizers for domain-specific or specialized PII types.
The analyzer supports both traditional pattern-based detection and modern language model-based approaches. For LLM-based detection, it integrates with Ollama (for local, privacy-preserving deployments) and Azure OpenAI (for cloud-based detection). The core engine loads a spaCy NLP model by default and orchestrates multiple recognizers to produce a comprehensive analysis of detected entities in a given text.
Use it for
- Scan customer support tickets or chat logs to identify and redact PII before storage or sharing.
- Validate data pipelines to ensure sensitive information is not leaked in logs or exported datasets.
- Build privacy-compliance workflows that detect PII in documents before they are processed or archived.
- Extend with custom recognizers to detect domain-specific sensitive data (e.g., medical record numbers, financial account identifiers).
- Deploy locally via Ollama for on-premise PII detection without sending text to external APIs.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Presidio Analyzer is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and offers low-friction installation. It solves a concrete privacy problem with both out-of-the-box recognizers and extensibility for custom needs. The choice between pattern-based and LLM-based detection gives flexibility for different accuracy and privacy trade-offs.
Install
presidio-analyzer on PyPI
Before you install
Low friction installation with a wheel distribution. Active maintenance with a recent release (23 days old) and strong repository activity (10483 stars). Supports modern Python versions (3.10–3.14).
Requires spaCy NLP model to be downloaded; the AnalyzerEngine loads it by default on first use. For GPU acceleration on Linux with NVIDIA, cupy-cuda12x or matching CUDA version must be installed separately.
License in practice
MIT license (permissive) allows free use, modification, and distribution with minimal restrictions, making it suitable for commercial and open-source projects.
Quickstart
pip install presidio-analyzer
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
results = analyzer.analyze(
text="My phone number is 212-555-5555",
entities=["PHONE_NUMBER"],
language='en'
)
print(results)
Verify before relying
- Whether predefined recognizers cover all common PII entity types or if custom recognizers are required for specific use cases.
- Performance characteristics (latency, throughput) for large-scale text analysis.
- Whether LangExtract recognizers (Ollama, Azure OpenAI) require additional setup beyond the base install.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <3.15,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesclicknumpyphonenumberspydanticpyyamlregexspacytldextract |
| Maintenance | Actively maintained 23 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,771,284 / month, #1,852 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: presidio_analyzer-2.2.364-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “PII detection in text”
- presidio-analyzerDetects personally identifiable information (PII) entities in text…
- presidio-image-redactorDetects and redacts personally identifiable information (PII) text in…
- azure-ai-textanalyticsProvides Python bindings to Azure's cloud-based Natural Language…
Give your agent the search over MCP, or paste the wish link into any chat.
More Security packages
Provides Python bindings to the FreeDesktop.org Secret Service API for securely storing and retrieving passwords and secrets through GNOME Keyring, KWallet, or KeePassXC.
MSAL for Python handles OAuth2 and OpenID Connect authentication with Microsoft identity services, managing token acquisition, caching, and refresh for applications integrating with Microsoft Entra ID, Microsoft Accounts, and Azure AD B2C.
joserfc implements JOSE standards (JWS, JWE, JWK, JWT, and related RFCs) for signing, encrypting, and managing JSON-based cryptographic tokens in Python.
Authlib provides a complete implementation of OAuth 1.0, OAuth 2.0, and OpenID Connect 1.0 for building both authentication clients and servers, with built-in support for JWS, JWK, JWA, and JWT standards.
Provides low-level CFFI bindings to the official Argon2 password hashing algorithm for use by libraries and applications that need direct access to Argon2 without higher-level abstractions.
ADAL for Python authenticates applications with Azure Active Directory to obtain tokens for accessing Azure AD-protected resources.
Install only if maintaining existing code that already depends on it, and plan a migration.
See also presidio-anonymizer · presidio-image-redactor · argus-redact · scrubadub · recognizers-text-choice · openmed · recognizers-text-number · recognizers-text · gliner · recognizers-text-date-time