Privacy Policy — Propaganda Lens
Version and effective date: 2026-11-08
Operator: Neo Sapiens Labs LLC, a Tennessee limited liability company ("Neo Sapiens Labs", "we", "us")
Contact: neosapienslabs@pm.me
Propaganda Lens ("Lens", "the app") gives you an AI-generated read on the framing, persuasion techniques, sourcing, and possible missing context in content you choose to share with it. This policy explains what data the app handles, who processes it, how long we keep it, and the choices you have.
The short version
- Lens only sees content you choose to share with it. We do not show ads, sell your data, or track you across other apps or websites.
- To analyze content, we send it to third-party AI and content-extraction providers. The app asks your permission before you can use it. We do not send your name or email address to those providers.
- Deleting an analysis in the app removes it from that phone and erases it from our servers: what you shared, what we extracted from it and the result. What stays is the date and the cost of the scan in your credit history, and an anonymous copy in The Zeitgeist, if one was made.
- When several people share the same content, we may reuse earlier work for a limited time (up to 72 hours for a finished analysis, up to 7 days for what we extracted from a link). Reused data is not stored under your account.
- Analyses of public social-media posts can be shown to every user in The Zeitgeist, the app's feed of up to ten posts per country, as anonymous copies. A copy does not show who shared the post and is not stored under their account, so deleting the analysis or the account does not remove it.
- You can delete your account and its data at any time. A few records stay; they are listed under "How long we keep data".
What we collect
Account information
-
Sign-in. You need an account to use Lens. We store the details your chosen method provides:
- Email: your email address. We send a one-time code to it.
- Google Sign-In: your name, email address, profile photo, and Google account ID, as provided by Google.
- Facebook Login: your name, email address (if Facebook provides one), profile photo, and Facebook account ID, as provided by Meta.
We never receive your Google or Facebook password.
-
Display name and profile photo (optional). You can change the name shown in the app and choose a photo from your photo library. The photo is stored privately and shown only to you. The app does not copy the profile photo of your Google or Facebook account. It did until 11 October 2026, and a copy made before then is deleted the next time you open the app.
-
Device identifier. The app creates a random identifier for each installation. It is sent with each scan and stored with it. It is not an advertising identifier.
-
Starter-credit record. To give free starter credits only once per person, we keep a fingerprint of the email address, or the Google or Facebook account ID, that you signed in with. It is computed with a secret value so that it does not show the address or ID itself, and it is stored without your account ID. We keep it after you delete your account, so that starter credits are not granted twice.
Content you share for analysis
- Links or text you share into the app from another app.
- What our servers produce from it: extracted text, transcripts of audio or video, a description of what is shown and heard in a video or photo post, a preview image of the post, the post's caption or title, details such as its length, language, and music, the public creator name or handle shown with the post, and the analysis results (including checks of individual claims and the sources found).
- Topics and narratives. Each analysis is stored with a topic, the political leaning of the content, and the recurring narratives it matched. The app uses these to show patterns across your own history and the badges you have collected. They describe the content you shared, not you.
- Chat. Questions you ask about an analysis are sent to our servers and to OpenAI to generate the answer, together with your recent messages in that conversation and a summary of the analysis, which includes the link and an excerpt of the content. Your chat history is kept on your device only, for up to 30 days after the last message, and is not stored on our servers — except the text of an AI reply you report, which is stored with your report.
- Content checks. When Lens scans a post, the text or transcript and the preview image are checked automatically for explicit sexual content by OpenAI's moderation service. For video and photo posts from Instagram, TikTok, and X, the visual read by Google's Gemini model also reports whether the post shows explicit sexual content and, if it does, whether that content appears to involve a minor. A minor simply appearing in a post is not something these checks look for. The checks produce scores and labels, which we log and store with the scan; they do not create a copy of your content.
Safety records
If a scan is stopped because our check flags the post as possibly containing explicit sexual content involving a minor, or because an AI provider blocks the post under its own safety rules, we keep a record of the link, your account ID, the scan's ID, the time, the platform, which check fired, and the status and notes of our review. We keep no copy of the content. An alert with the same IDs, but not the link, goes to our error-monitoring provider (Sentry).
We delete a safety record one year after the scan. A record we find to be a mistake is deleted sooner. A record that we have reported to the authorities is kept for at least one year after the report, and a record that is part of a legal matter is kept for as long as that matter needs it. Safety records are kept even if you delete your account, and may be shared with the authorities as described in "Legal requests".
Records of your choices
- Acceptance records. When you accept the Terms of Service and this Privacy Policy and give permission to send content to AI providers, we record your account ID, the versions you accepted, your AI-processing permission, your platform, the app version, and the time. We keep each acceptance as history; we do not overwrite earlier ones.
- Reports. If you report an analysis or a chat reply, we store the reason you picked, any details you type, what you reported (for a chat reply, its text), when, and the outcome of our review.
- Feedback. If you rate an analysis, pick reasons, write a comment, answer a check-in question, or send a bug report or an idea, we store it with your account ID, the app version and build, and your device's operating system version and language. A rating is also stored with the link, verdict, and AI model of the analysis you rated. If you tick "OK to email me about this", we may reply to the email address on your account.
Purchases
- If you buy credits, Google Play (or the Apple App Store, where Lens is offered there) processes the payment. We and our purchase-management provider, RevenueCat, receive a transaction record (product, price and currency, date, store, store transaction ID) linked to your account ID. We never see your card or bank details. On Android, RevenueCat receives your account ID when you sign in, whether or not you buy anything.
- We keep your credit balance, credits held for scans in progress, a ledger of credits added and charged per scan, and what each scan cost us to run.
Device and diagnostics
- Push notification token. If you allow notifications, a push token is stored so we can tell you when an analysis is ready.
- Crash, error, and performance reports. Sentry receives crash and error reports with technical details (device model, operating system, app version, error trace), and performance measurements from a sample of app sessions: how long the app takes to start, to open screens, and to complete network requests. Reports from the app carry a random identifier for your installation; some reports from our servers carry your account ID. Before a report leaves the app, web addresses in it are cut down to the server and path, without search terms or IDs. Reports never include your name or email address.
- Usage and cost records. For each request we record which features and providers were used, token counts, timings, status, and cost, linked to your account ID, to enforce limits, prevent abuse, and charge credits correctly. These records do not contain the text of your content.
- Server logs. Our server functions write short technical logs that can include the link being scanned, individual claims being checked, and your account ID. Our hosting provider keeps them for a limited period.
- App updates. The app checks Expo's update servers for new versions when it starts. Like any web request, this exposes your IP address and basic device and app-version information to Expo, along with a random identifier for your installation.
- Store rating. After some use, the app may ask Google Play to show its rating card. The app sends Google nothing about you for this.
- Device language and app state. The app sends your device language with each scan, so results come back in the right language, and tells our servers whether the app is open while a scan runs, so we know whether to notify you.
What we do not collect or do
- No advertising, advertising identifiers, or ad SDKs. The only monitoring in the app is the crash, error, and performance reporting described above.
- No contacts and no location. The app does not read your clipboard, your other apps, or your browsing history; it sees only what you share into it.
- We do not sell your personal information, and we do not share it for cross-context behavioral advertising.
Who processes your data
The table lists every outside party that receives data when you use Lens. Most are service providers that process data on our behalf. The social platforms, and the websites that host icons and images, are not: they only receive the request for the post or the image. Some AI providers may keep request data for a limited period under their own terms (for example, for abuse monitoring); we do not control how long.
| Provider | What it does for Lens | What it receives |
|---|---|---|
| Supabase | Database, sign-in, file storage, server functions, server logs | All data described in this policy |
| OpenAI | A first read of each post, content safety checks, transcription of speech in videos, chat answers, alternative perspectives, topic labels, and picking out claims for extra checks | Content text, transcripts, the video or its audio track, preview images, chat messages, the shared link, the creator name |
| xAI (Grok) | Checking claims and searching web and X coverage about them (directly); the main analysis (through OpenRouter) | Content text, claims, the shared link |
| Google (Gemini) | Understanding videos and photo posts; writing the verdict and summary (directly or through OpenRouter) | Media files, post text, analysis text |
| OpenRouter | Passes requests on to xAI's and Google's AI models | Content text and, for most videos, the video file |
| Supadata | Transcripts and text from Facebook, and as a backup for YouTube and Instagram | The shared link |
| Jina AI (Jina Reader) | Text extraction from web pages | The shared link |
| Apify, and the developers of the tools we run on it | Retrieving public post data, media, and transcripts from Instagram, TikTok, X, and YouTube. Media it retrieves can sit in Apify's storage on the way | The shared link; for an Instagram story, the author's username |
| Social Fetch (Social Freak Ltd) | Retrieving public post data and media links from Instagram, when we have that route switched on | The link to the post, without the tracking part of the link you shared |
| Instagram, TikTok, X, YouTube | Our servers request the public page, preview data, and media for the link you shared | The shared link or the post's ID, sent from our servers |
| Google, YouTube, and the websites that host a source's icon or a post's preview image | Small images shown in the app: site icons, video thumbnails, and preview images we did not copy to our own storage | A request sent from your device, which shows them your IP address and the site name, video ID, or image address |
| Google (Google Sign-In) and Meta (Facebook Login) | Sign-in, only if you choose that method | Standard sign-in data |
| RevenueCat, Google Play, Apple | Credit purchases | Account ID and transaction records |
| Expo, Firebase Cloud Messaging (Google), Apple Push Notification service | Delivering notifications and app updates | Push token; notification content (a short excerpt of the result, up to 120 characters, the post's title or caption, and the address of its preview image); for updates, an installation identifier |
| Sentry | Crash, error, and performance reports; alerts about reports and safety records | Technical data, an installation identifier, and your account ID on some server reports |
AI providers receive the content you shared, not your name or email address. A link is passed on exactly as you shared it; some platforms add a code to share links that can point back to the account that created the link. Content you share may itself contain personal information about you or other people, so share only what you are comfortable having processed this way.
Results reused across users
Analyses are expensive, so when the same content is analyzed again we may reuse earlier work instead of running it again. Reused data is stored under a fingerprint of the content, not under your account:
- Finished analyses, including the claim checks inside them: up to 72 hours for shared links and 24 hours for shared text.
- Extra claim checks you ask for on a result: up to 24 hours. They are stored under the wording of the claim and can be reused for the same claim in another post.
- What we extracted from a link — page text, caption, creator name, the description of a video, and the transcript: up to 7 days.
After these periods the data is deleted. A reused record can contain the link exactly as the first person shared it, and the ID of the scan that produced it; neither is shown to other users.
When a result is reported in the app, we delete the copy we keep for reuse, so the next scan of that content is done afresh. People who already have the result keep it while we review.
Preview images of shared posts are stored under a name derived from the post, not under your account. The storage is public: anyone who has an image's web address can open it. We do not delete these images on a schedule; an image is removed only when a scan of that post is refused by a content check.
The Zeitgeist
The app's home screen shows The Zeitgeist: up to ten analyses of public social-media posts for each of seven countries (the United States, the United Kingdom, Canada, Australia, Germany, France, and Brazil). Every signed-in user can open them.
What goes into it. Every night we look at the analyses made in the last 90 days. An analysis can be used if it is of a public post on Instagram, TikTok, X, or YouTube, if the scan read that post from its link (not from text typed or pasted with it), and if the scan checked at least one of its claims against sources. For each such post, we make an anonymous copy of an analysis of it. Some posts are ones we chose and scanned ourselves. A copy is filed under the country the post is about, as read from the post, not the country of the person who shared it.
What a copy holds. The post's link without its tracking part (the part after a "?" or "#"; a YouTube link keeps only the video's ID), its preview image, the text we extracted from the post (such as its caption or transcript), the analysis, and its claim checks. Nothing shown to other users identifies who shared the post, and the copy holds no account or device identifier. We keep, with it, the ID of the analysis it was made from, which only we can read. We use it so that withdrawing that analysis after a report also takes the copy out of the feed.
It stays when you delete. The copy is not stored under your account. Deleting the analysis, or your whole account, does not remove it, and it can still be shown in the feed. A copy leaves the feed when newer posts take its place, when the analysis it came from is withdrawn after a report, when a report on a copy someone opened is upheld, or when we take it out ourselves. A copy taken out after a report, or by us, is not brought back into that country's feed.
How the ten are chosen. The newest posts come first. Three of each country's ten places are kept for posts that lean left and three for posts that lean right, judged by each analysis's own reading of the post's political leaning (left and center-left count as left; right and center-right as right). A kept place that no post fills stays empty; it is never given to a post from the other side or the center. We may keep posts we chose ourselves in the feed, whether we scanned them for it or pinned them there. Posts we chose ourselves are always included and count toward the left and right places; within the ten, the newest posts come first. When the ten are picked, posts analyzed in the last 90 days come before older ones, and a country that has too few new posts keeps its older stories until newer ones replace them.
When you open a story. Opening a story stores a copy of that Zeitgeist story under your account, so that chat and reports work on it as they do on your own scans. That copy records that you opened the story. It is not shown in your history, does not count toward your badges, and is deleted when you delete your account. If the story is taken out of the feed after a report, or by us, your copy is marked withdrawn, as any result we withdraw after review is.
How long we keep data
| Data | How long we keep it |
|---|---|
| Account information, display name, profile photo | Until you delete your account |
| Analyses, with what you shared and the content extracted for them | Kept on our servers until you delete the analysis or your account. Deleting an analysis in the app erases every scan your account made of that link: what you shared, the content extracted for it, the result, and the feedback and reports you sent about it. The date and cost of each scan stay in your credit history, without the link. A badge earned only from that analysis is removed. If the phone is offline, or a scan of that link is still being billed, the deletion is completed the next time the app is opened. Another phone signed in to your account keeps its own copy until you delete it there or sign out there. For a scan that failed or was refused, we keep what you shared and the reason it stopped, not the extracted content, until you delete your account or an analysis of the same link. An anonymous copy made for The Zeitgeist is not stored under your account, and deleting the analysis or your account does not remove it (see "The Zeitgeist") |
| The Zeitgeist: anonymous copies | Shown in the feed while they are among their country's ten; posts analyzed in the last 90 days come first, and a country with too few new posts keeps its older stories. Not stored under anyone's account. Kept after they leave the feed, with no set deletion date |
| Copies of Zeitgeist stories you opened | Under your account until you delete your account |
| Chat history | On your device only, up to 30 days after the last message (except the text of a reply you report, kept with your report) |
| Push tokens | Until you turn notifications off in the app, sign out, or delete your account. If you turn notifications off only in your phone's settings, the token stays on our servers until you delete your account or the token stops working |
| Acceptance records | For as long as your account exists; deleted with your account |
| Reports and feedback | Deleted when you delete your account |
| Purchase and credit records | As long as needed for accounting, tax, refunds, and fraud prevention. After you delete your account they are kept without your name, email address, or sign-in details; they can still contain the store's transaction number and the ID of the deleted account |
| Usage and cost records | Daily usage counters: 7 days. Cost records: kept, and unlinked from your account when you delete it |
| Server logs | A limited period set by our hosting provider |
| Crash, error, and performance reports | Up to 90 days in Sentry |
| Starter-credit record | Kept after account deletion |
| Safety records | One year after the scan; sooner if found to be a mistake; at least one year after a report to the authorities; longer while a legal matter needs it. Kept after account deletion |
| Analyses and extracted content reused across users | 72 hours, 24 hours, or 7 days, as described above |
| Preview images | No set period; removed only when a scan of that post is refused |
Your choices and rights
- Delete individual analyses in the app: this removes them from that phone and erases them from our servers, except an anonymous copy in The Zeitgeist, if one was made. Or delete your whole account in the app (profile icon → Profile → Delete account). The "Account & Data Deletion" page lists what is deleted and the few records that stay.
- Notifications can be turned off in the app or in your device settings.
- AI-processing permission is required to analyze content, because analysis is performed by third-party AI providers. To withdraw it, stop using analysis and chat and delete your account.
- Access, correction, and a copy of your data. Email us from the address linked to your account. If your account has no email address, tell us how you sign in and we will confirm it is you another way. We respond within 45 days.
- Depending on where you live (for example, certain US states, Brazil, the United Kingdom, or the European Union), you may have more rights, such as objecting to or restricting processing, or appealing our decision on your request. Contact us to use them. We will not treat you differently for doing so.
People who appear in analyzed content
Lens analyzes content that users share, which can name or show people who do not use Lens. Results are shown inside the accounts of users who scanned that content, and analyses of public social-media posts can also be shown to every user in The Zeitgeist, as described above. Lens does not publish results outside the app. If you believe a result about content you created or appear in is wrong or unfair, including a story in The Zeitgeist, email neosapienslabs@pm.me with the subject "Correction request" and the link to the content. We aim to review requests within 7 days. If we withdraw a result that is in The Zeitgeist, it leaves the feed. See "Corrections and takedown requests" in the Terms of Service.
Security
Data is stored with Supabase (hosted Postgres with row-level security, so your rows are readable only by your account) and transmitted over HTTPS. Sign-in tokens on your device are kept in the platform's secure storage; your analysis history and chats on the device are kept in the app's own storage. No system is perfectly secure; if a breach affects your data, we will notify you as the law requires.
Where data is processed
Neo Sapiens Labs LLC is a United States company. Our database is hosted in the United States, and our providers process data in the United States and other countries. Data protection laws there may differ from those where you live.
Legal requests
Apart from the safety reports described in the next paragraph, we disclose user data only in response to valid legal process binding on us under United States law, directed to neosapienslabs@pm.me. Lens collects no location data and no contact lists. Where the law allows, we will notify affected users of demands for their data before complying. We do not give any government direct or bulk access to user data.
If a safety record points to sexual content involving a minor, we may report it, with that record, to the National Center for Missing & Exploited Children or to law enforcement.
Children
Lens is a general-audience app and is not directed to people under 18. Lens is not directed to children under 13, and we do not knowingly collect personal information from children under 13. If you believe a child under 13 has used Lens, contact us and we will delete the account. Users under 18 need a parent's or guardian's permission (see the Terms of Service). Lens does not ask for your age.
Changes to this policy
The version date at the top changes whenever we update this policy. If we make a material change, the app will ask you to review and accept the updated policy the next time you open it, before you can continue.
Contact
Neo Sapiens Labs LLC — neosapienslabs@pm.me