Data retention and cookies
This is the inventory behind the privacy policy: every item the site keeps, where it lives, how long it lasts, and whether it needs your consent. The policy explains why each one exists; this page is the list you can check.
Two rules run through it. Nothing is kept longer than the job it does, and nothing that is not strictly necessary is stored before you agree to it. The windows below are the constants that enforce them — the build fails if this page and the code behind it stop agreeing.
On your device
| What | Where | How long | Why it exists | Consent |
|---|---|---|---|---|
ps_device | Cookie | 1 year | Counts creations and sign-ups per browser, so the Free daily allowance cannot be reset by clearing local data. It is a random, server-signed id: no address, no account, no history. | No — strictly necessary for rate limits |
Supabase session (sb-…-auth-token) | Browser storage | Until you sign out, or the session expires | Keeps you signed in between visits. Only present if you have an account. | No — strictly necessary for sign-in |
_ga, _ga_S4PQMZFBWW | Cookies, public pages only | 1 year, set by this site | Counts page views. It never runs on paste, embed, report, account or dashboard pages, and never receives a query string or link fragment. Google’s default for these cookies is two years; the loader asks for one. | In the EEA and UK, only after you press Accept in the banner. Automatic elsewhere; Do Not Track or Global Privacy Control stops it |
| Cloudflare challenge cookie | Cookie, set on the paste and report forms | Minutes to the length of the challenge, expired by Cloudflare | Proves a form was filled by a person rather than a script. | No — needed to complete the human check |
ps_theme | localStorage | Until you clear site data | Remembers whether you chose light or dark. | No — a preference you set |
pastesite:draft:v1 | localStorage | Until you create the paste or clear it | Keeps the draft of an unsaved paste so closing a tab does not lose it. It stays on the device until you create. | No |
pastesite_mine | localStorage | Until you sign out | A local cache of your own paste list, so the dashboard does not start empty. | No |
pastesite:import | sessionStorage | Until the tab closes | Hands imported text from the import tool to the editor in the same tab. | No |
ps_analytics_consent_v2 | localStorage | Until you change it with ?cookie-settings=1 | Records the analytics answer you gave, so the banner does not ask again. It is never sent to us. | No — it is the record of your answer |
On our servers
| What | How long | Notes |
|---|---|---|
| Paste text, title, language, visibility and any screenshot | Until it expires, burns after a read, or you delete it | Encrypted pastes are stored as ciphertext only; the title and other metadata stay readable |
| Saved revisions | 20 per paste on Free; 100 on Plus | Older revisions are dropped as new ones are saved. Existing capacity stays after a downgrade. |
| Paste passwords | As long as the paste | A bcrypt hash only — the password itself is never stored |
| View records | 24 hours | De-duplicates a view per network per day, so the count is not one row per reload |
| Rate-limit and counter rows | 48 hours | Swept automatically; they hold a salted hash, never a raw address |
| Crash and error rows | 7 days | Route and kind only — no message, no stack trace, no address and none of your content |
| Abuse reports | While open, then 1 year | An undecided report is never discarded; the year is what lets repeat abuse be recognised |
| Hash of removed abusive text | While it can still refuse a re-upload | A SHA-256 of the normalised text, never the text, with the reason and date |
| Account: email, profile, hashed password | Until you delete the account | Deleting unlinks your pastes rather than destroying shared links; the email and password at the sign-in provider are removed by a daily check |
| API keys | Until you revoke them | A salted hash plus a short prefix for recognition; the key itself is shown once |
| Billing records | Retained after cancellation | Held for accounting, disputes and legal duties. Card details are entered at Stripe and never reach us. |
| Copies of pastes made before the site moved to its own database | Until you ask for them to be removed | Not served, not listed, and not reached by the expiry sweep |
| Analytics counts (Umami) | 12 months, then pruned by our own job | Page views and referrers from our own host. No cookie, no cross-site profile, and no per-visitor record we can single out — so the rows are counts, not a file on a person. Session replay and heatmaps are off. |
| Google Analytics page views | 14 months — set in the property | Page origin and path only, and only where the loader is allowed to run. 14 months is the longest GA4 offers, so no event can outlive it. |
What consent means here
Strictly necessary items need no consent. The ps_device cookie, the sign-in session and Cloudflare’s challenge cookie are what make rate limits and sign-in work at all. They carry no advertising data and no cross-site identifier, and they are set whether or not you answer the banner.
Analytics is the one choice. Outside the EEA and the UK it runs automatically, and Do Not Track or Global Privacy Control stops it. Inside them it waits: no script, no request to Google and no _ga until you press Accept, and /?cookie-settings=1 withdraws that answer at any time. Declining leaves every feature working.
Removing things. A paste goes from its own menu; an account goes from the dashboard, in one step, and takes its folders and API keys with it; a cookie or a stored choice goes when you clear site data, or with ?cookie-settings=1 for analytics. Anything else — an anonymous paste you no longer want, or a copy from before the current database — write to support@pastesite.com with the link, and it is removed.
Frequently asked questions
Is any of this advertising data?
No. There is no advertising tag and no tag manager, and the Content-Security-Policy would block one that was added without review. The ad tag this site once loaded was removed on 31 October 2026, and the two first-party cookies it had left behind are deleted on your next page load.
Why is my paste gone even though I bookmarked the link?
An expiry is a deletion, not a hiding: once the time passes, the paste and its revisions are removed and the link stops working — including for you. Burn-after-read works the same way after the first read. Keep anything you cannot lose somewhere else.
How do I get a copy of everything you hold?
The dashboard’s Download my data gives you one JSON file with your profile, pastes, folders, revisions and key metadata — no email needed. Encrypted pastes are included as the ciphertext that is stored, never as plaintext, because the key is not ours to include.