Privacy Policy

Last updated: 14 October 2026  ·  The same text is in the app at www.stockpiloapp.com/privacy.

Introduction

This Privacy Policy explains how personal data is processed when you use StockPilo, the web application at www.stockpiloapp.com (the "Service").

01

Who we are (controller)

The controller of your personal data is:

Vebify OÜ
Registry code: 17183973 (Estonian Commercial Register)
Address: Aaslina tn 5, Haabersti linnaosa, Tallinn, 13516, Harju maakond, Estonia
Email: privacy@stockpiloapp.com

02

What data we process

2.1 Account data

2.2 Content you create in the Service

2.3 AI usage data

2.4 Payment data

2.5 Technical data

03

Why we process it and on what legal basis

Creating and running your account, signing you in
Data: Account data, session data
Legal basis (GDPR Art. 6(1)): (b) performance of a contract
Providing the Service: watchlist, holdings, notes, alerts, agent, portfolio metrics and briefs
Data: Content you create, derived portfolio data
Legal basis (GDPR Art. 6(1)): (b) contract
Generating AI answers, including answers personalised with your watchlist, notes or agent instruction
Data: AI inputs, relevant content
Legal basis (GDPR Art. 6(1)): (b) contract
Transactional email: verification, password reset, subscription notices
Data: Email, alert content
Legal basis (GDPR Art. 6(1)): (b) contract
Sending push notifications you turned on
Data: Device label, push address
Legal basis (GDPR Art. 6(1)): (a) consent: you grant it in your browser and can withdraw it there or in Settings
Payments, subscriptions, trials
Data: Payment data
Legal basis (GDPR Art. 6(1)): (b) contract
Keeping accounting records
Data: Payment/invoice data
Legal basis (GDPR Art. 6(1)): (c) legal obligation
Preventing abuse and bots on sign-in, password reset and the support forms (support chat, Help Center contact form)
Data: Bot-check signals, IP
Legal basis (GDPR Art. 6(1)): (f) legitimate interest in security
Enforcing daily AI and usage limits, controlling cost
Data: Usage counters, AI usage logs
Legal basis (GDPR Art. 6(1)): (f) legitimate interest
Finding and fixing errors, monitoring AI answer quality
Data: Error reports, server logs, AI outputs and feedback
Legal basis (GDPR Art. 6(1)): (f) legitimate interest
Answering support requests
Data: Support messages
Legal basis (GDPR Art. 6(1)): (b) contract / (f) legitimate interest
Handling legal claims and data-subject requests
Data: As needed
Legal basis (GDPR Art. 6(1)): (c) legal obligation / (f) legitimate interest
04

Who receives your data (processors and other recipients)

We share personal data only with service providers that process it on our behalf, under a data processing agreement. Two exceptions: if you choose Sign in with Google, Google is not our processor but an independent controller of your Google account data (see the Google Sign-In row); and if you turn on push notifications, your browser's push service delivers them (see its row).

Supabase (Supabase Pte. Ltd., Singapore)
What it does: Database, authentication, file storage, backend functions
What it receives: All data listed in section 2
Location: Data stored in the EU (Ireland, AWS eu-west-1). Supabase's own staff and sub-processors may access it from outside the EEA (Singapore, US) under Standard Contractual Clauses
OpenAI (OpenAI Ireland Ltd.)
What it does: Generates AI text
What it receives: See "What OpenAI receives" below. OpenAI keeps API inputs and outputs for up to 30 days for abuse monitoring, unless the law requires longer
Location: Processed in the US under Standard Contractual Clauses
Stripe (Stripe Payments Europe, Limited, Ireland)
What it does: Payments and subscriptions
What it receives: Email, internal user ID, card and billing details you enter at checkout, subscription data
Location: EU; transfers to Stripe, LLC (US) under the EU–U.S. Data Privacy Framework, or Standard Contractual Clauses
Resend (Plus Five Five, Inc., trading as Resend)
What it does: Sends transactional email
What it receives: Your email address and the email content (e.g. verification link, password-reset link, the tickers in an earnings or market-event alert, subscription notices)
Location: US: Resend stores message content, delivery logs and account records in the United States
Sentry (Functional Software, Inc.)
What it does: Error monitoring
What it receives: Error message and stack trace, page path (no query string), browser and OS, IP address, and a pseudonymous identifier derived from your user ID. Emails, user IDs and tokens are scrubbed from the report text before sending; sendDefaultPii is off; no session replay or performance tracing
Location: Error reports stored in the EU (Frankfurt): our Sentry project uses the EU region (ingest.de.sentry.io). Sentry account and organisation data stay in the US
Cloudflare (Cloudflare, Inc., US)
What it does: Hosts and serves the web application (Cloudflare Workers), fetches and caches ticker logos for it (see "Market-data and content sources" below), and runs the Turnstile bot check on sign-in, password reset and the support forms
What it receives: Standard web request data, including your IP address, for every request to the app. For Turnstile also your TLS fingerprint, browser user agent, and the site key and page address the check ran on. Cloudflare states that Turnstile does not read what you type into the form
Location: US / Cloudflare's global edge network. Cloudflare acts as our processor; for Turnstile it also acts as an independent controller, on its legitimate interest, when it uses these signals to improve bot detection (Turnstile privacy addendum, cloudflare.com/turnstile-privacy-policy)
Google Sign-In (Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland)
What it does: Optional sign-in
What it receives: Google authenticates you and sends us your email, name and picture; Google learns that you signed in to StockPilo
Location: Independent controller, not our processor: Google processes your Google account data under its own privacy policy (policies.google.com/privacy), in which Google Ireland Limited is the controller for users in the EEA and Switzerland. We and Google act as independent controllers under the Google Controller-Controller Data Protection Terms, which the Google APIs Terms of Service apply to Sign in with Google. Once we receive your email, name and picture, we are the controller of that copy
Your browser's push service (Google, Apple or Mozilla, whichever your browser uses)
What it does: Delivers push notifications you turned on
What it receives: The push address of your device and the notification, encrypted as the Web Push standard requires
Location: Operated by your browser vendor under its own terms; we do not choose it

What OpenAI receives. Only the text needed to answer a specific request:

We do not send your name or email address to OpenAI. But what you type is sent as written, so please do not include personal information in chat messages, notes or instructions.

Market-data and content sources (no personal data). To show prices, news, and social posts we request data from Financial Modeling Prep, FRED (Federal Reserve Bank of St. Louis), the U.S. EIA, GDELT, Alpha Vantage, Polygon, Reddit, and X and StockTwits (via RapidAPI). These requests are made **from our servers** and contain only tickers or data-series names — for social feeds, the tickers on your watchlist — never your name, email, user ID or IP address. Stock and theme photos come from Pexels and are served from our own storage. Ticker logos are requested by our Cloudflare Worker, not by your browser: your browser asks www.stockpiloapp.com/logo/…, and the Worker fetches the image from Financial Modeling Prep, Parqet or Twelve Data using only the ticker, and keeps a copy at Cloudflare for up to a week. Those three providers receive the ticker and a request from Cloudflare's servers, nothing about you.

Content loaded directly by your browser. A few things are still requested straight from third-party servers, which therefore see your IP address and browser details (and, for the page you are on, a referring address as your browser sends it):

None of these requests carries your account data.

Other recipients. Authorised administrators at Vebify OÜ can see account, subscription and support data and AI usage logs to run the Service. We may disclose data to authorities where the law requires it. We do not sell personal data and do not share it for advertising.

05

International transfers

Some providers process data outside the EEA or may access it from there. The safeguard for each:

Supabase (Supabase Pte. Ltd.)
Where: Data stored in the EU; access from Singapore / US
Safeguard: Standard Contractual Clauses (in Supabase's DPA)
OpenAI (OpenAI Ireland Ltd.)
Where: US
Safeguard: Standard Contractual Clauses
Stripe (Stripe Payments Europe, Limited)
Where: EU; transfers to Stripe, LLC (US)
Safeguard: EU–U.S. Data Privacy Framework (Stripe, LLC is certified), otherwise Standard Contractual Clauses
Resend (Plus Five Five, Inc.)
Where: US
Safeguard: Standard Contractual Clauses (Modules 2 and 3 in Resend's DPA), plus the EU–U.S. Data Privacy Framework (Plus Five Five: EU-US and UK Extension, "Active – re-certification under review")
Sentry (Functional Software, Inc.)
Where: Error reports in the EU (Frankfurt); account data in the US
Safeguard: EU–U.S. Data Privacy Framework (certified, active); Standard Contractual Clauses (Modules 2 and 3) if the Framework no longer applies
Cloudflare (Cloudflare, Inc.): hosting, logo cache and Turnstile
Where: US / global edge
Safeguard: EU–U.S. Data Privacy Framework (Cloudflare, Inc. is certified), and Standard Contractual Clauses (Modules 2 and 3) if the Framework no longer applies (Cloudflare's customer DPA)
Google Sign-In (independent controller)
Where: Google Ireland Limited; Google's own onward transfers
Safeguard: Not a transfer by us: Google processes your Google account data as an independent controller under its own privacy policy and safeguards. Between us and Google, the Google Controller-Controller Data Protection Terms apply, including their Standard Contractual Clauses (Google LLC is also DPF-certified)

You can ask us for a copy of the relevant safeguards (section 13).

06

How long we keep data

Account, profile, watchlist, holdings, notes, agent data, alerts, feedback
Retention: Until you delete your account (section 8), then erased
Backend function logs (edge_fn_invocations)
Retention: Deleted automatically after 30 days; your user ID in them is removed when you delete your account
AI usage logs, AI outputs, agent run logs
Retention: 90 days, then deleted by a daily automatic clean-up
In-app notifications
Retention: 90 days, then deleted by the daily clean-up
Support messages and attachments
Retention: 12 months, then deleted by the daily clean-up
Earlier chat messages (chat_messages)
Retention: Until you delete your account (no new ones are saved)
Payment and invoice records (at Stripe)
Retention: Kept after account deletion for as long as accounting law requires: 7 years from the end of the financial year to which they relate (Estonian Accounting Act)
Error reports (Sentry)
Retention: 90 days (the retention of the plan we use)
Ticker-logo cache at Cloudflare
Retention: Up to 7 days; the images contain no personal data. Cloudflare keeps its own request logs under its terms
Email-verification and password-reset tokens
Retention: Until used or expired; deleted with the account
Deletion receipt (erasure_log)
Retention: A one-way hash of your user ID and the date, kept as proof that we honoured the request — 3 years, then deleted by the daily clean-up
Database backups (Supabase)
Retention: Backups are kept by Supabase for the retention of our plan and expire on their own; an erased account can remain in a backup until it expires
07

Cookies and browser storage

StockPilo does not use advertising or analytics cookies. We use browser storage that is needed to make the Service work:

Security check (Cloudflare Turnstile): the sign-in and password-reset page (/auth), the Help Center contact form and the support chat load Cloudflare's security check. It does not set cookies on our domain. It keeps a temporary value in browser storage on challenges.cloudflare.com, Cloudflare's own domain, to run the check. Most visitors never see it; if Cloudflare is unsure, it shows a "Verify you are human" checkbox. See Cloudflare's Turnstile privacy addendum (https://www.cloudflare.com/turnstile-privacy-policy/).

This marketing site (stockpilo.com) loads fonts from Google Fonts (fonts.googleapis.com, fonts.gstatic.com) and code libraries from cdnjs (cdnjs.cloudflare.com) directly in your browser, so those servers see your IP address and browser details when a page loads.

08

Your rights

Under the GDPR you have the right to:

To exercise a right, email privacy@stockpiloapp.com. We answer within one month. We may need to verify your identity first.

You also have the right to lodge a complaint with a supervisory authority — in Estonia the Andmekaitse Inspektsioon (Estonian Data Protection Inspectorate), www.aki.ee — or with the authority in the EU country where you live or work.

09

Automated decision-making

We do not make decisions based solely on automated processing that produce legal effects concerning you or similarly significantly affect you. AI features produce informational text; they do not decide anything about you, your account or your access to the Service.

10

Children

The Service is intended for people 18 years or older (see our Terms). We do not knowingly collect data from children. If you believe a child has created an account, contact us and we will delete it.

11

Security

Data is encrypted in transit (HTTPS). Access to the database is restricted by row-level security so that each user can only read their own records; only authorised administrators and backend functions have wider access.

12

Changes to this policy

We may update this Privacy Policy. We will show the date of the latest change at the top, and notify you by email or in the app before material changes take effect.

13

Contact

Vebify OÜ, Aaslina tn 5, Haabersti linnaosa, Tallinn, 13516, Harju maakond, Estonia
Email: privacy@stockpiloapp.com