Legal

Privacy policy

What Sift stores from your X account, who else touches it, how long it lasts, and what deleting your account really removes — described from the code rather than from a template.

Drafted 9 September 2026Not yet in force

This is a draft for the operator to review with a lawyer.

It was written by the people who built the software, from the code and from our reading of X's Developer Policy, so the descriptions of what is stored, sent and deleted are accurate. It has had no legal review, it names no legal entity, and it is not in force. Read it as a truthful description of how the system behaves — not as a contract, and not as advice about your rights.

1Who this is about

Sift imports the posts you have bookmarked on X, sorts them into categories, and emails you a digest. This page describes the data that involves: what is stored, where it goes, how long it stays, and what removes it.

Sift is an independent product. It is not affiliated with, sponsored by or endorsed by X Corp. X appears here only as the source of the content and as the identity provider you choose to connect. Post content stays subject to X's own terms and to the rights of the people who wrote it.

2What is stored

Three separate things, and it is worth keeping them apart: your account, the post content your bookmarks point at, and what we generated from that content.

WhatSpecificallyWhere it comes from
Your accountYour X user id, handle, display name and avatar URL. An email address, if you give us one for the digest. Your timezone, preferred digest hour and plan.The X connection, except the email address and digest settings, which you enter yourself.
Access tokensThe OAuth access and refresh tokens X issues for your connection, encrypted at rest and never stored in plaintext.X, at the end of the authorization flow you approved.
Post contentFor each bookmark: the post id, its text, language, canonical x.com URL, when it was posted, media references and public engagement counts. Plus the author's handle, display name, avatar and verified flag as reported by the API.X's bookmarks endpoint, read with your token.
Your bookmark listWhich posts you saved, when we first observed each one, and whether it arrived in the initial import, the weekly backfill or ongoing sync.Derived from the same reads.
What we generatedOne category, a few tags, a one-line summary and a confidence score per bookmark, plus which model produced them.Generated by us from the post text. Ours, not X's, and always displayed as such.
Operational recordsSync state, which digests were sent and when, export counts per day, and a metered log of every X API call with its resource count and cost.Produced by the app as it runs.

Scroll sideways to see the whole table.

Post content and author profiles live in a store shared across all users, keyed by X's own ids. Two people who bookmark the same post point at one copy of it. That is both a cost decision — we never pay X twice for the same post — and the reason the deletion section below is careful about what deleting your account does and does not remove.

3What is deliberately not collected

  • No password. Connecting runs X's OAuth 2.0 authorization flow with PKCE. Your credentials go to x.com and never reach this app.
  • No location data. X's policy forbids storing or aggregating location information separately from the post it belongs to, so we do not extract it at all. The database has no place, latitude or longitude columns to fill in, and there is no map feature planned.
  • No write access. The permissions we request are read-only — tweet.read, users.read, bookmark.read and offline.access for token refresh. Nothing on the connection can post, reply, like, follow, unfollow or send a message.
  • No wider account access. We do not read your direct messages, your followers or following lists, your likes, your drafts or your private lists. Only the bookmarks you saved, and the profiles of the people who wrote them.
  • No enrichment and no matching. We do not buy data about you, and we do not try to connect your X identity to any off-X identifier. The only account we ever handle is the one you connected yourself.
  • No advertising or analytics trackers. The app sets two kinds of cookie: a signed, http-only session cookie that lasts 30 days, and two short-lived cookies that carry the OAuth handshake and expire after ten minutes. There is no analytics script, no advertising pixel and no third-party tag on any page.

4How long it is kept

Post content: only for as long as it exists on X. This is the commitment that shapes the most code. Every night we ask X's batch compliance endpoint which of the posts we hold have been deleted, withheld or suspended, and we act on the answer within 24 hours — before the next digest is generated, so a post that has gone from X cannot arrive in your inbox afterwards.

What is left in your library is a tombstone: the entry stays, marked as no longer available on X, with the content removed. A bookmark you remember saving should not vanish without explanation, and X's requirement is that the content go, not that the record of your having saved something be hidden from you.

DataKept until
Post content and author profilesIt is deleted or withheld on X, or nobody has it bookmarked any more.
Your bookmarks, categories, tags and summariesYou delete your account.
Access and refresh tokensYou delete your account or revoke access at X, whichever comes first.
Digest history (which digest went out when)You delete your account.
Session cookie30 days, or you sign out.
Metered API usage logKept as a financial record, with your user id removed when you delete your account.

Scroll sideways to see the whole table.

5Who else processes it

Two services outside our own infrastructure receive post text. Both are named here because you cannot consent to something you have not been told, and because X's redistribution rules make this the part of the design most worth being precise about.

ProcessorWhat it receivesWhy
AnthropicBatches of post text. Not your handle, not your email, not your user id — classification does not need to know whose library it is.Produces the category, tags and one-line summary for each bookmark, and the short intro line in your digest.
Email deliveryYour email address and the rendered digest, which contains the post text and links being sent to you.Delivers the digest. This deployment sends either through Resend or through an SMTP relay the operator configures.

Scroll sideways to see the whole table.

Nothing else. Your bookmarks are not sold, not shared with advertisers, not used to train our own models, and not shown to other users. There is no public profile, no shared collection and no feature that exposes one person's library to another.

Our reading of X's policy is that a processor operating on post content under contract, on our instruction, is not a third-party recipient in the sense the redistribution rules mean — the same reasoning that allows the content to sit on a managed database at all. We think that is right, and it is an interpretation rather than something the policy states outright, which is why it is written down here instead of assumed.

6X's rules that shape this policy

Several things this document promises are obligations we inherited from X's Developer Policy rather than choices we made. Knowing which is which tells you how likely they are to change.

  • Deletion within 24 hours. Anyone storing X content offline must keep it current with X and remove what has been deleted there.
  • Export capped at 500 posts per person per day, and only as a download you request — not an automated feed. This is X's number, not ours.
  • Generated text kept visually separate from post content. Categories, tags and summaries are ours; presenting them inside a post would be altering the post, which the display rules forbid.
  • Attribution and a link back to the canonical post on x.com, everywhere a bookmark is displayed, including in the email.
  • No implied affiliation with X. Hence the absence of X's logo anywhere in our branding.

7How it is protected

  • OAuth tokens are encrypted before they are written to the database. A refresh token rotates when it is used, and the previous one stops working.
  • The session cookie is http-only, same-site, signed with HMAC-SHA256, and marked secure whenever the app is served over HTTPS. It carries a signed user id and an expiry — not a token, and nothing readable by a script in your browser.
  • Requested permissions are the minimum the product needs. Read-only scopes are both cheaper for us and a smaller thing to ask you to approve.
  • Every X API call is logged with its cost, and per-user and global spending limits stop runaway usage. That is a financial control, but it doubles as an early signal that something is reading more than it should.
  • No security posture is a guarantee. If data we hold is exposed, the operator's notification duties are one of the open items at the end of this page — a promise about timing is exactly the kind of thing that should be written by someone qualified to make it.

8What you can do about it

  • Take it with you. Pro can download a CSV of up to 500 posts per day — post id, canonical link, author, dates, post text, and the category, tags and summary in ai_ prefixed columns.
  • Turn the email off without disconnecting anything, from Settings. The library keeps working.
  • Revoke us at X from your X account settings at any time. Syncing stops immediately; what we already hold stays until you delete your account.
  • Delete everything. One button in Settings, described precisely in the next section.

9What deletion actually does

Deleting your account revokes our access token at X first, then removes, in a single transaction: your bookmark list, the categories, tags and summaries generated for you, your sync state, your digest history, your export counts, your subscription record, your stored tokens and your user row.

Two things survive, and it would be dishonest to imply otherwise:

  • The shared post and author cache. Post rows and author profiles are not your data — other people have bookmarked the same posts, and deleting the rows would break their libraries and make us pay X again for identical content. Deleting your account removes the link between you and those posts, which is the part that was ever about you.
  • The metered API usage log, kept with your user id set to null. It is the record of money already spent at X and has to reconcile against X's own billing. Once the id is removed it no longer identifies you.

There is no support ticket to raise, no waiting period and no "deactivated" state that quietly keeps everything in case you come back.

10Changes to this page

X changes its API pricing and its policy, and both are explicitly subject to change on their side. When something in this document stops being true, the honest fix is to change the document and date it, not to leave text that describes a version of the product that no longer exists.

The caps and prices quoted anywhere on this site are read from the same configuration the software enforces, so the pricing section and the terms cannot describe limits the app does not apply. That is a property of how the pages are built, not a policy promise.

11What still needs a human

Everything above describes what the software actually does, which is the part we can state accurately. The following are legal judgements, not engineering facts, and a qualified adviser has to make them before this page can bind anyone.

  • The operator's identity and contact route. The legal entity, its registered address, and where a privacy request should be sent are all blank. A privacy policy with nobody named behind it is not a policy.
  • Controller and processor roles, and the lawful basis for each purpose. Whether processing rests on contract, consent or legitimate interests — and, where consent is the answer, how it is captured and withdrawn — is a legal determination this page does not make.
  • International transfers. If GDPR or UK GDPR applies to a given user, the transfer mechanism for sending post text to US-based processors needs choosing and documenting.
  • Signed data-processing agreements with Anthropic and the email provider, including zero-retention terms on the AI side where they are available, plus a published subprocessor list the operator commits to keeping current.
  • Statutory rights, and the promise about how fast they are honoured. Access, rectification, erasure, portability, objection, the response window, and how identity is verified before a request is actioned. The export and delete features exist; the commitments around them do not yet.
  • Region-specific disclosures. A California "we do not sell personal information" statement, cookie-consent requirements in the operator's markets, and a minimum-age statement all depend on where this launches.
  • Breach notification. Who is told, how quickly, and by what route.
  • Retention that law imposes rather than product design. Billing and tax records in particular may have to be kept longer than the table above suggests.
  • The subprocessor question, put to X directly. Our reading in section 5 is defensible and we would rather have it confirmed than defend it after the fact.