Privacy Policy
Last updated October 26, 2026
This policy explains what Circled Hoops collects when you use it on the web or on iPhone, why, who helps us run it, how long we keep it, and what you can do about it. Circled Hoops is run by Purplelink LLC, a Georgia limited liability company, which is responsible for your data (the “controller” in EU terms).
The short version
- We collect what it takes to run your account and your leagues, and to keep them secure.
- We don’t sell your personal information. We don’t use it for ads on the web.
- Ads in the iPhone app are personalized only if you allow tracking when iOS asks.
- Nothing is sold in Circled Hoops, so we never see a card number. Sponsored links and Buy Me a Coffee tips are handled on those sites.
- We never hold league money, so we don’t collect bank details for dues.
- You can download and delete your data yourself under Account, and correct it there too. Email [email protected] for anything else.
What we collect and why
| What | Details | Why |
|---|---|---|
| Account | Your name, email address, whether you verified it, and your password (stored only as a one-way hash). | To create your account, sign you in, and email you about it. |
| Sign-ins and devices | For each signed-in device: a session ID, the browser and device type (from its user agent), IP address, an approximate location when available (city, region or country derived from the IP address, never GPS), how you signed in, and when. | To keep you signed in, show you where you’re signed in so you can sign out other devices, and spot unusual sign-ins. |
| Security log | Sign-ins, failed attempts, two-factor checks, lockouts and sign-outs, with IP address and user agent. Failed sign-ins and lockouts record the email address that was tried. | To protect accounts from break-ins and abuse, and to investigate problems. |
| Two-factor and passkeys | If you set them up: your authenticator secret and backup codes (encrypted), and for passkeys the public key, a name, the device type and a usage counter. Your fingerprint, face or PIN never leave your device. | To let you sign in more securely. |
| League activity | Leagues you create or join, team names, rosters, lineups, game picks, auto-subs, trades, trade votes, the trade block, waiver claims, draft picks, bids and queues, and the history of past seasons. Commissioner actions are logged. | This is the game. It’s shared with the members of your league. |
| Chat | Messages you post in league chat, @mentions, emoji reactions, in-app notifications (mentions, reminders, nudges), reports you make about a message, and the people you block. | To run league chat, tell you when you’re mentioned, and handle abuse. |
| Dues records | Only if a commissioner turns on dues: the buy-in amount, due date and payout split; each team’s status (unpaid, “I paid”, paid, waived), payment method and note; reminders and nudges sent. The commissioner may add their Venmo, Cash App or PayPal username or Zelle contact so members can pay them. | To help a league track who has paid. We never move or hold the money. |
| Ad-free subscription | Only if you subscribe in the iPhone app: the App Store’s transaction id, the product, whether it was a test (sandbox) purchase, when the current month ends, whether it renews, and any refund date. Apple handles the payment; we never see your card or Apple ID details. | To turn off ads for your account while the subscription is active. |
| Waitlist | If sign-ups are paused and you join the waitlist: your email address and a short label for where you came from (for example “reddit”). | To invite you when there’s room. |
| Push notifications | If you allow them: a device token (iPhone) or a browser push subscription, and which notifications you want. | To send the notifications you asked for. |
| Error reports | When the app crashes or a request fails: technical details such as the error, the page, browser or OS version and app version. We set error reporting not to include your email, passwords or tokens. | To find and fix bugs. |
| Messages to us | What you send when you email us, and our replies. | To answer you and handle reports. |
Basic server logs (IP address, the page or API route requested, time and response) are kept briefly by our hosting and network providers to run and protect the service.
What we don’t collect
- Payment card or bank account numbers. Nothing is sold in the app.
- Who clicks a sponsored link or leaves a tip. Sponsors and Buy Me a Coffee see that on their own sites.
- Precise location, contacts, photos, or your fingerprint or face.
- Your NBA, social media or sportsbook accounts.
- Analytics trackers on the web.
NBA stats come from a data provider (balldontlie). We fetch stats from it; we don’t send it anything about you.
Legal bases (EU and UK)
If you are in the European Economic Area or the United Kingdom, we rely on these legal bases:
- Contract: to provide your account, leagues, chat and the emails the service needs to send.
- Legitimate interests: to keep accounts and the service secure, prevent abuse, fix bugs, and keep league records consistent for other members. We balance these against your rights, and you can object (see your rights).
- Consent: for push notifications and for personalized ads on iPhone. You can withdraw it any time in your device settings.
- Legal obligation: to respond to lawful requests.
Service providers
| Provider | What they do | What they get |
|---|---|---|
| Hosting (Render) | Runs our web app, API and database in the United States, with backups. | Everything stored in Circled Hoops, encrypted in transit. |
| Network and security (Cloudflare) | Delivers pages faster and blocks attacks. | IP address, device and browser details, and the pages you request. |
| Email delivery | Sends sign-up, sign-in, password and email-change messages, and league reminders. | Your email address and the message. |
| Apple | Delivers push notifications to iPhone, App Store distribution, and sells the Ad-free subscription. | A device token and the notification text. For Ad-free, Apple tells us about each purchase, renewal and refund. |
| Browser push services | Deliver web push notifications (run by your browser’s maker, such as Apple, Google or Mozilla). | A push subscription and the notification, encrypted. |
| Google AdMob | Shows one banner ad on some screens of the iPhone app. | Device and app information, IP address, and, only if you allow tracking, your device’s advertising identifier. |
| Google AdSense | Shows one non-personalized ad on a few web pages: the home page, How to play, Standings and History. | Device and browser information, IP address, the page address, and Google’s own advertising cookies. Not your email, your leagues or what you type. |
| Error monitoring (Sentry) | Collects crash and error reports so we can fix what broke. | The technical details listed above and the page address without its query, never your email, passwords, cookies or what you typed. Set not to store IP addresses. |
When we add or change a provider that gets personal data, we’ll update this list.
Push notifications
We send push notifications only if you allow them when your phone or browser asks. They cover things like lineup and pick reminders, trades and @mentions. You can turn them off any time in your device or browser settings. When you sign out or turn them off, we stop using that device’s token.
Ads and tracking on iPhone
On the web, four pages (the home page, How to play, Standings and History) show one ad from Google AdSense, and a few links are marked Sponsored, which load nothing from the sponsor until you click. The web ads are non-personalized: Google doesn’t choose them from your browsing or a profile of you, though it still uses cookies, device information and your IP address to deliver them, limit how often you see them and prevent fraud. Ad blockers are fine: nothing on the site breaks or asks you to turn one off. The iPhone app shows no web ads; it shows one banner ad on some screens, through Google AdMob. Ad-free subscribers see none of these, and the app doesn’t ask to track them.
- Before any personalized ad, iOS asks whether Circled Hoops may track you across other companies’ apps and websites (App Tracking Transparency). If you say no, ads are not personalized and your advertising identifier isn’t shared.
- If you say yes, Google may use your advertising identifier and app activity to choose ads and measure them. You can change your mind any time in iOS Settings → Privacy & Security → Tracking.
- Even non-personalized ads use some device information and your IP address to deliver ads, limit how often you see them, and prevent fraud.
- We never give advertisers your name, email or league data.
How long we keep it
| Data | How long | Notes |
|---|---|---|
| Account | Until you delete your account. | After deletion, your name is removed from league records, which show “Former manager”. |
| Sessions | A device stays signed in for up to 7 days without use and 30 days at most. | Expired sessions are deleted daily. |
| Email links | Verification and reset links expire after 1 hour. | Deleted daily after they expire. |
| Security log | 1 year, then deleted. | Kept after account deletion, because it protects other users and the service. |
| League records | As long as the league exists. | Results, trades, drafts and history belong to the whole league, so they stay when you leave a league or delete your account. |
| Chat | As long as the league exists. | A deleted message (by you, or hidden by a commissioner after a report) is hidden from everyone at once. Its text, and any copy in the league’s moderation log, is erased 30 days later, which leaves time to handle abuse reports. |
| Notifications | A read notification is deleted 90 days after it was sent. Unread ones stay. | Deleted with your account. |
| Waitlist | 30 days after we send your invite. | Then deleted. |
| Error reports | Up to 90 days. | Deleted automatically by the provider. |
| Backups | Up to 21 days. | Deleted data can remain in backups until they roll over. |
Your rights and choices
Wherever you live, you can ask us to:
- See the personal data we have about you, and get a copy in a common format (export).
- Correct it. You can change your name and email under Account yourself.
- Delete your account and personal data.
- Object to or restrict some uses, and withdraw consent (for push and personalized ads, in your device settings).
How to ask
Email [email protected] from the address on your account, so we know it’s you. We’ll answer within 30 days (45 days where U.S. state law allows), and we won’t charge you or treat you differently for asking. If you use an authorized agent, we may ask them for proof.
Deleting your account
Go to Account → Delete account, in the app or on the web. You’ll confirm it’s you, and if you run a league you pick who takes it over (the longest-tenured manager is suggested). A league with nobody else in it is deleted. Deletion happens at once, and we email you to confirm. It removes your profile, email, password, sign-ins, two-factor settings, passkeys, push devices, notifications, reactions, blocks and any waitlist entry, and clears your account ID from league logs and dues records. Your teams stay in their leagues, played by a bot, until someone new joins and takes one over, and shared league records (results, trades, drafts, history) stay with the league. Messages you posted stay in league chat as “Former manager”; delete any you want gone first.
If you can’t use the app, email [email protected] from the address on your account and we’ll delete it within 30 days.
Exporting
Account → Download my data gives you a copy of everything tied to your account as a JSON file. Any member can also export league history (JSON for everything, or CSV one table at a time) from History.
U.S. state privacy laws
Several U.S. states, including California, Colorado, Connecticut, Virginia, Utah, Texas and Oregon, give residents specific privacy rights. Some of these laws may not apply to a business our size yet, but we give everyone the same rights anyway. In those laws’ terms:
- Categories we collect: identifiers (name, email, IP address, device IDs), account credentials, activity in our app, approximate location, and the content of your league chat. The sections above give the purposes and providers.
- Sensitive data: account credentials only, used just to sign you in. We don’t use it to infer anything about you.
- We don’t sell personal information and haven’t in the past 12 months.
- Targeted advertising (“sharing”): only in the iPhone app, and only if you allow tracking. You opt out by choosing “Ask App Not to Track” or turning tracking off in iOS Settings. We don’t knowingly do this for anyone under 16.
- Global Privacy Control: we have no tracking on the web, so there’s nothing for a GPC signal to switch off there.
- Appeals: if we turn down a request, reply to our answer to appeal. If you’re still unhappy, you can contact your state attorney general.
Visitors from the EU and UK
- You have the rights listed above, plus the right to data portability and to object to processing based on legitimate interests.
- We store and process data in the United States. When we transfer personal data from the EEA or UK, we rely on our providers’ safeguards, such as the EU-U.S. Data Privacy Framework and the European Commission’s Standard Contractual Clauses.
- You can complain to your local data protection authority. We’d appreciate the chance to fix it first.
Children
Circled Hoops is not for anyone under 16, and we don’t knowingly collect data from children under 16. If you believe a child has an account, email [email protected] and we’ll delete it.
Security
Passwords are stored as one-way hashes. Authenticator secrets and backup codes are encrypted. Sign-in cookies are secure and hidden from page scripts, every connection uses HTTPS, the database sits on a private network, and repeated failed sign-ins lock the account for a while. You can add two-factor authentication or a passkey and sign out other devices under Account. No system is perfectly secure; if a breach affects your data, we’ll tell you as the law requires.
Changes
We’ll update this policy as Circled Hoops changes, and change the date at the top. If a change matters, we’ll tell you by email or in the app before it takes effect. See also our Terms of Service.
Contact
Purplelink LLC, Georgia, USA. Email: [email protected].