Privacy Policy
Last updated: 1 September 2026
Marsh ("the app", "we", "us") is a fact-checking helper for Android, published by Marsh by Ronald Mendoza. It reads the text on a screen, then asks an AI service whether that text looks like real news, fake/misleading news, or is uncertain. Marsh has two modes you choose in Settings:
- Bubble mode. A floating bubble sits on top of other apps; when you tap it, Marsh captures a single frame of the current screen using Android's screen-capture API and reads the text on it.
- Screenshot mode. No bubble is shown. Marsh watches for new screenshots you take yourself. Each time you take one, it reads the text from that screenshot image and runs a check. It does not use screen capture in this mode.
This policy explains exactly what Marsh accesses, what leaves your device, and what we keep.
1. What Marsh accesses on your device
- Screen contents — bubble mode only. Only when you tap the bubble to run a check. Marsh uses Android's media projection (screen capture) API to grab one frame of the current screen. Android shows its own consent dialog before this is allowed, once per session. The frame is held in memory only long enough to extract text (OCR) on-device, then discarded — it is never stored or uploaded.
- Your screenshots — screenshot mode only. When you enable screenshot mode, Marsh needs photo/media access to notice when a new screenshot appears and to read the text from it. Marsh only looks at the most recent screenshot you took; it does not browse, copy, delete or upload your photos, and it reads nothing until you take a screenshot. Screen capture is not used in this mode.
- In either mode, Marsh does not record video, does not capture the screen in the background, and does not read anything when you are not running a check or taking a screenshot.
2. What is sent off your device
When you run a check, Marsh sends the following to our backend (a Supabase Edge Function), which forwards it to an AI provider for analysis:
- the text extracted from the screenshot (not the image);
- your selected language;
- your selected response mood (angry / normal / happy).
No account information, device identifiers, contacts, location, or the screenshot itself are sent. AI processing is performed by a third-party model provider (OpenRouter, which routes the request to Google Gemini models) to generate the verdict and explanation.
3. What our backend stores
- Result cache. To reduce cost and speed things up, we store a one-way hash of (text + language + mood) together with the resulting verdict, confidence and explanation, for up to 7 days. This lets repeated checks of the same content skip a new AI call.
- Abuse / cost protection. Our server temporarily records request counts per IP address (in short time buckets) so it can rate-limit excessive use. These counters are not used to identify you and are deleted within about 2 days.
- Reports you submit. If you tap "Report" on a result, Marsh sends that result's verdict, explanation and the scanned text snippet to us so we can review AI mistakes. Reports are kept up to 180 days.
4. Anonymous ID (promo codes only)
If you use the "Enter credit code" feature, the app creates a random anonymous identifier through Supabase authentication. It is used only to enforce one-time-use of promo codes. It is not linked to any email, name, phone number or real-world identity, and it is not sent with fact-check requests. Your daily free-scan limit is tracked only on your device, not on our servers.
5. Data stored only on your device
- Your last 10 fact-check results (verdict, explanation and a short text snippet) are saved in local app storage so you can review them in the History tab. They are not uploaded. Uninstalling the app deletes them.
- Your settings (language, mood, remaining daily scans) are stored locally.
6. What we do NOT do
- No advertising and no advertising identifiers.
- No third-party analytics or tracking SDKs.
- No selling, renting or sharing of personal data.
- No profiles about you.
- We never store or upload your screenshots.
7. Permissions and why they are needed
- Display over other apps. To show the floating bubble (bubble mode) and the result card on top of other apps.
- Screen capture (media projection) — bubble mode. To read the text on the current screen when you tap the bubble. Consent is requested by Android each session.
- Photos and media — screenshot mode. So Marsh can detect a new screenshot and read its text. Used only to read the screenshot you just took; not used in bubble mode.
- Notifications. Android requires a visible notification while Marsh's foreground service is active.
- Internet. To send scanned text for AI analysis and to redeem promo codes.
8. Children
Marsh is not directed to children under 13 (or the equivalent minimum age in your country) and is not intended for their use.
9. Third-party services
- Supabase — backend hosting, database, anonymous authentication.
- OpenRouter and Google (Gemini models) — AI analysis of scanned text.
- Google ML Kit — on-device text recognition (OCR); runs locally on your device.
Your use of Marsh's AI features is also subject to those providers' terms and privacy policies.
10. Data retention summary
- Result cache (text hash + verdict): ≤ 7 days
- Per-IP rate-limit counters: ≤ 2 days
- Submitted reports: ≤ 180 days
- Local history on your device: until you clear it or uninstall
11. Data deletion requests
Marsh has no user accounts and does not store your name, email, or any identifier that points to you personally, so in most cases there is nothing tied to you to delete. Everything on our backend also expires on its own:
- Result cache (a one-way hash, not your text) — within 7 days
- Per-IP rate-limit counters — within about 2 days
- Reports you chose to submit (verdict, explanation, and a scanned text snippet) — within 180 days
If you would still like us to delete something sooner — for example a specific report you submitted — email imronaldmendoza@gmail.com from any address and describe roughly what and when. We will delete anything we can identify, normally within 30 days.
To remove everything stored on your device (your last 10 results and your settings), clear the app's storage in Android Settings or uninstall the app.
12. Your choices
- Don't tap the bubble (bubble mode) or don't take a screenshot (screenshot mode) — nothing is scanned or sent.
- Switch modes, or press Stop Marsh, any time in the app.
- Revoke the "Display over other apps", screen-capture, or photo/media permissions in Android Settings to stop Marsh from working.
- Uninstall the app to remove all locally stored data.
13. Changes to this policy
If this policy changes, the "Last updated" date above will change and the new version will be posted on this page.
14. Contact
Questions about this policy? Contact us at imronaldmendoza@gmail.com.