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.
Redact in your own code
Here is the whole thing, 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 →
Redact over HTTP
Philter is the same engine behind a REST API, with policy management and an audit trail. It suits several applications sharing one policy set, or callers that are not Java, Python, or .NET programs.
cat > default.json <<'JSON'
{ "name": "default",
"identifiers": {
"emailAddress": { "emailAddressFilterStrategies": [ { "strategy": "REDACT" } ] },
"ssn": { "ssnFilterStrategies": [ { "strategy": "REDACT" } ] } } }
JSON
docker run -d -p 8080:8080 \
-v "$PWD/default.json:/opt/philter/policies/default.json" \
philterd/philter:3.4.1
curl -k -X POST "https://localhost:8080/api/filter" \
-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}}}.
The full 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.