Privacy: what we hold, and for how long
No request text is stored: not in a database, a cache, a log or a trace.
The text you send
A check reads the text, answers, and forgets it. The text is not written to a database, a cache, a log or a trace, and the usage record for the request holds counts and ids only: which account, project and key, which endpoint, which route answered, how many items, the latency bucket and the engine version. Never a string from the body. This is held by a test that reads the API's source and refuses a write that could carry the text.
- Text the rules answer never leaves Cloudflare. The rules run at the edge. A request in fast mode, or any request from a project set to Edge-only, is never sent to a model, because the model client is not constructed at all.
- Text the rules cannot settle goes to the model, TypeSafe AI's Jev model on Cloudflare Workers AI, with the questions and nothing about who sent it: no account, project, key or address. TypeSafe AI retains what its own terms say; a zero-retention agreement is an Enterprise arrangement we do not yet have, and this sentence changes when we do. The gateway the call passes through has logging and caching switched off, and the deploy refuses to run while either is on.
- The model's numbers are cached for 7 days under a hash of the text with the engine version, so a repeated text is usually answered without a second model call. The key is a hash; the value is numbers; nothing in either is the text.
- A correction you send on purpose through the feedback endpoint or the dashboard's "Wrong result" button is the one place text is stored, and only when you include it. It is deleted with your account.
Your account
- Your email address, to sign you in and to send quota and billing notices. It goes on no list and to nobody else.
- Your API keys, as their SHA-256 hashes with the prefix and last four characters. The key itself is shown once and never stored.
- GitHub or Google sign-in, if you use it: we ask only for your verified email address and keep it with the provider's user id, so the same account opens next time. No profile, no repositories, no contacts, and no token is kept after sign-in.
- Sign-in links work once, for 15 minutes, and are stored as hashes. Sessions are signed cookies that expire after 30 days and can be revoked from the dashboard.
- Usage counts per hour, for the dashboard and the invoice, in Cloudflare Analytics Engine and then in our database.
- Your project settings and lists: the words you allow, block or reserve, stored as you typed them.
- Billing details live with Dodo Payments; we hold their customer and subscription ids and the plan.
For how long
Account data is kept while the account exists. Deleting the account from the dashboard removes everything under it, projects, keys, lists, usage rows, corrections and sessions, within 24 hours, and keys stop working within a minute. A nightly copy of the database is kept for 30 days for recovery and then deleted, so a deleted thing leaves the copies too. The queue that carries a sign-in link or a notice to the mailbox holds each message sealed under the server's key until it is delivered.
Who else processes it
Four companies, each named on the subprocessors page with what it receives:
- Cloudflare. Runs both Workers, the database, the key-value store, the usage counters, the backups, the email queue and the bot check on the sign-in form. Every request passes through it.
- TypeSafe AI (the Jev model, through Cloudflare Workers AI). The model tier. Receives the text of a check the rules could not settle, with the questions, and returns numbers. Never called for a project set to Edge-only or a request in fast mode.
- Dodo Payments. The merchant of record: checkout, card storage, tax, receipts, refunds and the customer portal.
- Resend. Sends the sign-in links, the quota notices and the billing emails.
Nothing is sold, shared for advertising, or sent anywhere else.
What we never do
- Store, read or train on the text you send.
- Keep a record of where a request came from. Attempts on the sign-in form and the playground are counted against a scrambled label that changes every hour and cannot be traced back to an address.
- Run analytics that follow you across sites. The site loads no tracking scripts; a Cloudflare beacon counts page views without a cookie.
- Log a key, a sign-in token or an email address in full. Where one has to appear in a log it appears as the first sixteen characters of its hash.
Your rights
The dashboard's settings page exports everything we hold about your account as JSON, changes the email address, and deletes the account. For anything else, or to ask what we hold, write to hello@unprofane.com from the address on the account. For your users' text there is nothing to request, because nothing was kept.
The company responsible for the information on this page is Tomer N. Marketing and Sales Ltd, 6 HaTapuach Street, Beit Shemesh 9955606, Israel. In data protection law that company is the controller for your account data and your processor for the text you send. Last changed September 24, 2026.