# Redact PII before sending text to an LLM

> Strip names, emails, card numbers, and 37 other entity types from prompts before they reach a third-party model. One HTTP call, no retention.

Canonical: https://bitbanger.in/use-cases/before-llm
Last updated: 2026-10-27

Every prompt you send to a hosted model leaves your boundary. If that prompt contains a customer's address or card number, you have just made a data transfer to a processor that your privacy notice probably does not cover. Redactly sits in front of the model call and replaces the identifying spans with stable type labels.

## What this gives you

- Redact first, then send. The model sees [identity.person_name] and [contact.email] instead of the real values, and can still reason about the sentence.
- Labels are type-based rather than random tokens, so the model keeps the semantics it needs to answer.
- Nothing is stored: the request is redacted in memory and the response is returned synchronously.
- If you need the original values back, keep your own mapping — Redactly's output is irreversible by design.

## Request

```bash
curl -X POST https://api.bitbanger.in/v1/redact \
  -H "X-API-Key: rdct_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"text": "Summarise the complaint from Jane Doe at jane.doe@example.com about card 4242 4242 4242 4242."}'
```

## FAQ

**Does this work with OpenAI, Anthropic, or any other provider?**

Yes. Redactly is provider-neutral: it redacts the string before you build the request, so it works with any chat or completion API, including self-hosted models.

**Can I restore the original values after the model responds?**

Not from Redactly's output, which is irreversible. Keep your own token-to-value map on your side if you need to rehydrate.

## Related

- [All 40 entity types](https://bitbanger.in/entities/)
- [Integrations](https://bitbanger.in/integrations/)
- [API reference](https://bitbanger.in/docs)

Live demo: https://bitbanger.in/use-cases/before-llm
