{
  "data": {
    "a": {
      "slug": "microsoft-presidio",
      "name": "Presidio",
      "vendor": "Data Privacy Stack",
      "vendorUrl": "https://dataprivacystack.org",
      "kind": "sdk",
      "category": "guardrails",
      "summary": "Open-source Python library and Docker services that detect personal data in text and images and replace, mask, hash or encrypt it. Created at Microsoft and run since June 2026 by the community organisation Data Privacy Stack.",
      "url": "https://www.anchorterminal.com/tools/microsoft-presidio",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json",
      "repo": "https://github.com/data-privacy-stack/presidio",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "presidio-analyzer"
        },
        {
          "registry": "pypi",
          "name": "presidio-anonymizer"
        },
        {
          "registry": "pypi",
          "name": "presidio-image-redactor"
        },
        {
          "registry": "pypi",
          "name": "presidio"
        }
      ],
      "auth": "none",
      "authNotes": "None. The Python library runs in the caller's process, and the REST containers accept any caller. The FAQ states the endpoints have no built-in authentication by design and should sit behind a gateway, reverse proxy or service mesh (https://presidio.dataprivacystack.org/faq/). Optional recognisers that call Azure AI Language, Azure Health Data Services or a language model take those services' own credentials.",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with no hosted or paid option from the project and no account needed. The cost is the compute to run it, plus any outside service an optional recogniser is configured to call (https://github.com/data-privacy-stack/presidio/blob/main/LICENSE).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 11231,
        "npmWeekly": null,
        "pypiWeekly": 1217281,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://presidio.dataprivacystack.org",
      "openapi": "https://presidio.dataprivacystack.org/api-docs/api-docs.yml",
      "capabilities": [
        "guard.pii",
        "guard.self-host"
      ],
      "tags": [
        "sdk",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "free",
        "docker",
        "openapi",
        "pii",
        "community-governed"
      ],
      "lastRelease": "2026-07-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66,
        "grade": "B",
        "agentReady": false,
        "rank": 281,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 63,
          "payments": 60,
          "reliability": 78,
          "schema": 69,
          "security": 53,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks.",
        "bestFor": "Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.",
        "strengths": [
          "MIT licence, source on GitHub, and nothing to buy. No account, key or card is needed to install or run it",
          "OpenAPI 3.0 document for the analyser and anonymiser REST services, with request examples and 400 and 422 error shapes",
          "CI runs each package on Python 3.10, 3.11, 3.12, 3.13 and 3.14, with CodeQL and Dependabot configured",
          "Detection is tunable per call with an entity list, a score threshold, an allow list and ad hoc recognisers",
          "Anonymiser operators cover replace, redact, mask, hash, encrypt and custom functions, and encrypted values can be reversed with the key"
        ],
        "weaknesses": [
          "The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front",
          "SUPPORT.md states no SLA and no official support. The project is run by volunteers since leaving Microsoft",
          "One release in the 90 days to 8 October 2026 (2.2.364 on 22 July), and CHANGELOG.md has no section for it",
          "Covers personal data only. No prompt injection, jailbreak or content moderation checks",
          "The README warns that detection is automated and may miss personal data, so other protections are still needed",
          "98 open pull requests, and most issues opened since 20 September 2026 had no reply on 8 October"
        ],
        "agentNotes": [
          "Install from PyPI or pull images from ghcr.io/data-privacy-stack. The mcr.microsoft.com/presidio-* images are no longer updated",
          "Download a spaCy model (python -m spacy download en_core_web_lg) before the first `AnalyzerEngine()` call, or use the Docker image",
          "Send both text and language to `/analyze`. A request missing either returns HTTP 500 with a JSON error field",
          "Pass entities and score_threshold to limit results. Many country-specific recognisers are disabled by default and need enabling in the registry YAML",
          "Keep the containers on a private network or behind your own authenticating proxy. They accept any caller"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 63,
          "payments": 60,
          "reliability": 78,
          "schema": 69,
          "security": 53,
          "transparency": 76
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "pip install presidio-analyzer presidio-anonymizer\npython -m spacy download en_core_web_lg",
        "http": "docker run -d -p 5002:3000 ghcr.io/data-privacy-stack/presidio-analyzer:latest\ncurl -X POST http://localhost:5002/analyze \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"text\": \"My phone number is 555-123-4567.\", \"language\": \"en\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/guard.pii",
        "tool": "https://letme.dev/microsoft-presidio"
      },
      "area": "models",
      "provenance": {
        "legalEntity": "Data Privacy Stack (community organisation, no legal entity stated)",
        "domain": "dataprivacystack.org",
        "domainRegistered": "2026-04-13",
        "domainNote": "A library and self-hosted containers, not a service. Code is on github.com under the data-privacy-stack organisation and docs on presidio.dataprivacystack.org.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/data-privacy-stack/presidio/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "Presidio was created at Microsoft. The transition notice says it is now a community-governed project under Data Privacy Stack and is not owned or operated by a commercial entity. The blog post announcing the move is dated 29 June 2026.",
          "github.com/microsoft/presidio answers 301 to github.com/data-privacy-stack/presidio, and microsoft.github.io/presidio shows a moved notice.",
          "The LICENSE copyright line reads Presidio Contributors. The FAQ says usage terms are the repository's licence and that there is no warranty or SLA.",
          "No privacy policy was found on dataprivacystack.org or the docs site. Nothing is hosted, so the field is left out.",
          "security.txt returns 404 on dataprivacystack.org and presidio.dataprivacystack.org. SECURITY.md uses GitHub private vulnerability reporting.",
          "RDAP gives 2026-04-13 as the registration date of dataprivacystack.org. The repository was created on 4 May 2018."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-presidio.json",
      "live": {
        "slug": "microsoft-presidio",
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/data-privacy-stack/presidio/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:05.686879193Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "609d3fe25dbc"
          }
        ],
        "updatedAt": "2026-10-08T18:24:05.686879193Z"
      }
    },
    "answer": "OpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability.",
    "b": {
      "slug": "openai-guardrails",
      "name": "OpenAI Guardrails",
      "vendor": "OpenAI",
      "vendorUrl": "https://openai.com",
      "kind": "framework",
      "category": "guardrails",
      "summary": "OpenAI's open-source Python library that wraps the OpenAI client and runs configured checks on inputs, outputs and tool calls, including moderation, jailbreak, prompt injection, personal data, URL and off-topic checks. It is labelled a preview.",
      "url": "https://www.anchorterminal.com/tools/openai-guardrails",
      "markdownUrl": "https://www.anchorterminal.com/tools/openai-guardrails.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openai-guardrails.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openai-guardrails.json",
      "repo": "https://github.com/openai/openai-guardrails-python",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "openai-guardrails"
        },
        {
          "registry": "npm",
          "name": "@openai/guardrails"
        }
      ],
      "auth": "api-key",
      "authNotes": "No credential of its own. The wrapped client takes an OpenAI API key from `OPENAI_API_KEY` or the constructor, an Azure OpenAI key through `GuardrailsAzureOpenAI`, or the key of any OpenAI-compatible endpoint set with `base_url`, such as a local Ollama server (https://openai.github.io/openai-guardrails-python/quickstart/).",
      "pricing": "free",
      "pricingNotes": "Free under the MIT licence, with no hosted or paid edition and no account of its own. The README states that Guardrails calls paid OpenAI APIs. Each LLM-based check is one extra model call billed at OpenAI's rates, the moderation check is documented as no cost, and the keyword, URL, secret key and personal data checks run locally (https://github.com/openai/openai-guardrails-python).",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README or docs (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 259,
        "npmWeekly": 18502,
        "pypiWeekly": 104530,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://openai.github.io/openai-guardrails-python/",
      "capabilities": [
        "guard.injection",
        "guard.pii",
        "guard.moderation",
        "guard.policy",
        "guard.self-host"
      ],
      "tags": [
        "official",
        "framework",
        "open-source",
        "self-hosted",
        "local",
        "python",
        "typescript",
        "free",
        "preview",
        "openai-compatible"
      ],
      "lastRelease": "2026-09-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.5,
        "grade": "B",
        "agentReady": false,
        "rank": 175,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 89,
          "payments": 60,
          "reliability": 73,
          "schema": 66,
          "security": 59,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "MIT-licensed wrapper that adds twelve configurable checks to OpenAI client calls from one JSON file, with tool-level injection checks for the Agents SDK. The README labels it a preview at version 0.3.3, and by default a check that fails to run is reported as passed unless `raise_guardrail_errors=True` is set.",
        "bestFor": "Teams already on the OpenAI client or Agents SDK that want several checks from one config file with little code.",
        "strengths": [
          "MIT licence, source on GitHub, and three PyPI releases in the 90 days to 8 October 2026 (0.3.0, 0.3.2, 0.3.3)",
          "Twelve built-in checks set in one versioned JSON file across pre-flight, input and output stages",
          "`GuardrailAgent` runs the prompt injection check before and after every tool call in the OpenAI Agents SDK",
          "CI runs ruff, mypy, pyright and tests on Python 3.11 to 3.14, with CodeQL, Dependabot and SHA-pinned actions",
          "The jailbreak page publishes ROC AUC, precision, recall and latency per model on a 4,000-conversation sample"
        ],
        "weaknesses": [
          "By default a check that fails to run returns `tripwire_triggered=False`, so the request continues. Strict mode is opt-in",
          "The README titles the package a preview, the version is 0.3.3, and no release was published between 15 December 2025 and 21 July 2026",
          "With `stream=True` the output checks run alongside the stream, and the docs say violating content may appear briefly",
          "The docs' own table gives the default jailbreak model, `gpt-4.1-mini`, a recall of 0.000 at a 1 per cent false positive rate",
          "LLM-based checks add a billed model call each. The docs list a median of 1,538 ms for `gpt-4.1-mini` on the jailbreak check",
          "Pull requests from non-collaborators are not accepted, and CHANGELOG.md starts at 0.3.3"
        ],
        "agentNotes": [
          "Pass `raise_guardrail_errors=True` to the client. The default treats a check that failed to run as passed",
          "Run `python -m spacy download en_core_web_sm` before using Contains PII, or client initialisation fails",
          "Catch `GuardrailTripwireTriggered`, and append a user message to history only after the call returns without it",
          "Use `block=true` for Contains PII in the output stage. Masking works only in the pre-flight stage",
          "Keep `stream=False` where output must be checked before it is shown, and budget one extra model call per LLM-based check"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.5
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 89,
          "payments": 60,
          "reliability": 73,
          "schema": 66,
          "security": 59,
          "transparency": 65
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "pip install openai-guardrails\npython -m spacy download en_core_web_sm   # only for Contains PII"
      },
      "letme": {
        "capability": "https://letme.dev/guard.injection",
        "tool": "https://letme.dev/openai-guardrails"
      },
      "sameCompany": [
        "openai-api",
        "openai-embeddings",
        "openai-moderation",
        "openai-image-api",
        "openai-sora",
        "openai-agents-sdk",
        "openai-decisions-api",
        "openai-codex"
      ],
      "area": "models",
      "provenance": {
        "legalEntity": "OpenAI (as named in the LICENSE copyright line and the PyPI author field)",
        "domain": "openai.com",
        "domainRegistered": "2007-01-19",
        "domainNote": "A library, not a service. The code is on github.com under the openai organisation, the docs on openai.github.io and the configuration wizard on guardrails.openai.com.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/openai/openai-guardrails-python/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The library is governed by the MIT licence in the repository. The model and moderation calls it makes are OpenAI API calls on the user's own key, under OpenAI's API terms.",
          "https://openai.com/policies/services-agreement/ and https://openai.com/policies/privacy-policy/ answered HTTP 403 to us on 8 October 2026, so the terms and privacy fields are left out as unread.",
          "https://openai.com/.well-known/security.txt is PGP-signed and lists a Bugcrowd contact, a disclosure address and a policy link. It has no Expires line. The copy at cdn.openai.com/security.txt that SECURITY.md links carries an Expires date of 17 January 2024.",
          "No status page applies to the library. The OpenAI API it calls has one at https://status.openai.com.",
          "RDAP gives 19 January 2007 as the registration date of openai.com. The repository was created on 9 April 2025 and the first PyPI release is dated 6 October 2025."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openai-guardrails.json"
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "Agent framework",
        "name": "Kind"
      },
      {
        "a": "Data Privacy Stack",
        "b": "OpenAI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-22",
        "b": "2026-09-10",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "11k stars, 1.2M PyPI/wk",
        "b": "259 stars, 19k npm/wk, 105k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "OpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability.",
        "question": "Which is better for AI agents, Presidio or OpenAI Guardrails?"
      },
      {
        "answer": "Yes. Presidio is open source (MIT). OpenAI Guardrails is open source (MIT).",
        "question": "Are Presidio and OpenAI Guardrails open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 78 against 73"
        ],
        "also": [
          "No key needed to call it"
        ],
        "goodFor": "Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.",
        "slug": "microsoft-presidio",
        "watchFor": "The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 59 against 53",
          "Maintenance \u0026 community, 89 against 63",
          "Transparency \u0026 trust, 76 against 65"
        ],
        "also": null,
        "goodFor": "Teams already on the OpenAI client or Agents SDK that want several checks from one config file with little code.",
        "slug": "openai-guardrails",
        "watchFor": "By default a check that fails to run returns `tripwire_triggered=False`, so the request continues. Strict mode is opt-in"
      }
    ],
    "job": {
      "capability": "guard.pii",
      "name": "Guard pii"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-openai-guardrails.json",
        "title": "Amazon Bedrock Guardrails vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-openai-guardrails.json",
        "title": "Azure AI Content Safety (Prompt Shields) vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-openai-guardrails.json",
        "title": "Cisco AI Defense Inspection API vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-openai-guardrails.json",
        "title": "Google Cloud Model Armor vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guardrails-ai-vs-openai-guardrails.json",
        "title": "Guardrails AI vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/guardrails-ai-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lakera-guard-vs-openai-guardrails.json",
        "title": "Lakera Guard (Check Point AI Guardrails) vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/lakera-guard-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.json",
        "title": "LlamaFirewall vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nemo-guardrails-vs-openai-guardrails.json",
        "title": "NVIDIA NeMo Guardrails vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/nemo-guardrails-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-guardrails-vs-prisma-airs.json",
        "title": "OpenAI Guardrails vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/openai-guardrails-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails.json",
        "title": "Granite Guardian vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-guard-vs-openai-guardrails.json",
        "title": "Llama Guard 4 vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/llama-guard-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-moderation-vs-openai-guardrails.json",
        "title": "Mistral Moderation API vs OpenAI Guardrails",
        "url": "https://www.anchorterminal.com/compare/mistral-moderation-vs-openai-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-guardrails-vs-openai-moderation.json",
        "title": "OpenAI Guardrails vs OpenAI Moderation API",
        "url": "https://www.anchorterminal.com/compare/openai-guardrails-vs-openai-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio.json",
        "title": "Amazon Bedrock Guardrails vs Presidio",
        "url": "https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio.json",
        "title": "Cisco AI Defense Inspection API vs Presidio",
        "url": "https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio.json",
        "title": "Google Cloud Model Armor vs Presidio",
        "url": "https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio.json",
        "title": "Guardrails AI vs Presidio",
        "url": "https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio.json",
        "title": "Lakera Guard (Check Point AI Guardrails) vs Presidio",
        "url": "https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.json",
        "title": "LlamaFirewall vs Presidio",
        "url": "https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation.json",
        "title": "Presidio vs Mistral Moderation API",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails.json",
        "title": "Presidio vs NVIDIA NeMo Guardrails",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs.json",
        "title": "Presidio vs Prisma AIRS AI Runtime Security API",
        "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs"
      },
      {
        "json": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.json",
        "title": "Granite Guardian vs Presidio",
        "url": "https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio.json",
        "title": "Llama Guard 4 vs Presidio",
        "url": "https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio"
      }
    ],
    "scores": [
      {
        "by": 5,
        "edge": "microsoft-presidio",
        "key": "reliability",
        "microsoft-presidio": 78,
        "name": "Reliability",
        "openai-guardrails": 73,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "microsoft-presidio",
        "key": "schema",
        "microsoft-presidio": 69,
        "name": "Schema \u0026 documentation",
        "openai-guardrails": 66,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "openai-guardrails",
        "key": "ergonomics",
        "microsoft-presidio": 69,
        "name": "Agent ergonomics",
        "openai-guardrails": 73,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "openai-guardrails",
        "key": "security",
        "microsoft-presidio": 53,
        "name": "Security \u0026 auth",
        "openai-guardrails": 59,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "microsoft-presidio": 60,
        "name": "Payments \u0026 pricing",
        "openai-guardrails": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 26,
        "edge": "openai-guardrails",
        "key": "maintenance",
        "microsoft-presidio": 63,
        "name": "Maintenance \u0026 community",
        "openai-guardrails": 89,
        "weight": 7
      },
      {
        "by": 11,
        "edge": "openai-guardrails",
        "key": "transparency",
        "microsoft-presidio": 65,
        "name": "Transparency \u0026 trust",
        "openai-guardrails": 76,
        "weight": 7
      }
    ],
    "summary": "OpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability. Both do guard pii.",
    "verdicts": {
      "microsoft-presidio": "MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks.",
      "openai-guardrails": "MIT-licensed wrapper that adds twelve configurable checks to OpenAI client calls from one JSON file, with tool-level injection checks for the Agents SDK. The README labels it a preview at version 0.3.3, and by default a check that fails to run is reported as passed unless `raise_guardrail_errors=True` is set."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails",
    "json": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.md",
    "slim": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.min.md"
  },
  "markdown": "OpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability. Both do guard pii.\n\n- Presidio: grade B, 66/100, rank #281 of 842. Markdown https://www.anchorterminal.com/tools/microsoft-presidio.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json\n- OpenAI Guardrails: grade B, 69.5/100, rank #175 of 842. Markdown https://www.anchorterminal.com/tools/openai-guardrails.md · JSON https://www.anchorterminal.com/api/v1/tools/openai-guardrails.json\n\n## Which one, for what\n\n### Presidio (B)\n\nGood for: Detecting and masking personal data in prompts, outputs, logs and images on the owner's own machines, with detection tuned by entity, threshold and custom recognisers.\n\nAhead on:\n- Reliability, 78 against 73\n\nAlso in its favour:\n- No key needed to call it\n\nWatch for: The REST containers have no authentication by design. The FAQ says to put a gateway or proxy in front\n\n### OpenAI Guardrails (B)\n\nGood for: Teams already on the OpenAI client or Agents SDK that want several checks from one config file with little code.\n\nAhead on:\n- Security \u0026 auth, 59 against 53\n- Maintenance \u0026 community, 89 against 63\n- Transparency \u0026 trust, 76 against 65\n\nWatch for: By default a check that fails to run returns `tripwire_triggered=False`, so the request continues. Strict mode is opt-in\n\n\n## Score by category\n\n| Category | Weight | Presidio | OpenAI Guardrails | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 78 | 73 | Presidio +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 69 | 66 | Presidio +3 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 73 | OpenAI Guardrails +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 59 | OpenAI Guardrails +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 63 | 89 | OpenAI Guardrails +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 76 | OpenAI Guardrails +11 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **66 · B** | **69.5 · B** | |\n\n## Facts side by side\n\n| Fact | Presidio | OpenAI Guardrails |\n| --- | --- | --- |\n| Kind | SDK + MCP | Agent framework |\n| Vendor | Data Privacy Stack | OpenAI |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | None | API key |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-07-22 | 2026-09-10 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Customer content may train models |  |  |\n| Terms restrict automated access |  |  |\n| Terms restrict benchmarking |  |  |\n| Terms or service can change without notice |  |  |\n| Arbitration or class-action waiver |  |  |\n| Popularity | 11k stars, 1.2M PyPI/wk | 259 stars, 19k npm/wk, 105k PyPI/wk |\n\n## Verdicts\n\n**Presidio.** MIT-licensed personal data detector with a public OpenAPI document, tests on Python 3.10 to 3.14 and about 1.2 million weekly PyPI downloads. The REST containers have no authentication, the project states no SLA or support, and it covers personal data only, with no prompt injection or content moderation checks.\n\n**OpenAI Guardrails.** MIT-licensed wrapper that adds twelve configurable checks to OpenAI client calls from one JSON file, with tool-level injection checks for the Agents SDK. The README labels it a preview at version 0.3.3, and by default a check that fails to run is reported as passed unless `raise_guardrail_errors=True` is set.\n\n## Before you call either\n\n### Presidio\n\n1. Install from PyPI or pull images from ghcr.io/data-privacy-stack. The mcr.microsoft.com/presidio-* images are no longer updated\n2. Download a spaCy model (python -m spacy download en_core_web_lg) before the first `AnalyzerEngine()` call, or use the Docker image\n3. Send both text and language to `/analyze`. A request missing either returns HTTP 500 with a JSON error field\n4. Pass entities and score_threshold to limit results. Many country-specific recognisers are disabled by default and need enabling in the registry YAML\n5. Keep the containers on a private network or behind your own authenticating proxy. They accept any caller\n\n### OpenAI Guardrails\n\n1. Pass `raise_guardrail_errors=True` to the client. The default treats a check that failed to run as passed\n2. Run `python -m spacy download en_core_web_sm` before using Contains PII, or client initialisation fails\n3. Catch `GuardrailTripwireTriggered`, and append a user message to history only after the call returns without it\n4. Use `block=true` for Contains PII in the output stage. Masking works only in the pre-flight stage\n5. Keep `stream=False` where output must be checked before it is shown, and budget one extra model call per LLM-based check\n\n## Questions\n\n### Which is better for AI agents, Presidio or OpenAI Guardrails?\n\nOpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability.\n\n### Are Presidio and OpenAI Guardrails open source?\n\nYes. Presidio is open source (MIT). OpenAI Guardrails is open source (MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.json, and with the fewest tokens: https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"microsoft-presidio\", \"b\": \"openai-guardrails\"}`. From a terminal: `anchor compare microsoft-presidio openai-guardrails`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/microsoft-presidio.json and https://www.anchorterminal.com/api/v1/tools/openai-guardrails.json\n\n## Other comparisons with Presidio or OpenAI Guardrails\n\n- [Amazon Bedrock Guardrails vs OpenAI Guardrails](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-openai-guardrails.md)\n- [Azure AI Content Safety (Prompt Shields) vs OpenAI Guardrails](https://www.anchorterminal.com/compare/azure-ai-content-safety-vs-openai-guardrails.md)\n- [Cisco AI Defense Inspection API vs OpenAI Guardrails](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-openai-guardrails.md)\n- [Google Cloud Model Armor vs OpenAI Guardrails](https://www.anchorterminal.com/compare/google-model-armor-vs-openai-guardrails.md)\n- [Guardrails AI vs OpenAI Guardrails](https://www.anchorterminal.com/compare/guardrails-ai-vs-openai-guardrails.md)\n- [Lakera Guard (Check Point AI Guardrails) vs OpenAI Guardrails](https://www.anchorterminal.com/compare/lakera-guard-vs-openai-guardrails.md)\n- [LlamaFirewall vs OpenAI Guardrails](https://www.anchorterminal.com/compare/llamafirewall-vs-openai-guardrails.md)\n- [NVIDIA NeMo Guardrails vs OpenAI Guardrails](https://www.anchorterminal.com/compare/nemo-guardrails-vs-openai-guardrails.md)\n- [OpenAI Guardrails vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/openai-guardrails-vs-prisma-airs.md)\n- [Granite Guardian vs OpenAI Guardrails](https://www.anchorterminal.com/compare/granite-guardian-vs-openai-guardrails.md)\n- [Llama Guard 4 vs OpenAI Guardrails](https://www.anchorterminal.com/compare/llama-guard-vs-openai-guardrails.md)\n- [Mistral Moderation API vs OpenAI Guardrails](https://www.anchorterminal.com/compare/mistral-moderation-vs-openai-guardrails.md)\n- [OpenAI Guardrails vs OpenAI Moderation API](https://www.anchorterminal.com/compare/openai-guardrails-vs-openai-moderation.md)\n- [Amazon Bedrock Guardrails vs Presidio](https://www.anchorterminal.com/compare/amazon-bedrock-guardrails-vs-microsoft-presidio.md)\n- [Cisco AI Defense Inspection API vs Presidio](https://www.anchorterminal.com/compare/cisco-ai-defense-inspection-vs-microsoft-presidio.md)\n- [Google Cloud Model Armor vs Presidio](https://www.anchorterminal.com/compare/google-model-armor-vs-microsoft-presidio.md)\n- [Guardrails AI vs Presidio](https://www.anchorterminal.com/compare/guardrails-ai-vs-microsoft-presidio.md)\n- [Lakera Guard (Check Point AI Guardrails) vs Presidio](https://www.anchorterminal.com/compare/lakera-guard-vs-microsoft-presidio.md)\n- [LlamaFirewall vs Presidio](https://www.anchorterminal.com/compare/llamafirewall-vs-microsoft-presidio.md)\n- [Presidio vs Mistral Moderation API](https://www.anchorterminal.com/compare/microsoft-presidio-vs-mistral-moderation.md)\n- [Presidio vs NVIDIA NeMo Guardrails](https://www.anchorterminal.com/compare/microsoft-presidio-vs-nemo-guardrails.md)\n- [Presidio vs Prisma AIRS AI Runtime Security API](https://www.anchorterminal.com/compare/microsoft-presidio-vs-prisma-airs.md)\n- [Granite Guardian vs Presidio](https://www.anchorterminal.com/compare/granite-guardian-vs-microsoft-presidio.md)\n- [Llama Guard 4 vs Presidio](https://www.anchorterminal.com/compare/llama-guard-vs-microsoft-presidio.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Presidio vs OpenAI Guardrails",
        "url": ""
      }
    ],
    "description": "OpenAI Guardrails scores 69.5 (B) on agent readiness against Presidio's 66 (B), and leads in 4 of 7 scored categories. Presidio leads on reliability. Both do guard pii. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Presidio B 66",
      "OpenAI Guardrails B 69.5",
      "scores"
    ],
    "h1": "Presidio vs OpenAI Guardrails",
    "image": "https://www.anchorterminal.com/assets/og/compare-microsoft-presidio-vs-openai-guardrails.png",
    "path": "/compare/microsoft-presidio-vs-openai-guardrails",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Presidio vs OpenAI Guardrails for AI agents, B 66 vs B 69.5",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/microsoft-presidio-vs-openai-guardrails"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 530
  },
  "version": 1
}
