Skip to main content

Privacy Policy

Last updated: 2026-08-11

This Privacy Policy explains how the uptimepage service ("we", "us") collects and processes personal data. It is intended to satisfy our obligations under the EU General Data Protection Regulation (GDPR) and similar laws.

1. Data Controller

Artem Senenko, Nicosia, Cyprus, is the data controller for personal data processed via the Service. The controller is a natural person; no company is currently registered.

Contact: hello@uptimepage.dev

For data-subject requests: hello@uptimepage.dev (see §10)

We do not have a designated Data Protection Officer as we do not meet the thresholds under GDPR Article 37.

2. What Data We Collect

We collect data in three ways:

You provide:

We generate automatically:

We collect via your browser:

Analytics (public marketing and sign-in pages only): We run self-hosted, cookieless analytics (Umami) on our own EU infrastructure. It records aggregate page views, referrer, browser, operating system, device type, and coarse location (country and region). Visits are grouped by a hash of your IP address and user agent mixed with a secret value that rotates every month, so within one month repeat visits from the same network and browser count as one returning visitor. It sets no cookies, never stores your raw IP, cannot tell us who you are, and cannot follow you to other websites. The data stays on our infrastructure and is never sent to a third party.

On the sign-in page this also records which sign-in method you chose (GitHub, Google, or email link) and whether signing in succeeded, so we can tell how many people who set out to sign in actually got in. Once you are signed in, no page of the product is tracked: there is no analytics on your dashboard, monitors, incidents, or settings.

We do not use third-party analytics services that export your data (no Google Analytics, no Mixpanel, no tracking pixels).

3. Why We Process This Data

DataPurposeLawful basis (GDPR Art. 6)
Email, display name, OAuth identityProvide authenticationContract
Targets, check resultsProvide monitoring serviceContract
Browser flow runs and failure evidenceShow why a monitored journey brokeContract
Heartbeat pings and the output your job sends with themShow when a scheduled job ran and why it failedContract
Sessions, API tokensAuthenticate API requestsContract
Hashed IP, login attemptsDetect security threatsLegitimate interest
Audit logCompliance and accountabilityLegitimate interest
MCP write actionsAccount for changes an AI assistant made on your behalfLegitimate interest
Aggregate analytics (marketing and sign-in pages)Understand site usage and improve content and sign-inLegitimate interest

Browser flow monitors: when a flow monitor you configured fails, we keep what the page showed at that moment — the URL the browser ended on, the page title, its visible text, and anything the page logged to the browser console. Because the flow signs in, that text can come from a page behind your own login. It is stored to explain the failure and for nothing else, it is never put into an alert or notification, and any value the flow typed from a secret variable is removed before it is stored. It is deleted on a shorter clock than the run itself.

Heartbeat monitors: if your job POSTs a body to its ping URL, we keep the first few kilobytes of it as that run's output, so a failure can be read without going back to the machine that ran it. Whatever the job prints is what we store, so do not print secrets to it. It is never put into an alert or notification, and it is deleted on a shorter clock than the ping itself.

MCP connector: when you connect an AI assistant to our MCP server, it reads your monitoring because you asked it to, and every action that would change something is recorded, whether it succeeded, was refused, or you declined it. The record names the tool, identifies what it acted on, and states the outcome, so it can include a monitor's name and address, the tags and group a retune moved it to, and the names of the channels it alerts. A refused action is recorded too, which means a monitor name your assistant proposed can be kept even though you declined it. What you write for customers is not kept here: an incident's public title and description, the updates you post, and any note on acknowledging or resolving are not part of this record. Read-only calls are not recorded at all. We never receive or store your conversation with the assistant, only the tool calls it makes. The client you connect is one you chose and someone else operates, so the answers it asks for reach whoever runs it; that is your instruction to it, not a transfer we make (see §6).

We do not engage in automated decision-making with significant effects on you (no profiling, no scoring).

4. How Long We Keep It

CategoryRetention
Account data (email, OAuth)Until account deletion
Sessions90 days maximum
API tokensUntil you revoke them
Check results (raw per-check detail)30 days
Check result history (aggregated, hourly)13 months
Browser flow runs (which steps ran, and how long each took)30 days
Browser flow failure evidence (page URL, title, visible text, browser console)7 days
Heartbeat pings (when each signal arrived, its exit status, how long the run took)30 days
Output posted with a heartbeat ping7 days
Login attempts180 days
Audit log2 years
MCP write actions (tool, what it acted on, outcome, and the person and token behind it)2 years
Quota events90 days
Server access logs30 days
Application error logs30 days
Aggregate analytics (marketing and sign-in pages)Indefinite (aggregate only; no identifiers that single you out)

Deleted accounts are recoverable for 30 days, after which data is permanently purged.

5. Who We Share It With

We use these third-party processors:

ProcessorPurposeLocationSafeguard
Hetzner Online GmbHHosting and DNSFinland (data centre); Germany (HQ)DPA in place
ResendTransactional emailsUSAStandard Contractual Clauses
GitHubOAuth authenticationUSAStandard Contractual Clauses
GoogleOAuth authenticationUSAStandard Contractual Clauses
Fly.ioProbe infrastructure for non-EU check regionsUSAStandard Contractual Clauses

We do not sell or rent your data. We do not share it for marketing.

We may disclose data:

6. International Transfers

Data is primarily stored in Finland (Hetzner data centre, Helsinki). Resend, GitHub, and Google are based in the United States; transfers to them are protected by Standard Contractual Clauses adopted by the European Commission.

An AI assistant you connect over MCP (see §3) reads your monitoring wherever that assistant runs, which may be outside the EU. You choose that client and its operator, and it retrieves only what it asks for on your instruction, so we do not treat it as a processor acting for us. If that matters to you, the connector is optional and revoking it in Settings stops it.

Monitoring checks can run from probe regions outside the EU. Those probes receive the check configuration they need to run (URL, headers, resolved credentials) and produce technical results (status codes, latencies, error text) that are sent back to our EU infrastructure; long-term storage stays in Finland.

7. Security

Technical measures include:

We will notify affected users without undue delay if we become aware of a personal-data breach affecting your data, and we will notify the competent supervisory authority within 72 hours where required.

8. Your Rights

Under GDPR, you have the right to:

9. Cookies

We use one cookie: _sm_session, which holds your session identifier. This is strictly necessary for the Service to function and does not require consent.

We do not use analytics, advertising, or third-party tracking cookies.

See our Cookie Policy for details.

10. Data Subject Requests

Two channels — use whichever is convenient:

Self-service (recommended):

Email: Send a request to hello@uptimepage.dev. We will:

You can use the email channel if you are locked out of your account, if you are acting on behalf of someone else (e.g., deceased user), or if you have requirements beyond what the self-service tools provide.

11. Children

The Service is not directed to children under 16. We do not knowingly collect data from children under 16. If you become aware that a child has provided us with personal data without parental consent, please contact us so we can delete it.

12. Changes

We may update this Policy. Material changes will be announced via email 30 days in advance.

13. Contact

hello@uptimepage.dev