StreamerStats

Privacy Policy

Effective Date: March 8, 2026

Last Updated: October 30, 2026

StreamerStats ("we," "us," or "our") is committed to protecting your privacy. This Privacy Policy describes how we collect, use, disclose, and safeguard your information when you visit our website https://streamerstats.com (the "Website"). Please read this Privacy Policy carefully. If you do not agree with the terms of this Privacy Policy, please do not access the Website.

1. Information We Collect

1A. Account Information

  • Registration data: Email address, hashed password, and display name when you create an account.
  • OAuth connections: If you link your Twitch or Kick account, we receive and store your platform user ID, username, and OAuth tokens.

1B. Streaming & Chat Data

We collect publicly available data from the Twitch and Kick platforms, including:

  • Stream metadata: Stream titles, categories, viewer counts, start/end times, and broadcast settings.
  • Chat messages: Messages sent in public chat channels on Twitch and Kick. These are publicly visible on the respective platforms.
  • Engagement events: Subscriptions, gift subscriptions, followers, raids, bits (Twitch), kicks (Kick), and host events.
  • Category statistics: Viewer counts, active channels, and rankings per content category.

Verified channel owners can opt out of having their chat data displayed via Settings > Privacy Controls. Individuals may also request that their own chat activity be hidden from search and profile pages (see Section 10).

1C. Device & Browser Information

  • Network: IP address and connection type. From your IP address we derive your approximate location (country, region, city, and approximate coordinates) and the network it belongs to (its operator and autonomous system number), and we classify the network, for example as a data center, hosting provider, VPN, proxy, or Tor exit. If your browser's user agent says it is a crawler or fetcher of Google, Bing, or Apple, we also check whether your IP address belongs to that company, using the address ranges it publishes or the DNS name of your IP address, and record the result in our security log. For the automatic refusal and the slowing of requests described in Section 4, we also check whether your IP address is in the address lists DuckDuckGo, OpenAI, and Perplexity publish for their crawlers and fetchers, among the addresses Google publishes as its own (less those of its cloud customers), or among Google's crawler addresses; that result is not recorded, except that a request the device check in Section 4 could refuse, made while one of those lists could not be loaded, is marked so in our security log. To group signed-in accounts for the reading limits described in Section 4, we use your IP address (for IPv6 its /64) on mobile carrier, VPN, proxy, relay and Tor networks, or when we cannot tell the network's kind, and otherwise its block of 256 IPv4 addresses or its IPv6 /48, together with the data center, VPN or proxy provider it belongs to; for this we also check whether your IP address is among the addresses Apple publishes for iCloud Private Relay.
  • Browser/OS: User agent, browser type and version, operating system, and, if your browser sends them with its requests, its client hints: the list of its brands and versions, whether it is a mobile browser, and its platform (the Sec-CH-UA, Sec-CH-UA-Mobile, and Sec-CH-UA-Platform headers). The client hints may be recorded with each request in our security log.
  • Hardware: Screen resolution, color depth, language, timezone, CPU core count, device memory, and GPU information via WebGL.

IP geolocation by DB-IP (the DB-IP City Lite database, licensed under CC BY 4.0).

1D. TLS & Network Fingerprints

When your browser connects to our security server (verify.streamerstats.com), which receives our Website's requests for data, we read information from the connection itself:

  • JA3 and JA4 fingerprints: Codes derived from your browser's TLS ClientHello message, including its supported cipher suites, extensions, and elliptic curves.
  • TLS metadata: TLS version, selected cipher suite, Server Name Indication (SNI), the negotiated protocol (HTTP/1.1, HTTP/2, or HTTP/3), and, for HTTP/3, the QUIC version.
  • HTTP/2 settings: For HTTP/2 connections, a code derived from the connection settings your browser sends when it opens the connection (its settings, its flow-control window and any stream priorities) and from the order in which its first request gives the method, scheme, host and path.
  • TCP connection details: For connections over TCP, the window size, maximum segment size, and time-to-live values our server reads for the connection. We also read the first packet your device sends to open the connection (or, if you connect through a proxy, the one the proxy sends): its time-to-live, window size, maximum segment size, window scale, and the order of its TCP options, from which we derive the type of operating system that sent it; and how long one round trip takes while the connection is set up, measured once for the TCP connection and once for the TLS handshake.

The JA3 and JA4 fingerprints, the HTTP/2 code, the negotiated protocol, the QUIC version, and the TCP values our server reads for the connection are stored with each request in our security log. The details of the opening packet, the type of operating system derived from it, and the two round-trip times may also be recorded there. None of these opening-packet details, round-trip times, or client hints (see 1C) is used to refuse, slow, or score a request. JA3 fingerprints are checked against fingerprints known to belong to automation tools, and the JA4 fingerprint of each proof-of-work challenge is compared with that of the request that uses it. The JA4 fingerprint and the HTTP/2 code are also compared with the browser your browser's user agent names, in the device check described in 1E and Section 4. These fingerprints do not identify you personally but can distinguish your browser configuration from others. Until the results of the browser checks in 1E have reached us, or when a request carries too few of them, our security system identifies your browser from its connection: by its JA4 fingerprint together with your browser's name and major version and its language preference. For each request for a signing key (see Section 3), and for requests that reach us without these connection details, it uses your browser's name and major version together with your IP address instead. These connection-based identifiers are also kept in our security records, together with any block placed on them (see Section 7).

1E. Client-Side Fingerprints

On every page of our Website, a security script examines your browser and device. When the page requests data from our servers, the script sends the results to our security system with each proof-of-work challenge (see Section 4). Where noted below, a result is sent as a short code (a hash) computed in your browser instead of the raw values; the other results are sent as your browser reports them. The script collects:

  • Canvas: It draws a small hidden image of text and shapes and computes a code from the result. Small differences in how devices draw graphics make the code device-specific.
  • Audio: It passes a silent test tone through your browser's audio processing and computes a code from the output, which varies with hardware and software. Nothing is played aloud, and your microphone is not used.
  • Fonts: It measures text to tell which of 15 common fonts are installed, and computes a code from the list.
  • Graphics (WebGL): The vendor and model of your graphics hardware as your browser reports them, and codes computed from the graphics features and limits your browser supports.
  • Media formats: Which of 20 audio and video formats your browser can play (a code).
  • Text-to-speech voices: The names and languages of the speech voices available on your device (a code).
  • Browser engine and regional settings: The results of a few mathematical functions, which differ between browser engines, and your browser's language, sorting, calendar, number, and time-zone formatting settings (codes).
  • Other browser and device properties, sent as your browser reports them: the screen, language, timezone, processor, and memory details listed in 1C, and also the platform, number of touch points, screen pixel ratio, whether cookies are enabled, your Do Not Track setting, the storage space your browser offers websites, the memory limit for scripts (Chrome-based browsers only), whether a built-in PDF viewer is present, and your connection's estimated type and speed.
  • Device clock: The time your device's clock shows when the page asks for a challenge and when it signs a request. We compare it with our own clock and record the difference in our security log. The difference found when the page asks for a challenge is kept with that challenge, and a request signed for the challenge is refused if the difference has changed by more than 30 seconds by the time the request reaches us; for a crawler of Google, Bing, or Apple whose IP address is in the address ranges that company publishes (see 1C), a clock that has lost up to 2 minutes against ours is still accepted. A signed request with no such difference to compare (for example, because its challenge is no longer on record) is refused if its time is more than 2 minutes behind ours or more than 10 seconds ahead. A challenge request whose time differs from ours by more than 5 seconds gets a harder puzzle.
  • Automation checks: Whether your browser reports that it is being controlled by automation software (the "webdriver" flag), and the result of BotD, an open-source library from FingerprintJS that runs in your browser and looks for signs of automation tools. Only BotD's result (whether it detected a bot and, if so, which kind) is sent, with each of the page's requests for data. A request whose BotD result names an automation tool, or that carries no BotD result, can be refused when your IP address belongs to a data center network (see Section 4).

We combine several of these results (the canvas, graphics, screen, language, regional-settings, speech-voice, font, and media-format results, together with your browser's name and major version, your timezone, and your approximate number of processor cores) into a device identifier used for security. With each request for a challenge, the script also sends a second code (a hash) that it computes from your browser's full user agent, language, platform, number of processor cores, screen size, color depth, and timezone; we use it to look up our security record for your browser and to check it against our blocklist. We also check the results for inconsistencies typical of automated browsers, for example a device that reports a phone but no touch screen, or an operating system different from the one your browser's user agent names. Our device check also asks whether the device, graphics, platform and connection your browser reports are consistent with each other and with the browser it names: a browser that names a phone while its graphics are drawn in software, for example, or one that names one operating system while its graphics or its platform are another's. What it finds on a request from a data center or hosting network is noted in our security log; on any other network only a combination no person's browser produces is noted, besides a request whose challenge carried none of the results above but the device clock (see Section 4); and only such a combination, on a request from a data center or hosting network, can be refused (see Section 4).

The results are stored with each request in our security log, whose entries expire after 90 days, and are used only for security and anti-bot protection. If you are signed in, the log's entries for the requests our security system lets through, for those a reading limit holds or asks to wait (see Section 4), and for those it refuses as automated browsers (see Section 4), also record your account's ID. For requests for chat messages, chat logs, chatters, suggestions and crypto addresses made while you are signed in, the log also records how many rows were returned; for those, except suggestions and crypto addresses, and for stream pages, when a reading limit slowed the request, it also records which limit and whether it was your account's or one shared by a network, browser or provider, and, for a shared one, a keyed-hash code standing for that network, browser or provider, never its IP address or cookie (see Section 4). Requests our security system flags as unusual are also recorded, with your IP address, the identifier it uses for your browser, the security session the request belongs to (see 1F; while you are signed in, it names your account), and the details that led to the flag, in a record whose entries expire after 180 days. If our security system fails while handling one of your requests, it also keeps a record of that request, with your IP address, the address requested, the identifier it uses for your browser and, if you are signed in, your account's ID. The device identifier is also kept in our security records, together with any block placed on it, and so is a summary of the activity of each identifier our security log records for your browser, such as when it was first and last seen and how many requests it made (see Section 7). The second code is kept with the challenge it was sent with, for up to 2 minutes, and is not added to our security records; the records earlier versions of our security system made of it are kept there, together with any block placed on them.

1F. Behavioral Data

  • Request timing: Timestamps and intervals between your API requests.
  • API velocity: The frequency and rate of requests to our API endpoints.

We group your requests into a security session. While you are signed in, the session is tied to your account and records the identifier our security system used for your browser when the session began; otherwise it is tied to the identifier our security system uses for your browser (see 1D and 1E) together with your IP address. The session keeps the times of your most recent 100 requests and measures derived from them, such as the average time between them, and is kept in our security records (see Section 7).

This data is analyzed in real time to distinguish human visitors from automated bots. It is not used for advertising or user profiling beyond security purposes.

1G. Usage Data

  • Pages visited and API endpoints accessed.
  • HTTP methods, response status codes, and request duration.
  • Session duration and referral source.

Google Analytics also measures how you use our Website: the pages you visit, how you arrived, and interactions such as scrolling, clicks on links to other websites, searches on our Website, the filters and time ranges you choose, and account actions such as signing up or signing in, without your email address or name (see Sections 3 and 6).

2. How We Use Your Information

  • Account management: To create, maintain, and authenticate your user account.
  • Service delivery: To provide streaming analytics, leaderboards, channel profiles, category statistics, and search functionality.
  • Security and anti-bot protection: To detect and prevent automated abuse, bot traffic, and fraudulent activity using the fingerprinting, behavioral analysis, and challenge systems described in this policy.
  • Analytics and improvement: To analyze usage patterns and improve our Website's performance and reliability.
  • Error monitoring: To detect, diagnose, and fix software errors using session recordings and error reports.
  • Advertising: We may display advertisements on the Website and use advertising services, including Google's, to deliver and measure them, to build audiences, and, where permitted, to show you ads relevant to your interests (see Sections 3 and 6).
  • Transactional communication: To send email verification, password reset, account deletion confirmation, and account security notifications. We do not send marketing emails.

3. Cookies and Local Storage

We use the following cookies and browser storage:

  • Authentication session cookie: Maintains your login session. Essential for account functionality.
  • Device identity cookie (__Secure-ss-did): Strictly necessary (security / fraud prevention). Purpose: recognise your browser to protect the service against automated abuse. Duration: 180 days. Not used for advertising, analytics, or personalisation. If you sign in, we also keep a record of which accounts have used this cookie's identifier, and roughly when each first and last did so, so that our security staff can find accounts that share a device; this record is used only for security (see Section 7).
  • Sign-in cookie (__Secure-ss-signin): Strictly necessary (security). Set only when you sign in with your password, reset your password, or change or set it. For each account signed in from this browser (up to four), it holds a short code that stands for the account (made from it with a key only our servers hold, so only we can tell which account it stands for), a random identifier for the browser and the time it was set, all sealed with a code only our servers can make; it holds no email address or name. While someone else's wrong passwords have restricted an account (see Section 14), it lets the account still be signed in to from this browser; while many sign-in attempts or password reset requests from networks near yours have limited those networks, it lets this browser still sign in to the account or request a password reset for it. Duration: 30 days, renewed each time it is set. Not used for advertising, analytics, or personalisation.
  • Security signing key: Our security script obtains a key from our servers and uses it to sign the page's requests for data (see Section 4). Each key is issued for 5 minutes and is kept only in the page's memory; it is not stored in a cookie or in your browser's storage.
  • Sentry cookies: Used for error tracking and session replay functionality.
  • Google Analytics cookies (_ga, _ga_MZTDZBGLRG): Set by Google Analytics to distinguish visitors and sessions so we can measure how the Website is used, and to support its advertising features (see Section 6). Duration: up to 2 years.
  • Sign-in mark (ss_ga_auth, session storage): Written by the login and sign-up pages when you start a sign-in through Twitch or Kick, so that Google Analytics (Section 6) can count the sign-in on the page you return to and does not count your return as a visit from the provider. It holds only the provider's name and the time it was written; it names no person. It is cleared the first time a page of the Website reads it, normally the page you return to, and is ignored if older than five minutes.
  • Advertising cookies and pixels: Advertising services we use (see Section 6) may set cookies and use similar technologies, such as pixels, to deliver advertisements, measure their performance, and, where permitted, show you ads relevant to your interests on this and other websites.

Apart from the Google Analytics cookies above, we do not use third-party analytics cookies. You can instruct your browser to refuse cookies, but some features may not function correctly without them. See Section 10 for advertising and analytics opt-outs.

4. Security System (Anti-Bot Protection)

Every request to our API passes through an automated security pipeline designed to protect the Website from bots, scrapers, and abuse. This system includes the following mechanisms:

  • Proof-of-Work (PoW) challenges: Your browser may be required to solve a cryptographic puzzle before accessing certain resources. This usually takes less than one second and uses your device's CPU. It verifies that requests come from a real browser, not a script.
  • HMAC signature verification: Requests are signed with a cryptographic key to verify they originate from our Website and have not been tampered with.
  • Risk scoring: Each request receives a risk score from 0 to 100 based on fingerprint consistency, behavioral patterns, and historical activity. High-risk requests may be challenged, delayed, or blocked.
  • Rate limiting: Requests are subject to sliding window and budget-based rate limits to prevent abuse.
  • Blocklist: Known malicious fingerprints, IP addresses, and user agents may be blocked from accessing the service.
  • Automatic refusal of automated browsers: A request for data to our API that comes from a data center network (see 1C) is refused when BotD's result (see 1E) names an automation tool, such as headless Chrome or Selenium, or when it carries no BotD result, or one we cannot read, and no bearer sign-in token (which our browser extension sends while you are signed in to it). Our device check (see 1E) notes in our security log a request whose device, graphics, platform and connection, as your browser reports them, are not consistent with each other or with the browser it names: from a data center or hosting network, whatever it found, and from any other network, only a combination no person's browser produces. It also notes, on any network, a request for data that carries no bearer sign-in token and whose challenge carried none of the results described in 1E but the device clock, whatever BotD's result for that request. It notes neither for the crawlers and addresses this paragraph spares below. One whose report is a combination no person's browser produces (for example, a phone whose graphics are drawn in software rather than by a graphics chip), from a data center or hosting network, can be refused the same way, but never while you are signed in; every other finding is only noted. It is not refused when its user agent says it is a crawler or fetcher of Google, Bing, or Apple and its IP address checked out or is still being checked (see 1C), when its IP address is in one of the address lists described in 1C, or while one of those lists could not be loaded. Each such request is refused on its own and recorded in our security log, with your account's ID if you are signed in (see 1E): no block is placed on your browser, your IP address, or your network. A person whose browser BotD reports as automated, or whose browser sends no BotD result, is refused the same way while on such a network, for example a VPN or a cloud provider, and so can be a person who is not signed in whose browser is set to report another device there, for example by developer tools' device emulation or by an extension that changes what the browser reports.
  • Slowing of requests from data center networks: A request for a channel's, a stream's, or a category's data that comes from a data center network (see 1C) while you are not signed in may be held for about one second before we answer it, and a request for a proof-of-work puzzle from such a network that does not carry your sign-in may be given one that takes about four times as much work to solve. Neither is done when its user agent says it is a crawler or fetcher of Google, Bing, or Apple and its IP address checked out or is still being checked (see 1C), when its IP address is in one of the address lists described in 1C, or while one of those lists could not be loaded. Such a request is never refused for its network; our security log records that it was held, or that it would have been.
  • Reading limits for signed-in accounts: While you are signed in, our security system counts, over the last 24 hours, the chat messages our API returns to your account from stream chat logs, a chatter's messages and message search, the different chat logs, chatters and stream pages you open, and your message searches. It keeps these counts for your account and, so that deleting and re-creating an account does not reset them, under a keyed hash of your account's email address, read in one standard form (lower-case, without a "+" tag and, for Gmail, without dots). It also counts the messages, chat logs, chatters and stream pages read by all signed-in accounts together on one network (one IP address, for IPv6 its /64, for mobile, VPN, proxy, relay and Tor networks, or when we cannot tell the network's kind; otherwise a block of 256 IPv4 addresses, or an IPv6 /48), in one browser (its device identity cookie), or on one data center, VPN or proxy provider. The counts cover only the last 24 hours; they, and the keyed hashes of the chat logs, chatters and stream pages you opened, are kept under your account's ID or keyed hashes, never under an IP address, an email address or a chatter's name, in records deleted at the latest 25 hours after the last request counted in them was answered, including after your account is deleted. Past 50,000 messages, 120 chat logs, 210 chatters, 400 searches or 400 stream pages for your account, or 100,000 messages, 120 chat logs, 210 chatters or 800 stream pages for a network, browser or provider you share, what reached its limit is slowed, never refused: pages hold 10 messages or 3 search results, one page loads every 6 seconds after the first 30, a new chat log or chatter opens once a minute after the first 5, a request may be held up to 10 seconds, and past that the page counts down and loads by itself, keeping your turn; a stream's page gets what is sent when you are not signed in. Everyone signed in on a network, browser or provider past one of its limits is slowed in what that limit counts, on one shared pace where it paces. Requests made while you are not signed in are never counted. Below these limits nothing about your reading is kept beyond these counts, a 10-minute record of each request's share of them that names no account, and the number of rows each request returned, which our security log records with the request (Section 1E); when a limit slows a request, the log also records which limit and whether it was your account's or a shared one. Where a limit slowed a page, the page says so in place of what it was not sent, never a zero, and a page that has to wait counts down and loads by itself; searching for streamers and chatters is never slowed by these limits. We may raise a signed-in account's limits to four times these numbers for 30 days, and then do not count it with the networks, browsers or providers it shares; that is recorded with the account's records and deleted with the account.
  • Review of suspected automation: Once an hour, our security system reads the last 24 hours of our security log for each identifier it uses for browsers, compares it with the automation checks described in 1E, with the network classification and crawler check described in 1C, and with how widely the identifier reached across the Website and how many IP addresses and device identity cookies it used, and lists the identifiers that match for a person to review, with a summary of that activity, such as how many requests it made, the networks and countries they came from, and which checks matched. To summarize them, it also reads the last 7 days of the log for the identifiers that could match, and the summary of each identifier it lists also gives how many requests the identifier made in those 7 days, from how many IP addresses and device identity cookies, on how many days, and when it was first and last seen in them. The list never blocks a browser by itself: a block is placed by a person, one identifier at a time. When an identifier that is not blocked reaches the list's highest tier, that summary, without the identifier, is also sent to Sentry (see Section 6) to alert us: once, and once more each time the identifier returns to the list after we dismissed it or after its block ended without a person lifting it (for example, when a time-limited block expired). An identifier whose requests in those 24 hours the automatic refusal above refused, none of them let through and none of them signed in, is not listed for review: it is filed as dismissed, with a note saying so, and nothing is sent to Sentry for it. It returns to the list once a request of it is let through or is made while signed in, if it still matches, and that summary is then sent to Sentry if it is in the highest tier. These summaries have no set expiry, like the other summaries of activity in our security records (see Section 7).
  • Security event logging: All security decisions (allow, challenge, delay, block) and associated metadata are logged to our analytics database for security monitoring and improvement.

5. Session Recording

We use Sentry Session Replay to record browsing sessions on our Website for the purpose of error detection and debugging. This includes:

  • What is recorded: Mouse movements, clicks, scrolls, page navigation, and form interactions. A visual reproduction of your session is created.
  • Recording rate: A sample of sessions (currently about 5%), plus any session in which an error occurs.
  • Data masking: Password inputs are automatically masked in recordings.
  • PII included: IP addresses and user identifiers are sent alongside recordings to correlate errors with affected users.
  • Data transmission: Session replay data is sent through a /monitoring route on our domain, which tunnels data to Sentry's servers.
  • Storage: Recordings are stored on Sentry's servers in the United States, subject to Sentry's data retention policies.

6. Third-Party Services

We share data with the following third-party service providers:

  • Sentry — Error tracking, performance monitoring, and session replay. Receives: IP addresses, user agents, page URLs, JavaScript errors, performance data, session recordings, and user identifiers. For requests to our API, its error and performance reports also carry the request's risk score, security decision, proof-of-work difficulty and remaining rate-limit budget, the time your browser took to solve the proof-of-work puzzle, the identifier our security system uses for your browser and the country derived from your IP address. Apart from requests for a proof-of-work puzzle or a signing key, it also receives a log entry for each request to our API that our security system challenges, delays or refuses (of the requests refused as automated browsers, see Section 4, a random 1% of those that are not signed in; slowing a request that comes from a data center network, see Section 4, is not counted as delaying it, nor is slowing by the reading limits), and for a random 1% of the requests it lets through, with the security decision and either the reason for refusing the request (for a request refused as an automated browser, also which of the conditions in Section 4 it met and whether it was signed in) or the request's risk score, proof-of-work difficulty and remaining rate-limit budget. It also receives a log entry for each request the device check in Section 4 could refuse while you are signed in or while we could not check whether you are, and for a random 1% of the others it could refuse and that are not refused, with the signs it found, the kind of network, and what became of the request. It may also receive the summary of activity of a browser identifier that our review of suspected automation places in its highest tier, without the identifier, as described in Section 4.
  • Google Analytics (Google LLC) — Website usage analytics. Receives: the pages you visit (URLs and titles), the referring page, browser, device, and screen information, an identifier stored in the Google Analytics cookies, interactions such as scrolling, clicks, site searches, filter and time-range choices, and account actions (signing up or signing in, without your email address or name), and your IP address, from which Google derives your approximate location (Google states that Google Analytics does not log or store IP addresses). We use Google Analytics Advertising Features, including Google signals: for visitors who are signed in to a Google account and have Ads Personalization turned on, Google may associate this data with their account to give us demographics and interests reports and cross-device insights, and the data may be used to build advertising audiences and measure advertising. You can turn off personalized advertising in your Google Ads Settings (see also Section 10). See how Google uses information from sites that use its services.
  • Advertising partners — We may work with advertising networks and services, such as Google AdSense and Google Ads, to display advertisements on the Website and measure their performance. They may receive your IP address, browser, device, and screen information, the pages you view, and identifiers stored in their cookies, and may use this information to show you ads on this and other websites.
  • Cloudflare — DNS, CDN, DDoS protection, and network tunneling. Receives: all network traffic, IP addresses, and request metadata.
  • Resend — Transactional email delivery. Receives: email addresses and email content for verification, password reset, and account deletion confirmation emails.
  • Twitch / Kick — OAuth authentication and public API data sourcing. Receives: OAuth authorization codes. Provides: user profile data for linked accounts and publicly available streaming data.

Each third-party provider operates under its own privacy policy. We encourage you to review their policies.

7. Data Storage and Retention

  • Account data: Retained until you delete your account. To delete it, choose Delete Account under Settings > Danger Zone: we email you a link that expires after 1 hour, and your account is deleted only when you open that link in a browser signed in to the account and confirm there. We then delete at once your account (your email address, display name, and profile picture), its sign-in sessions, its linked Twitch and Kick accounts with their OAuth tokens and the channels verified through them, your password if you set one, your browser extension settings, our records of your account's sign-ins and other account events, our records of the emails we sent you, and any password reset or account deletion links we emailed you that are still unused. We keep a record that the account was deleted, holding its account ID and a short code computed from its email address (the start of a SHA-256 hash), not the address itself; this record has no set expiry. Your privacy opt-outs (see Section 10) are kept, so the data you chose to hide stays hidden: they are recorded for the channel, not for your account. What happens to security data is described in the next item. Error reports, performance data, logs, and session recordings already sent to Sentry, which can include your account's ID, display name, and email address, remain subject to Sentry's retention policies, and the emails we sent you through Resend (see Section 6) are subject to Resend's retention policies. Deleting an account does not delete public streaming and chat data (see Section 11). Our records of your account's sign-ins, password resets and password changes from the last 30 days also tell our sign-in system which networks may keep signing in to it while someone else's wrong passwords, or many sign-in attempts from networks near yours, have restricted it (see Section 14).
  • Security data (fingerprints, sessions, request logs): Retained for security analysis and threat detection. Our security log's entries expire after 90 days, and the record of requests flagged as unusual after 180 days. The identifiers our security system uses for browsers, the summaries of their activity, security sessions, the records of requests it failed to handle, and the record of which accounts have used each device identity cookie have no set expiry. When an account is deleted, we delete its security session and its entries in the record of which accounts have used each device identity cookie, and remove its account ID from the records of requests our security system failed to handle, which are otherwise kept; entries of our security log and of the record of requests flagged as unusual that name the account are not changed, and expire as stated above.
  • Streaming analytics and chat data: Retained indefinitely as part of our core analytics dataset.
  • Redis cache: What our sign-in and security systems keep in our Redis cache expires on its own, at the latest 25 hours after it was last written: for example, the counters that limit sign-in attempts and wrong passwords for an account last up to 1 hour, those that limit password reset and account deletion requests up to 1 hour, the list of the networks an account recently signed in from, kept as keyed hashes rather than addresses, 5 minutes (a network it has just been signed in to from, or had its password reset or changed from, is kept the same way for 1 hour), and the marker recording that a device identity cookie was used with an account lasts 24 hours; the counts behind the reading limits for signed-in accounts last up to 25 hours after the last request counted in them was answered, their pacing markers from seconds to hours, and a raised limit's marker up to 24 hours at a time while it lasts. Blocks placed by our security system are the exception: they stay there as long as the block lasts.
  • Session recordings: Subject to Sentry's retention policies.
  • Google Analytics data: Subject to the data retention setting of our Google Analytics property and Google's retention policies.

8. Data Sharing and Disclosure

We do not sell your personal information for money. We may disclose your information in the following circumstances:

  • Advertising services: With Google Analytics Advertising Features and the advertising partners described in Section 6, to deliver, personalize, and measure advertising. Under some laws, including the CCPA, this may count as "sharing" personal information for cross-context behavioral advertising; see Sections 10 and 12 for your choices.
  • Service providers: With the third-party services listed in Section 6, solely for the purposes described.
  • Legal obligations: If required by law or in response to valid requests by public authorities.
  • Protection of rights: To protect and defend our rights, property, and safety.
  • Business transfers: In connection with any merger, sale of company assets, financing, or acquisition.
  • Public data: Streaming analytics and public chat messages are displayed on our Website as part of our service. Channel owners can opt out via Privacy Controls.

9. International Data Transfers

StreamerStats is operated from the United States. Your information may be transferred to and processed in the United States and other countries where our service providers operate. These countries may have data protection laws that differ from your jurisdiction. By using our Website, you consent to the transfer of your information to these countries.

10. Your Rights and Controls

  • Privacy Controls (in-app): Verified channel owners can hide their chat activity from search and hide their profile from search results via Settings > Privacy Controls.
  • Chat activity suppression: You may ask us to hide your own chat activity from chatter search, message search, address search, and user profile pages by emailing [email protected]. Requests are reviewed individually and granted at our discretion. Suppression hides the data from these surfaces; it does not delete the underlying public record (see Section 11).
  • Account deletion: You can delete your account under Settings > Danger Zone. We email you a link to confirm; nothing is deleted until you open it, within 1 hour, in a browser signed in to the account, and confirm there. Section 7 lists what is deleted at once and what is kept, and for how long.
  • Access and correction: You can access and update your account information at any time through your account settings. For data access requests beyond your account settings, contact us at [email protected].
  • Data portability: You may request an export of your personal data by contacting us at the email above.
  • OAuth revocation: You can disconnect linked Twitch or Kick accounts via Settings > Connected Accounts.
  • Analytics opt-out: You can block the Google Analytics cookies in your browser or install the Google Analytics Opt-out Browser Add-on. Opting out does not affect how the Website works.
  • Advertising opt-out: You can turn off personalized advertising from Google in your Google Ads Settings, and opt out of interest-based advertising from participating companies at optout.aboutads.info. Blocking third-party cookies in your browser also prevents most advertising cookies. You will still see ads, but they will be less relevant to you.

11. European Users (GDPR)

If you are located in the European Economic Area (EEA), United Kingdom, or Switzerland, you have additional rights under the General Data Protection Regulation (GDPR):

Legal Bases for Processing

  • Consent: Where you have given explicit consent (e.g., creating an account, linking OAuth accounts).
  • Legitimate interests: Maintaining our streaming analytics dataset of publicly available broadcast and chat activity, security and anti-bot protection, error monitoring, usage analytics (Google Analytics), advertising and its measurement, and service improvement. We have assessed that these interests do not override your fundamental rights. You have the right to object to this processing (see below), and you can turn off personalized advertising and analytics as described in Section 10.
  • Contractual necessity: Processing required to provide the services you have requested.

Device Identity Cookie (__Secure-ss-did)

We set the __Secure-ss-did device identity cookie on the legal basis of legitimate interest under Article 6(1)(f) GDPR, for the sole purpose of security and fraud prevention. It is never used for any purpose outside security. You have the right to object to this processing under Article 21 GDPR by contacting us at [email protected]; objections are reviewed by a human, not decided by an automated system. Retention: the cookie expires after 180 days, the security-log entries that record it expire after 90 days, and the record of which accounts have used it is kept as described in Section 7.

Your GDPR Rights

For the personal data we collect about you as a visitor or account holder — account, device, security, and session data — you have:

  • Right of access to your personal data.
  • Right to rectification of inaccurate data.
  • Right to erasure. You can delete your account at any time under Settings > Danger Zone, confirmed through a link we email you. Section 7 lists what is deleted at once and what is kept, and for how long. For other personal data we hold about you, contact us at the address below.
  • Right to restriction of processing.
  • Right to data portability.
  • Right to object to processing based on legitimate interests.
  • Right to withdraw consent at any time.
  • Right to lodge a complaint with your local data protection authority.

Publicly Sourced Streaming and Chat Data

Streaming analytics and chat messages are collected from public broadcasts and public chat channels on Twitch and Kick, and are processed under legitimate interest (Article 6(1)(f) GDPR) as a record of public streaming activity. We do not treat this public material as subject to deletion on demand, and it is retained as described in Section 7. If you object to your chat activity appearing on StreamerStats, contact us at [email protected]. Where we act on such a request, our remedy is to exclude your chat activity from search, autocomplete, and user profile pages (see Section 10) rather than to delete the underlying public record. Suppression requests are reviewed individually and granted at our discretion.

To exercise any of these rights, contact us at [email protected]. We will respond within 30 days.

12. California Users (CCPA)

If you are a California resident, you have rights under the California Consumer Privacy Act (CCPA):

Categories of Personal Information Collected

  • Identifiers (email, IP address, user IDs).
  • Internet or electronic network activity (browsing history, device fingerprints, API usage).
  • Geolocation data (derived from IP address and timezone).

Your CCPA Rights

  • Right to know: You can request details about the personal information we have collected about you.
  • Right to delete: You can request deletion of the personal information we hold about you as a visitor or account holder, subject to certain exceptions. Publicly available information — including chat messages posted in public channels — is excluded from the CCPA's definition of personal information.
  • Right to non-discrimination: We will not discriminate against you for exercising your CCPA rights.
  • Sale and sharing of personal information: We do not sell personal information for money. Our use of advertising services (see Sections 6 and 8) may count as "sharing" personal information for cross-context behavioral advertising under the CCPA. You can opt out of this sharing by emailing [email protected] and by using the advertising and analytics opt-outs in Section 10.

13. Children's Privacy

Our services are not directed to individuals under the age of 13 (or 16 in jurisdictions where applicable). We do not knowingly collect personal information from children. If we become aware that we have collected personal information from a child, we will take steps to delete it promptly. If you believe a child has provided us with personal information, please contact us at [email protected].

14. Security of Your Information

We implement the following security measures to protect your data:

  • Password security: All passwords are hashed using industry-standard algorithms. We never store plaintext passwords.
  • Request integrity: API requests are verified using HMAC-SHA256 cryptographic signatures.
  • Encryption: Sensitive security data is encrypted using AES-256-GCM.
  • Account lockout: After 10 wrong passwords for an account from one network (an IPv4 address, or an IPv6 /64) within 15 minutes, that network cannot sign in to the account until the 15 minutes end or the password is reset or changed from that network; other networks are not affected. If an account gets 100 wrong passwords within an hour from all networks together, then for the rest of that hour it can be signed in to only from a network it was signed in to, or had its password reset or changed from, in the last 30 days, which we recognise from our records of the account's sign-ins (see Section 7), or from a browser holding its sign-in cookie (see Section 3), each held to 10 wrong passwords every 15 minutes. Resetting or changing your password ends that restriction at once, and changing your password while signed in is never blocked by either limit.
  • Rate limiting: From one network, sign-in attempts are limited to 30 every 10 minutes and to 5 a minute for any one account, and account sign-ups, password reset requests and verification email requests to 3, 10 and 10 an hour; the /48 an IPv6 network belongs to is also limited, counting only what each network's own limits let through, to 120 sign-in attempts every 10 minutes and 10 sign-ups, 30 password reset requests and 30 verification email requests an hour, though past its sign-in limit an account can still be signed in to from a network it was signed in to, or had its password reset or changed from, in the last 30 days, or from a browser holding its sign-in cookie (see Section 3), and past its password reset limit such a browser can still request a reset. Password reset requests for one email address are limited to 3 an hour from all networks together, whichever browser sends them, and we send at most 3 verification emails an hour to one address. While signed in, changing your password is limited to 5 attempts a minute and 10 wrong current passwords every 15 minutes in each sign-in session. Our sign-in system also limits, from one network, requests to sign in with Twitch or Kick to 3 every 10 seconds and verification email requests to 3 a minute.

No method of transmission over the internet or electronic storage is 100% secure. While we strive to protect your information, we cannot guarantee absolute security.

15. Changes to This Privacy Policy

We may change this Privacy Policy at any time. Changes take effect when the updated policy is posted on this page with a revised "Last Updated" date; we may, at our discretion, also announce changes on the Website. Please review this page periodically. Your continued use of the Website after an updated policy is posted indicates your acceptance of it.

16. Contact Us and Governing Law

If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at [email protected].

This Privacy Policy is governed by the laws of the State of North Carolina, United States, without regard to its conflict of laws principles. This policy covers all services provided through streamerstats.com and its subdomains.