Privacy Policy

Effective date: June 12, 2026

AquariumBuddy is built as a local-first aquarium care app. This policy explains what stays on your device, what is sent when you use AI scan and purchase features, and how to control or delete app data.

1. Overview

This Privacy Policy applies to the AquariumBuddy iOS app, optional AI scan backend, AquariumBuddy Pro purchase features, support pages, and related services.

AquariumBuddy helps fishkeepers create aquarium profiles, track livestock and plants, schedule care, log water tests and maintenance, save scan observations, and review educational guidance. The app is designed around local device storage, with network processing used for optional AI scans, subscriptions, support email, App Store services, and ordinary website hosting.

AquariumBuddy does not create user accounts. It does not operate a cloud account database for your aquarium journal. If you use AI scan features, selected scan content is transmitted to AquariumBuddy backend services and Google Gemini so observations can be generated.

2. Short Summary

Accounts AquariumBuddy does not require account creation or login.
Ads and tracking AquariumBuddy does not show third-party ads, does not use IDFA, and does not track you across other apps or websites for advertising.
Local app data Tank profiles, fish, plants, equipment, care schedules, reminders, water tests, care logs, scan history, saved scan images, fishkeeper profile context, preferences, and onboarding answers are stored locally.
AI provider AquariumBuddy uses Google Gemini API through an AquariumBuddy backend hosted on Cloudflare Workers. The current backend model is gemini-2.5-flash.
Payments Apple processes App Store payments. RevenueCat helps validate purchases, restore purchases, and manage the aquariumbuddy_pro entitlement.
Deletion You can reset local aquarium data in the app. You can remove remaining local app data by deleting AquariumBuddy from your device, subject to your device backup settings.

3. Information Stored Locally on Your Device

AquariumBuddy stores app data locally using iOS app storage, including UserDefaults-backed encoded app state. Local data can include:

  • Onboarding status, experience level, onboarding questionnaire answers, generated setup plan summaries, and active tank selection.
  • Aquarium profiles, including tank name, volume, aquarium type, profile image choice, notes, equipment, filter, heater status, lighting, target temperature, feeding schedule, water-change schedule, filter-cleaning interval, custom care tasks, fish, fish counts, fish care details, and plants.
  • Reminder state, completed reminder identifiers, care logs, notes, feeding logs, water-change logs, filter-cleaning logs, and custom maintenance notes.
  • Water test entries, including values you enter for pH, ammonia, nitrite, nitrate, temperature, date, and notes.
  • Scan history, including scan type, date, provider/model labels, observations, confidence, categories, next steps, notes, and optional saved scan image data.
  • Saved fishkeeper visual context derived from scan observations, such as possible fish species, possible plants, condition notes, recommendations, and care-plan summaries.
  • User preferences such as volume unit, temperature unit, notification preference, and reminder lead time.

Saved scan images are kept locally with scan history and are pruned by the app to limit retained image history per aquarium. Current app logic caps retained scan images at up to 60 image-bearing history entries per aquarium and up to 8 MB of retained scan image data per aquarium.

If you uninstall AquariumBuddy, iOS normally removes the app's local data. Device backups controlled by Apple, your device, or your settings may include local app data.

4. Camera, Photo, and Notification Permissions

AquariumBuddy asks for permission only when a feature needs it.

  • Camera access is used when you choose to capture a new aquarium, fish, plant, product, problem, or water-test photo for scanning.
  • Photo library access is used when you choose an existing image for a scan.
  • Notification permission is used when you enable care reminders. Notifications can include reminder titles and bodies such as feeding, water testing, water changes, filter cleaning, lights, notes, or custom care tasks.
  • AquariumBuddy does not continuously monitor your camera or photo library.
  • You can change camera, photo, and notification permissions in iOS Settings.

5. Information Sent for AI Scans

AI scans are optional. When you choose or capture a photo and tap to analyze it, AquariumBuddy prepares a JPEG image and sends the information needed for that scan to the AquariumBuddy backend over HTTPS. The request can include:

  • The selected scan type: aquarium, fish, plant, product, problem, or water test.
  • The selected image, normalized as JPEG data and sent as base64 in the scan request.
  • Tank context, including tank name, volume, type, fish, plants, equipment, target temperature, and notes.
  • The latest water test, if available, including pH, ammonia, nitrite, nitrate, temperature, date, and note.
  • Recent care events, such as feeding, water testing, water changes, filter cleaning, and notes.
  • Your selected experience level and saved fishkeeper visual context, if available.
  • Technical request information needed to transmit, route, secure, validate, rate-limit, and debug the request.

The backend asks the AI provider to return structured observations with bounded title, detail, next step, confidence, icon, and category fields. The app displays and can locally save the normalized observations.

6. How AI Requests Travel

  1. You select a scan type and choose or capture an image.
  2. The app adds relevant tank context, water-test context, recent care context, experience level, and saved visual context.
  3. The app sends the request to the AquariumBuddy backend endpoint /v1/ai/scan.
  4. The backend validates the request, rejects unsupported scan kinds or oversized/invalid image data, may apply rate limits, and builds a Gemini request using server-side credentials.
  5. The backend sends the prompt and image to Google Gemini API.
  6. Google Gemini returns generated JSON text to the backend.
  7. The backend normalizes the response and returns observations to the app.
  8. If you choose to save the result, AquariumBuddy stores the scan result and image locally on your device.

7. Backend Processing and Logs

The production backend is hosted on Cloudflare Workers at an AquariumBuddy-controlled endpoint. It receives scan requests, validates inputs, applies security headers and CORS rules, may apply rate limiting, forwards permitted scan content to Google Gemini, and returns normalized observations to the app.

AquariumBuddy does not intentionally store a database of your full scan images, prompts, aquarium records, or generated observations on the backend. Cloudflare may process technical and network information needed to operate the Worker, such as IP address, route, request timing, status code, endpoint, security events, and operational logs. Logs are intended for reliability, security, and debugging, not for building a cloud aquarium journal.

Backend request limits currently include a maximum scan image size of 6 MB and a maximum request size of 8 MB. These limits may change to protect reliability and cost.

8. Google Gemini Processing

AquariumBuddy uses Google Gemini API to analyze selected scan images and generate structured aquarium observations. Information sent to Gemini can include the selected image, prompt, scan type, aquarium context, water-test context, recent care context, experience level, saved visual context, and generated output.

AI provider retention, safety review, abuse monitoring, service improvement, and legal disclosure practices may depend on the Gemini API terms, billing status, account configuration, region, and policies in effect at the time of processing. Do not submit images or notes that you are not comfortable having processed by AquariumBuddy, Cloudflare, and Google Gemini.

9. Purchases, App Store, and RevenueCat

AquariumBuddy may offer AquariumBuddy Pro through Apple App Store in-app purchase. Apple processes the payment transaction through your Apple Account. AquariumBuddy does not receive your full payment card number.

RevenueCat helps validate purchases, restore purchases, manage product offerings, and determine whether the aquariumbuddy_pro entitlement is active. RevenueCat may process an app-specific anonymous user identifier, Apple receipt and transaction data, product identifiers, entitlement status, subscription status, renewal status, expiration information, device or app technical information, and related purchase analytics.

Current RevenueCat product package identifiers used by the app are monthly and yearly. Exact product IDs, pricing, trial terms, renewal terms, and availability are controlled by the App Store configuration shown before purchase.

10. Service Providers

AquariumBuddy uses service providers to operate app features:

  • Apple, for App Store distribution, iOS permissions, in-app purchase, subscription management, refunds, device services, and App Store account management.
  • Cloudflare, for Worker hosting, routing, security, rate limiting, and operational logs for the AI backend.
  • Google, for Google Gemini API processing of selected AI scan requests.
  • RevenueCat, for purchase validation, entitlement management, restore purchases, customer center features, and subscription analytics.
  • Email providers, when you contact support or feedback addresses.

11. Sensitive Data and Animal Health

AquariumBuddy is not designed to process highly sensitive personal information. Avoid adding personal, medical, financial, government ID, password, API key, confidential, or safety-critical information to photos, notes, scan requests, or support messages.

AquariumBuddy may process aquarium and livestock information you enter, including fish species, fish counts, tank conditions, water readings, and visible fish-health concerns in selected photos. AI observations are educational and may be wrong. They are not veterinary diagnosis, treatment instructions, emergency help, or a substitute for water testing, quarantine, direct observation, or a qualified aquatic veterinarian.

12. Your Choices and Data Deletion

  • You can decline camera or photo permissions, though scan features may not work without image access.
  • You can disable care notifications in the app or in iOS Settings.
  • You can reset onboarding inside AquariumBuddy.
  • You can reset local aquarium data inside AquariumBuddy. This removes local tanks, care logs, water tests, scans, saved scan images, fishkeeper profiles, and preferences on the device.
  • You can remove remaining local app data by deleting AquariumBuddy from your device, subject to iOS and backup behavior.
  • You can manage or cancel subscriptions through your Apple Account subscription settings.
  • You can contact support with privacy or deletion questions at support@aquariumbuddy.app.

Because AquariumBuddy does not create user accounts, we may not be able to identify or delete local data on your device or provider records without information from you. Do not send sensitive aquarium photos or urgent animal-health information unless it is necessary for your request.

13. Security

AquariumBuddy uses HTTPS for AI requests and relies on platform security controls provided by iOS, Apple, Cloudflare, Google, and RevenueCat. Backend secrets, such as Google AI credentials, are intended to stay server-side and are not stored in the production iOS app.

No method of local storage, transmission, or processing is perfectly secure. Keep your device, Apple Account, and backups protected.

14. International Processing

AquariumBuddy and its providers may process information in countries other than your own. Data protection laws may differ from those in your country or region.

15. Children

AquariumBuddy is not directed to children under 13. The app does not knowingly collect personal information from children. Because AI scans use Google Gemini API, AI scan features are intended for users who are at least 18 years old or are using the app with appropriate adult involvement. Do not submit children's personal information in scan photos, notes, or support messages.

16. Privacy Rights

Depending on where you live, you may have privacy rights such as the right to request access, correction, deletion, restriction, objection, portability, or information about certain processing. Because AquariumBuddy stores most app data locally and does not create accounts, many controls are available directly on your device.

To ask about provider-side, support, or privacy requests, contact support@aquariumbuddy.app. We may need enough information to understand and respond to your request, but please avoid sending unnecessary sensitive content.

17. App Store Privacy Disclosure Notes

App Store privacy disclosures should match the actual app behavior. Based on the current implementation, AquariumBuddy may collect or process the following data types for app functionality, purchases, diagnostics, and support:

  • User content you choose to provide, such as selected scan photos, aquarium notes, care logs, water tests, support emails, and feedback messages.
  • Purchases and subscription information processed by Apple and RevenueCat.
  • Identifiers such as an anonymous RevenueCat app user identifier used for entitlement management.
  • Diagnostics or technical data processed by Apple, RevenueCat, Cloudflare, Google Gemini, and support email systems as needed to operate the app and services.

AquariumBuddy does not use these data types for third-party advertising tracking and does not sell personal information.

18. Provider Policies

You can review policies and terms for providers used by AquariumBuddy:

19. Changes to This Policy

This policy may be updated when AquariumBuddy changes, when service providers or legal requirements change, or when purchase, AI, or data practices change. The effective date above shows when this version took effect.

20. Contact

For privacy questions, support requests, or deletion questions, contact support@aquariumbuddy.app.