Build with open source PII redaction.

Quickstarts, runnable samples, and reference docs.

Start here → GitHub Join the Slack

Philterd for developers

Philterd builds open source software that finds and replaces PII and PHI in text. It runs inside your own infrastructure, so the data you are protecting never leaves your boundary.

Your first redaction

I want to redact using an API

Philter puts the Phileas engine behind a REST API, with stored policies and an audit trail. It suits several applications sharing one policy set, or callers written in any language.

Philter also runs from the AWS, Azure, and Google Cloud marketplaces.

export PHILTER_ENCRYPTION_KEY="$(openssl rand -base64 32)"
export PHILTER_API_KEY="sk_$(openssl rand -hex 16)"

docker run -d --name philter -p 8080:8080 \
  -e PHILTER_ENCRYPTION_KEY \
  -e PHILTER_BOOTSTRAP_API_KEY="$PHILTER_API_KEY" \
  -v philter-data:/opt/philter/data \
  philterd/philter:4.0.0

until curl -skf https://localhost:8080/api/health > /dev/null; do sleep 2; done

curl -sk "https://localhost:8080/api/filter" \
  -H "Authorization: Bearer $PHILTER_API_KEY" \
  -H "Content-Type: text/plain" \
  --data-binary "Contact john@example.com or call about SSN 123-45-6789."
Contact {{{REDACTED-email-address}}} or call about SSN {{{REDACTED-ssn}}}.

I want to redact in my app

Phileas is the redaction library. It runs in your own process, with no server to deploy:

pip install phileas-redact
from phileas.policy.policy import Policy
from phileas.services.filter_service import FilterService

policy = Policy.from_dict({"name": "demo", "identifiers": {
    "emailAddress": {"emailAddressFilterStrategies": [{"strategy": "REDACT"}]},
    "ssn": {"ssnFilterStrategies": [{"strategy": "REDACT"}]}}})

print(FilterService().filter(
    policy=policy, context="demo", document_id="doc-1",
    text="Contact john@example.com or call about SSN 123-45-6789.",
).filtered_text)
Contact {{{REDACTED-email-address}}} or call about SSN {{{REDACTED-ssn}}}.

Java and .NET do the same thing. Walk through all three →

The full Philter reference is in Philter’s documentation.

Detection is probabilistic. These tools are designed to reduce how much sensitive data passes through a pipeline, and you should validate their output against your own data before relying on them.