baati

Keep personal data out of your LLM provider.

Baati Redact sits between your app and any OpenAI-compatible model. Names, emails and IBANs leave as placeholders and come back restored in the reply.

Request an inviteRead the docs

Your app sends

Hallo, ich bin Anna Kovács. Meine IBAN ist DE89 3704 0044 0532 0130 00 und meine Mail anna@corp.eu.

The provider sees

Hallo, ich bin [PERSON_1]. Meine IBAN ist [IBAN_1] und meine Mail [EMAIL_1].

Your user gets

Hallo Anna Kovács, ich habe Ihre IBAN DE89 3704 0044 0532 0130 00 erhalten und antworte an anna@corp.eu.

How it works

1. Send

Your app calls Baati's OpenAI-compatible endpoint with the same request you'd send any provider.

2. Placeholders

Names, emails, IBANs and phone numbers are replaced with typed placeholders like [IBAN_1] before the request reaches your provider.

3. Restore

The real values are restored in the reply your users see — including streamed responses, token by token.

6 languages

EN · DE · FR · ES · IT · NL

Your keys, your provider

Bring your own provider key, or use Workers AI with a monthly cap per key.

Invite-only

Early access. Request an invite →

FAQ

What do you store?

Nothing but counts. Request bodies and content are never stored or logged — we record only per-key request counts and latency.

Which providers work?

Any OpenAI-compatible HTTPS endpoint (OpenAI, Anthropic-compatible, Groq, etc.) via your own key, plus Cloudflare Workers AI.

Does it stream?

Yes. Placeholders are restored as the reply streams in, so your users see the real values with normal streaming UX.

Which languages?

English, German, French, Spanish, Italian and Dutch.