Tailspot
Pet Health Diary
Tailspot is a pet health diary built and operated by Zoran Gojković ("we", "us"). This Privacy Policy explains what we collect, why, who processes it on our behalf, and what control you have. We collect very little by design — most data stays on your phone, and the parts that reach a server are either encrypted end-to-end or contain only what is strictly necessary for the feature you've turned on.
Tailspot is operated by Zoran Gojković, an independent developer based in Serbia. For privacy questions or data requests, contact fenixjzdev@gmail.com. Under the GDPR we are the controller for the data described below. The processors we use are listed in section 5.
Pet profiles, daily logs, weight history, vaccines, medications, photos you attach, and locally-generated rule-engine insights live in the app's encrypted local database and private file storage. None of this leaves your phone unless you enable a feature that explicitly sends specific fields elsewhere (sections 2.2 – 2.7).
Pro subscribers' diary data is additionally backed up to our
server in encrypted form. The encryption key is derived from your
Google Play purchase token and a 32-byte random seed that exists only
on your phone — we have no copy. The server stores opaque
cipher blobs alongside a per-row UUID, the entry's
epoch_day (so we can answer "give me last 30 days"
without decrypting), a tombstone flag, and timestamps for conflict
resolution. Even with full server access, an attacker would see
ciphertext only.
When you start a Pro subscription (or restore one on a new device),
Google sends us a purchaseToken and an
orderId. We store these to prove your Pro entitlement on
every cloud-sync request. We do not receive your payment details,
your email, or your name from Google.
When you tap "Run AI Analysis" inside the AI Insights card on a pet's detail screen, the app builds a small structured digest of that pet's last 30 days of logged data and sends it to our server. Our server then calls the OpenAI API to generate the insight text and returns the result. This step requires an explicit, in-app consent dialog the first time you use the feature. See section 4 for the full description of what is sent, what is received, and your rights under the EU AI Act.
When you generate a share link to send to your veterinarian, the app uploads a snapshot of the chosen pet's recent records (the same fields that would appear in the vet-ready PDF) to our server. The snapshot is stored in plaintext on the server because the veterinarian, who is not a Tailspot user, opens it in their browser. The link expires after 30 days or when you revoke it. When the vet writes a note back through the link, we store the note text, the vet-entered display name, the share token, the timestamp, and the vet's IP address (for abuse mitigation). The note is synced back to your phone on the next app open and is then visible in the Shared Journal screen.
Your device's Firebase Cloud Messaging (FCM) registration token is stored on our server (together with your purchase token and your in-app language code) so we can push a notification when your vet leaves a new note. We do not push anything else and we do not share the FCM token with anyone else. If FCM reports the token as expired or invalid, our server deletes it.
When you open the "Find a vet near me" screen, the app requests your coarse (city-level) location and sends it to the Google Places API to fetch a list of nearby veterinary clinics. We do not store your location on our server. The Places API call is made directly from your device using a Google API key.
The optional voice-to-log feature uses Android's built-in
SpeechRecognizer to convert spoken text into a structured
log entry. Recognition happens through the speech engine your phone
manufacturer ships with Android, which on most devices is Google's
on-device or cloud speech service. Tailspot does not record, store,
or upload the raw audio — only the recognized text, which the OpenAI
API then parses into structured fields (mood, food, symptoms, etc.).
The audio buffer itself is discarded as soon as recognition
completes.
When you photograph a vaccination card to auto-import vaccine records, Tailspot runs Google ML Kit's on-device text recognition. The image and the recognized text never leave your phone.
Android requires us to disclose any permission we declare. Here is the full list with the user-facing reason for each:
INTERNET) and
network state (ACCESS_NETWORK_STATE)
— used by cloud sync, AI Insights, vet shared journal, push
notification registration, and the vet directory.POST_NOTIFICATIONS)
— vaccine reminders, medication doses, AI Insights completion
pings, and incoming vet notes. Every category can be muted
individually from Android Settings.RECEIVE_BOOT_COMPLETED) and
wake lock (WAKE_LOCK) — required
to re-arm reminder alarms after the phone restarts. We do
nothing else at boot.VIBRATE) — confirmation
pulse on log save and notification delivery.CAMERA) — requested only
when you tap the photo button on a pet profile, daily log, or
vaccination-card OCR flow. Photos stay in the app's private
storage.READ_MEDIA_IMAGES) —
requested only when you pick an existing photo from the
gallery.RECORD_AUDIO) —
requested only when you tap the microphone button to dictate a
log entry. Audio is never stored or uploaded by Tailspot; see
section 2.8.ACCESS_COARSE_LOCATION) — requested only when you
open the "Find a vet near me" screen. We do not track or store
your location; see section 2.7.com.android.vending.BILLING)
— handled entirely by Google Play; we receive only the purchase
token, no payment information.AI Insights is an opt-in Pro feature that uses a Large Language Model to look for patterns in your pet's recent logs and produce a short, plain-language summary ("water intake has been low for four days, consider mentioning at the next vet visit"). The output is clearly labeled inside the app as AI-generated content.
The model is OpenAI GPT-4o-mini, operated by OpenAI, L.L.C. (San Francisco, USA). The API call is made from our server, not directly from your phone. OpenAI processes the data under their API data-usage policies; per those policies, prompts sent through the API are not used to train OpenAI's models.
Only a minimized structured digest of the selected pet's last 30 days, in JSON, containing:
The digest does not contain: your name, your email, your device identifiers, your IP address, photos, your pet's name, the free-text notes attached to individual log entries, or your purchase token.
The model returns the generated insight text and a severity hint. The result is stored in the encrypted Insights table on your device and (for Pro) backed up to our server in encrypted form like every other diary row. It is shown in the AI Insights card on the pet detail screen and on the Health Timeline. It is not used to make any automated decision about you or your pet. It is informational only; you decide what to do with it.
Insights are not a veterinary diagnosis, treatment plan, or substitute for professional veterinary care. Every AI insight card carries a visible disclaimer to this effect. If your pet shows signs of illness or distress, contact a licensed veterinarian immediately.
The following third parties process Tailspot data on our behalf or receive data when a specific feature is in use:
| Recipient | Purpose | Data shared | When |
|---|---|---|---|
| Google LLC (Google Play Billing) | Subscription processing | Purchase token, order id | On Pro purchase and renewal |
| Google LLC (Firebase Cloud Messaging) | Push notification delivery | FCM registration token, notification payload (vet name + pet name + localized message) | On every push (currently: incoming vet notes only) |
| Google LLC (Places API) | Veterinary directory lookup | Coarse device location, search query | Only when the user opens the "Find a vet near me" screen |
| Google LLC (ML Kit on-device text recognition) | Vaccination card OCR | None — runs entirely on-device | When the user photographs a vaccination card |
| OpenAI, L.L.C. | AI Insights and voice-to-log text parsing | Structured digest as described in section 4.3 (AI Insights) or the recognized voice transcript (voice-to-log) | Only when the user explicitly invokes the feature |
| Shared web hosting (Hostinger / Namecheap-class), Europe | Cloud sync ciphertext, vet shared journal snapshots, FCM token registry, audit log | Encrypted diary rows, plaintext vet share snapshots, purchase tokens, FCM tokens | Continuously while Pro is active |
None of these recipients are permitted to use Tailspot data for their own purposes, except as described above and as governed by their own published terms.
Our hosting server is located in Europe. The Google and OpenAI sub-processors are based in the United States and may process data in data centres outside the European Economic Area. We rely on the EU–US Data Privacy Framework and on Standard Contractual Clauses, where applicable, for such transfers. Both Google and OpenAI are certified DPF participants.
tailspot_pro_events). Retained 24 months for
billing-dispute resolution.Tailspot is designed for adult pet owners. We do not knowingly collect data from children under 13 (under 16 in jurisdictions where the digital-consent age is 16). The app is not directed at children. If you believe a child has used Tailspot to create data on our servers, contact us and we will delete it.
Cloud-synced diary data uses AES-256-GCM with per-row random IV and authentication tag. Keys never leave your device. TLS protects every request to our server. The service-account key used to send push notifications is stored outside the public web root with restrictive file permissions. We do not offer a bug-bounty programme yet; vulnerability reports are welcome at the contact address.
We will update this page in place when material changes happen. Substantive changes are flagged inside the app the next time you open it. The "Effective" and "Last updated" dates at the top reflect the most recent revision.
Privacy questions, data requests, or anything you'd like clarified: fenixjzdev@gmail.com.