Privacy Policy

Last updated: 2026-09-24

FishCap is built to keep your data with you. No accounts, no in-app login, no third-party analytics SDKs, no ad tracking, and no server of ours holding your catch log. Here is the detail.

1. Where your records live

Catches, photos, cutouts, species, measurements, spots and weather are stored on your device and synced through your own iCloud private database — space under your own Apple ID — to your other devices. Sync is on by default and free. We cannot access your iCloud private database; that data is protected by Apple's account and encryption mechanisms and never passes through our servers.

2. What happens during a cloud identification

When a photo is sent

After you take a photo or choose one from your library, the app first makes the cutout on your device and then automatically sends the photo for identification — there is no separate button to tap. No request is sent when:

Tapping "Identify" on a saved catch that was never identified also sends one request.

What is sent

GPS coordinates are never sent. Location EXIF from the photo is not sent with the request either.

Who processes it, and for how long

The request goes to FishCap's own Cloudflare Worker proxy, which forwards it to Google's Gemini model. FishCap's proxy does not store the photo: it is held in memory only while that one request is processed and is discarded once it has been passed to Google. So that a network retry does not consume your allowance twice, a successful identification result (candidate species, a one-line note and any length estimate — not the photo) is cached for your device, under the catch record's random ID, for up to 24 hours.

Under Google's terms for the paid Gemini API, Google does not use these requests and responses to improve or train its models, but it may log request content for a limited period solely to detect violations of its prohibited use policy and for legally required disclosures. That processing is governed by Google's terms and privacy policy.

3. What we keep on the server

We do not keep your catch log, spots, photos or photo library, or anything that could be traced back to you personally.

4. Location

With your permission, the app uses precise location on-device to record a spot, reverse-geocode it, and fetch the weather at that moment. Those results are written only into your own records and your own iCloud and are never sent to FishCap's servers or any third party (an identification request carries only the coarse region code described in section 2). You can turn location access off at any time in iOS Settings; logging still works, it simply won't fill in a place or the weather.

5. Photos

The camera and the system photo picker are used only for the photos you choose. Photos stay on your device and in your own iCloud. Apart from the identification request described in section 2, they are not uploaded anywhere. Share cards are rendered locally and handed to the system share sheet; they hide location by default and never include coordinates or GPS EXIF.

6. Weather

Weather comes from Apple WeatherKit. Fetching local conditions requires sending a location to Apple's weather service; that processing is governed by Apple's privacy policy. The result is stored only in your own records.

7. Purchases and subscriptions

Purchases run through Apple In-App Purchase; we never see your payment method, your name or your Apple ID. Receipts are processed by RevenueCat to determine subscription status, using a RevenueCat anonymous app user ID — we do not give them an email address or anything else that identifies you.

8. Tracking and analytics

FishCap contains no third-party analytics or advertising SDKs. It does not read the IDFA, does not track you across apps or websites, and does not link your data with data from other sources. In the app's privacy manifest (PrivacyInfo.xcprivacy), NSPrivacyTracking is false and the tracking-domains list is empty.

9. What we "collect", in Apple's terms

Precise location is not collected: coordinates stay on your device and in your private iCloud and are never sent to us or a third party. The widget contains no networking code at all and only reads a local snapshot shared with the app.

10. Children

FishCap is not directed at children under 13 and we do not knowingly collect information from them.

11. Your choices and deleting data

12. International processing

Identification requests are handled on Cloudflare's global network and forwarded to Google's model service, so that processing — including Cloudflare's handling of IP addresses — may happen outside your country. Everything else stays on your device and in your iCloud.

13. Changes to this policy

If this policy changes we update the "Last updated" date at the top of this page, and material changes to how data is handled are surfaced in the app.

14. Contact

FishCap · willisshan66@gmail.com