Your drafts are not stored
When you press Humanize, your draft is sent to the model provider, the rewrite streams back to your browser, and both are discarded when the request ends. Neither is written to our database, to a log, or to any file.
Refresh the page and everything is gone. There is no history, no saved drafts, and no way for us to retrieve what you pasted — including for ourselves.
Your drafts and rewrites are never used to train a model, ours or anybody else’s. Our model provider’s commercial API terms say the same of what passes through them: API inputs and outputs are not used to train their models.
What we do keep about a rewrite is the shape of it, not the substance: how many words went in, how many tokens the model used, which register you picked, what it cost. That record is described under what we store, and it expires by itself after 90 days.
Who is responsible
Michael Lynn operates Humanizer at rewr.it and is the controller of the personal data described here. Questions, requests, and complaints go to merlynn@gmail.com.
This policy covers the website, the public HTTP API, and the browser extension. It does not cover sites we link to, including Stripe’s checkout pages and Google’s sign-in flow, each of which is governed by its own policy.
What we store
If you never sign in
A random identifier in a cookie, so the daily free limit can be counted for your browser. It is not linked to a name, an email address, or anything else about you, and it is the only thing that identifies an anonymous user. Details are in cookies.
If you sign in
- Account. The name, email address, profile picture, and account identifier Google gives us, plus which plan you are on.
- Usage. How many rewrites and tokens you have used in the current period, so the allowance can be enforced.
- Billing. Your Stripe customer identifier, your credit balance, and a record of each credit purchase and charge. Card numbers never reach our servers — Stripe collects those on its own pages.
- API keys. A label, a short non-secret prefix, and a hash of the key. The key itself is shown once at creation and is not recoverable afterwards, by you or by us.
- Custom document types. On Pro, the name and instructions you wrote for each one. These are text you authored, so unlike a draft they are stored until you delete them.
- Voice profiles. A name and a set of measurements — average sentence length, how much it varies, punctuation rates, which flagged words you demonstrably use. These are numbers computed from your writing, not the writing itself.
Writing samples, only if you ask
A voice profile can be measured without keeping anything: you paste your writing at /voice, the counting runs in your browser, and the numbers are posted without the text. That is the default and it is what happens unless you turn retention on.
If you do turn it on, the pieces you add are uploaded and stored, so that the profile can be measured over your whole corpus rather than over whichever piece you pasted last, and so that a model can read them to describe your style. This is the only writing of yours we keep.
Every piece is listed on your account page. You can read any of it back, rename it, remove one piece, delete the whole profile, or switch retention off — which deletes the stored text immediately.
Samples expire 365 days after the profile was last used in a rewrite, not 365 days after upload — a profile you use keeps its samples, and one you abandon loses them and reverts to the numbers. They are also deleted with the profile and with your account.
For every rewrite, signed in or not
One metadata record per request, holding: a request identifier, which account or device made it, the plan, the model and tier that ran, the register or document type, the word count, token counts, estimated and measured cost, and timestamps.
No draft text, no rewrite text, and no excerpt of either. The word count is a number, not a sample.
These records expire automatically 90 days after they are written. Nobody has to remember to delete them; the database removes them on its own.
For every likelihood check
The checker at /detect runs in your browser, so the text you paste into it never reaches a server. When a check is recorded, one row holds: which account or device ran it, the plan, the word count, the score, the likelihood percentage it reported, a count of each kind of finding, the version of the word list in effect, and a timestamp.
No text. The percentage is a number computed from counts, and the counts are all the page records.
These records expire automatically 90 days after they are written, the same way the request metadata does.
Rate limiting
To stop one source flooding the service, requests are counted against your IP address. The address is put through a keyed hash before it is used, and only the hash is stored — we never write down the address itself. Those counters expire within minutes.
Our hosting provider keeps its own request logs, which do include IP addresses, under its own retention policy. That is outside our control and is listed under who else sees it.
Why we store it
| What | Why | Legal basis (EEA/UK) |
|---|---|---|
| Account details | To give you an account and let you sign back into it | Performance of a contract |
| Usage counters | To enforce the limits of the plan you are on | Performance of a contract |
| Billing records | To take payment, and to keep the records tax law requires | Contract, and legal obligation |
| Request metadata | To bill correctly, to see whether the service is working, and to find abuse | Legitimate interests |
| Detection records | To count how the free checker is used, and to stop one source running it in a loop | Legitimate interests |
| Hashed IP counters | To keep one source from flooding the service | Legitimate interests |
| Device cookie | To count free rewrites for a browser without an account | Legitimate interests |
We do not sell personal information, share it for cross-context behavioural advertising, or use it to build a profile of you. There is nothing here to sell: no advertising identifiers, no browsing history, no draft text.
Cookies
Humanizer sets five cookies, and every one of them is necessary for something you asked for. There are no analytics cookies, no advertising cookies, and no third-party trackers on this site — which is why the notice you saw tells you what is set rather than asking you to choose. There is nothing to turn off that would leave a working service behind.
| Cookie | What it does | How long |
|---|---|---|
| humanizer_device | Counts free rewrites for a browser that is not signed in, so the daily limit can be enforced without an account. It holds a random identifier signed with a server key — no name, email, or address. | 365 days |
| authjs.session-token | Keeps you signed in after you authenticate with Google. Removed when you sign out. | 30 days, or until sign-out |
| authjs.csrf-token | Protects the sign-in form against cross-site request forgery. Required for authentication to work at all. | Session |
| authjs.callback-url | Remembers which page you were on so sign-in returns you there instead of to the front page. | Session |
| rewrit_notice | Remembers that you have already seen the cookie notice, so it is not shown on every page. | 365 days |
The device cookie is worth a sentence of its own. It holds a random identifier signed with a server key, it is marked HttpOnly so no script can read it, and it lasts 365 days. Its entire job is to remember that this browser has used some of today’s three free rewrites.
You can clear or block all of these in your browser. Clearing the device cookie resets your anonymous count; blocking the auth cookies means you cannot sign in.
The browser extension stores your API key locally in the browser’s extension storage. It stays on your machine and is sent only to rewr.it, as the header that authenticates your requests.
Who else sees it
Running the service means using other companies. These are all of them, and what each one receives.
| Company | What it does for us | What it receives |
|---|---|---|
| Anthropic | Runs the model that produces the rewrite | The draft you submit and the rewrite it returns, for the length of the request. Also your voice-profile samples, for the length of a profile build you asked for |
| OpenAI | Turns a recorded interview answer into text | The audio of an answer you record, for the length of one request. It is not stored by us and not retained by them. Only if you use the spoken interview |
| MongoDB Atlas | Database | Account records, usage and billing metadata. No draft or rewrite text. Writing samples you upload to build a voice profile, and only if you turn retention on |
| Stripe | Payments | Your email and payment details, collected on Stripe's own pages |
| Sign-in | Your name, email address, and profile picture, when you choose to sign in | |
| Vercel | Hosting | Request logs, including IP address, kept under Vercel's own retention policy |
Beyond that list, we disclose personal data only when the law requires it, and if Humanizer is ever sold or merged, to the acquirer — in which case we would tell you before your data moved.
These providers are based in the United States. If you are in the European Economic Area or the United Kingdom, your data is transferred there under the Standard Contractual Clauses or an equivalent approved mechanism.
How long we keep it
| What | How long |
|---|---|
| Drafts and rewrites | Not stored at all |
| Voice profile measurements | Until you delete the profile or your account |
| Voice profile writing samples | Only if you turn retention on. 365 days after the profile was last used, or immediately when you switch retention off |
| Request metadata | 90 days, deleted automatically |
| Rate-limit counters | Minutes, deleted automatically |
| Help conversations | Not stored at all |
| Detection results | 90 days, deleted automatically |
| Support tickets | 180 days, deleted automatically |
| Account and usage records | Until you delete your account |
| Custom document types | Until you delete them or your account |
| API keys | Until you revoke them or delete your account |
| Billing records | As long as tax and accounting law requires, typically seven years |
Your rights
Depending on where you live, you may have the right to see a copy of what we hold about you, correct it, delete it, restrict or object to how it is used, take it elsewhere in a portable form, and complain to a data protection authority.
Ask at merlynn@gmail.com and we will answer within 30 days. We will not charge you for it, and we will not treat you differently for asking.
Two practical notes. There is no draft history to export or delete, because there is none to begin with. And deleting your account removes your account, usage, template, and key records; billing records we are required to keep are retained for as long as that requirement lasts.
Security
Traffic is served over HTTPS with strict transport security. The device cookie is signed, HttpOnly, and marked Secure in production. API keys are stored as hashes, never in a form that could be replayed. IP addresses are hashed before use. Access to the production database is limited to the people who operate the service.
No system is perfectly secure. If we discover a breach affecting your personal data, we will notify you and the relevant authority as the law requires.
Children
Humanizer is not for children under 13, or under 16 in the European Economic Area and the United Kingdom, and we do not knowingly collect their personal data. If you believe a child has given us data, write to merlynn@gmail.com and we will delete it.
Changes to this policy
The date at the top says when the current version took effect. For a change that materially affects how your personal data is handled, we will give at least 30 days’ notice by email to signed-in users before it applies. Smaller corrections take effect when the date changes.
Questions
Write to merlynn@gmail.com. A real person reads it.