Last updated: 2026-10-11 Effective: 2026-10-11
This policy explains what Foursomes collects, why, how long we keep it, and what you can do about it. It covers the Foursomes iPhone and Apple Watch app, the Foursomes Android app (app.foursomes.mobile), the Foursomes web app, and the website at foursomes.app.
Companion documents: Terms of Service · End User License Agreement · Community Guidelines · Acceptable Use Policy
> What changed on 2026-10-11. No new data is collected; this update describes what the apps already do. Friend matching sends your contacts' phone numbers as one-way hashes, compared and never stored (section 2.8). We keep the store's purchase record when you buy the Coach question pack (section 2.8, "Purchases"). Every Android permission and what it sends is now listed (section 2.8), and the Google Play Data Safety summary matches (section 11).
Foursomes is a golf GPS and friends-league app operated by Foursomes LLC, a company established in the United States, at 8205 Dickinson Dr Apt 107, Louisville, KY 40241.
Contact: 4oursomes@foursomes.app Transactional mail is sent from noreply@foursomes.app.
Foursomes is offered in the United States. We do not market to people in the EU or the UK, and we have not appointed an EU/UK representative or a Data Protection Officer.
| Data | Why | Notes |
|---|---|---|
| Email address | Log in, account recovery, transactional mail | Required. Unique per account. |
| Display name | Shown to people you play with. Unless your account is private, also shown to the poster's friends on the game result line of a round you played in. A golfer who is a minor, blocked or limited is never named there. | Required. |
| Handle (@name) | Lets people who already know you find you. Any signed-in member who enters your exact handle can find your account, unless one of you has blocked the other. Your handle is shown next to your name to other members, for example in search results, friend lists and the card that opens when someone taps your name. | A new account is given one automatically when you confirm you are 17 or older, at sign-up or when you first answer the age question: your first name plus the first letter of your last name (Ana Gomez becomes "anag"), with a number added if that is taken. It is never made from your email address. You can change or remove it, except on a minor's account. A minor's account is never given one automatically and is never found by a handle search, and any handle it still holds is never shown to other members. |
| Share link | A personal link you can send to people you know so they can add you as a friend. | The app creates it the first time it loads your find-friends details. Anyone who has the link can see your first name, your profile colour and your handle (if you have one) without signing in, and a signed-in member can use it to send you a friend request. A minor's link shows neither their first name nor their handle. It never shows your full name or your email address. You can replace the link, and the old one then stops working. Codes you share also show a first name without signing in: a friend, round or league invite code shows the first name of the member who made it, unless they are a minor, and the code of a crew with no name of its own shows the first name of one of its owners ("Ana's crew"), only if that owner has confirmed they are 17 or older. A first name that is really the part of an email address before the @ (for example, from an account that signed in with Apple, Google or an email link without giving a name) is never shown by the link or by a code. |
| Password | Log in | Stored only as a one-way hash. We never store your password. |
| Sign-in provider identifier | Log in via a third-party provider, where enabled | We store the provider name and its subject identifier, not your provider password. |
| Profile colour, starting handicap number | Personalisation and scoring | Your handicap number is a self-entered starting point, not an official rating from any golf association. |
| Profile photo (optional) | Personalisation | Stored as a small image, capped at 32 KB. |
| Age confirmation | Enforce our minimum age | See section 7. We do not ask for or store your date of birth. |
Rounds, hole-by-hole scores, courses played, in-progress rounds, playing groups and crews, roster entries, open games you post or claim, and an optional round photo (capped at 32 KB).
When a round you post records the games you played, your friends can see a game result line naming the people you played with (names and results only, never their hole scores).
Friend relationships, reactions, replies, direct messages, group message threads and their membership, invitations you send, and notifications generated for you.
Direct and group messages are stored on our servers in a readable form. They are not end-to-end encrypted. We do not read them routinely, but we can access them when responding to a report of abuse, complying with law, or investigating a security incident.
This is the part people care most about, so it is stated precisely.
ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION. Its other permissions, each asked for only when you use the feature, are listed in section 2.8.An opaque session token (delivered as the gg_session cookie or an Authorization: Bearer header), your IP address as seen by our servers and hosting provider, request logs, rate-limiting counters, and a push notification token if you enable notifications.
We do not collect your date of birth, precise location history, the names or other details in your contact list, payment card details, biometric data, health data, advertising identifiers, or precise device fingerprints. We do not operate advertising trackers or embed advertising SDKs.
The Apple Watch app can save a golf workout to Apple Health (HealthKit) and read the active energy of that workout to show it on your wrist. That data stays on your devices and in Apple Health: we do not receive it, store it on our servers, use it for advertising, or share it with anyone.
Each is asked for when you first use the feature, and the app works without it.
| Permission | Used for | What leaves your device |
|---|---|---|
Contacts (READ_CONTACTS) | Finding friends who are already on Foursomes | Only the phone numbers, hashed (SHA-256) on your device. Names and other contact details never leave it. We compare the hashes against members who chose to be findable and do not store them. |
Microphone (RECORD_AUDIO) | Asking the Coach a question by voice | Nothing from us. Android's own speech recognizer turns your voice into text (on the device where it can); only the resulting text is sent, like a typed question. |
Calendar (READ_CALENDAR) | Showing golf tee times from your calendar on the Home screen | Nothing. Calendar events are read on the device and never sent to us. |
Health Connect (WRITE_EXERCISE) | Saving a finished round to Health Connect as a golf session, if you turn this on in Settings | Nothing. The session is written on the device; we do not read health data or receive it. |
Notifications (POST_NOTIFICATIONS) | Round, friend and league notifications | A push token, see section 2.6. |
| Billing (Google Play) | Buying the Coach question pack | The purchase record, see "Purchases" below. |
Purchases. When you buy the Coach question pack (on iPhone through the App Store, on Android through Google Play), we keep a record of it linked to your account: the store's order or transaction ID and the questions it added, so we can add them once and take them back if the purchase is refunded. The store takes the payment; we never see your card details.
To run the product (authentication, scoring, maps and distances, social features, notifications); to keep it working (diagnostics, error rates, performance); to keep it safe (rate limiting, abuse and integrity signals, responding to reports); to communicate with you about your account; and to comply with law.
We do not sell your personal information, and we do not share it for cross-context behavioural advertising. We do not use your data to train machine-learning models.
Legal bases (where the GDPR or a similar law applies): performance of our contract with you (running the service); legitimate interests (security, abuse prevention, product improvement); consent (notifications, optional analytics where consent is required); and legal obligation.
We use the following service providers. Each processes data on our instructions.
| Provider | What it handles |
|---|---|
| Railway | Application hosting and the managed Postgres database |
| Railway object storage (S3-compatible bucket) | Course data bundles |
| Resend | Transactional email (verification, password reset, invitations) |
Expo push service (exp.host) | Delivery of push notifications to the iPhone app, if you enable them |
| Google Firebase Cloud Messaging | Delivery of push notifications to the Android app, if you enable them |
| Sentry (optional) | Error reports, after personal data is scrubbed |
| Apple | App Store distribution, and delivery of push notifications to iPhone (APNs), if you enable them |
| Google Play | Android app distribution, and billing for in-app purchases |
Map tiles. We do not host the map imagery ourselves. In the iPhone and Android apps, aerial imagery is requested from the US Geological Survey National Map and, when you zoom in on a hole, from Esri World Imagery; terrain shading is requested from the public AWS Terrain Tiles dataset. The web app requests its basemap from the public OpenStreetMap tile service. When your map loads, the service involved receives your IP address and the map area you are viewing, under its own privacy terms. Those requests carry no account information.
Weather. Plays-like wind is fetched from the US National Weather Service API using the course location, not your personal location.
We also disclose personal information when compelled by valid legal process, to protect the rights and safety of our users or the public, or in connection with a merger or acquisition — in which case we will say so before your data moves.
International transfers. Our infrastructure is operated by US-based providers and data is processed in the United States. If you use Foursomes from outside the US, your data is transferred there.
| Category | Retention |
|---|---|
| Account details, rounds, scores, social content | Until you delete your account, or you delete the individual item |
| Login sessions | 30 days maximum per session; expired sessions purged after 90 days |
| Event telemetry | 90 days in active storage, then archived and removed from the live store |
| Interaction records | 90 days |
| Error reports | Per the retention of the error-reporting service in use |
Automated purges are logged internally. The purge job never deletes accounts, active rounds or accepted friendships — full account erasure happens only through the deletion path in section 6.
You can exercise these yourself, in the product, without emailing anyone:
GET /dsr/export returns your personal data (rate-limited to 5 requests per hour).POST /dsr/delete with confirm: "DELETE". Deletion cascades across your account records — rounds, messages, friendships, ledger entries, consents, push tokens and sessions. Some entries retain a de-identified reference where another user's record depends on them (for example, a message you sent to someone else's inbox, or telemetry rows whose account link is severed rather than deleted).Depending on where you live you may also have the right to know what we collect, to opt out of sale or sharing (we do neither), to non-discrimination for exercising your rights, and to appeal a refusal. To make any request that you cannot complete in the app, email 4oursomes@foursomes.app. We do not require an account to make a privacy request, but we may need to verify that the request is yours.
We respond to privacy requests within 45 days.
You must be at least 17 to create a Foursomes account. We ask you to confirm you meet the minimum age; if you do not, account creation is refused.
We record only that you confirmed and which version of the gate you saw. We never ask for or store your date of birth.
Foursomes is not directed at children, and we do not knowingly collect personal information from anyone under 17. If you believe a child has created an account, email 4oursomes@foursomes.app and we will remove it.
What we actually do: passwords are stored only as salted one-way hashes; database connections require TLS; sessions use opaque server-side tokens with a 30-day maximum age and can be revoked; sensitive endpoints (data export, deletion, ledger writes, avatar upload) are rate-limited per account; error reports are scrubbed of personal data before storage; aggregate analytics apply a k-anonymity threshold; and secrets are held in environment configuration, never in our source code.
No service can promise perfect security, and we do not. Direct and group messages are stored in readable form and are not end-to-end encrypted.
To report a vulnerability, see our Acceptable Use Policy and foursomes.app/.well-known/security.txt.
We use a single essential cookie, gg_session, to keep you signed in. We do not use advertising or cross-site tracking cookies.
The apps store data locally on your device so they work offline: your rounds, cached course bundles and map tiles, and your preferences. Clearing app storage or uninstalling removes it.
Our course data combines information from public sources with our own work.
Every geometry record in our system carries its source and licence. See the Terms of Service for what you may do with this data.
Provided so the Play Console declaration matches this policy exactly. "Shared" follows Google's definition: service providers that process data on our behalf (listed in section 4) are not counted as sharing.
| Data type | Collected | Shared | Required | Purpose | Ephemeral |
|---|---|---|---|---|---|
| Email address | Yes | No | Required | Account management | No |
| Name | Yes | No | Required | Account management, app functionality | No |
| User IDs (account ID, handle) | Yes | No | Required | Account management, app functionality | No |
| Photos (avatar, round photo) | Yes | No | Optional | App functionality | No |
| Approximate location | Yes | No | Optional | App functionality (matchmaking area) | No |
| Precise location | Yes | No | Optional | App functionality (on-course distances) | Yes — processed on device, not stored |
| Messages (DMs, group threads) | Yes | No | Optional | App functionality | No |
| Other user-generated content (rounds, scores, replies) | Yes | No | Optional | App functionality | No |
| Contacts (hashed phone numbers only) | Yes | No | Optional | App functionality (finding friends) | Yes — matched, not stored |
| App interactions / analytics | Yes | No | Optional | Analytics | No |
| Crash logs and diagnostics | Yes | No (error-reporting service provider, if enabled) | Optional | Analytics (diagnostics) | No |
| Device push token | Yes | No (push delivery service provider) | Optional | App functionality | No |
| Purchase history (Coach question pack) | Yes | No | Optional | App functionality | No |
Security practices to declare: data encrypted in transit; user can request deletion; committed to the Play Families policy where applicable.
We will update this policy as the product changes. Material changes will be announced in the app or by email before they take effect, and the "last updated" date above will change. Each update is summarised in a dated "What changed" note at the top of this policy.
4oursomes@foursomes.app