The short version
What we hold, at a glance
The whole data story in one view. Every point below is spelled out in full in the sections that follow.
Never, for anyone: profiling your viewers, advertising, or selling or sharing your data. The only data kept beyond your control is the billing records the law requires and any moderation record, described above.
The commitment at the core
The Sovereign User Promise
This is the promise the whole company is built around: minimal data, never sold, and strict rules on how that can ever change, binding on us even under future ownership.
1. Our commitment. SparkStream collects the minimum data needed to run the service, and never sells your data. This Promise governs how that can ever change, and it binds us including under any future ownership or management.
2. What counts as a material change. A "material change" is any change to how we collect, use, retain, share, or disclose your data, or to your rights over it. The following are always material and cannot be classified as anything else:
- a)collecting any category of data we did not previously collect;
- b)using your data for any new purpose;
- c)sharing, disclosing, selling, or transferring your data to any third party in a way not already permitted under the terms then in force;
- d)increasing how long we retain your data;
- e)reducing, removing, or weakening any right, remedy, or protection you have over your data; or
- f)any change to this Promise itself.
The only changes that are not material are: correcting typographical or formatting errors; clarifications that do not change meaning or your rights; and updating our company contact or registration details. Anything not in this list is treated as material.
3. The 14-day grace period. No material change takes effect, and no new or expanded collection or use of your data may begin, until 14 days after we send notice of it both inside the app and by email.
- •The grace period runs from the date the notice is sent, not the date you open or read it.
- •The notice states the date it was sent, the date the grace period ends, and the time remaining, so you can always see how long you have.
- •We send this notice by email to the address associated with every account, and display it inside the app, so it cannot be missed.
4. Your Clean Slate rights. Throughout the 14-day period, and at any other time, you may, with one clear action in the app:
- a)download a complete copy of your data;
- b)delete your historic data, so that data collected under the previous terms is not carried into the new terms; and
- c)delete your account and all associated data.
5. Your historic data stays under the terms it was collected under. Data we already hold remains governed by the version of this Policy in force when it was collected. We will not apply any material change to it retroactively, nor repurpose it under new terms, without your fresh, explicit consent.
6. While you decide, nothing changes. During the grace period the app does not transmit any newly-collected data to us. You are shown a clear, neutral notice explaining the change, and you choose how to proceed, including a simple acknowledgement, "I have read this and I am OK with data collection," if you wish to continue.
7. This Promise is self-protecting. This Promise is part of our agreement with you. Any future change of ownership, directors, or management is bound by it as it stands, and any attempt to change or remove it is itself a material change subject to every protection above.
The agreement
Terms of Service
The important points in plain language, no legalese. By using SparkStream you confirm you are at least 16, or the minimum age required where you live, and that you may accept these terms.
SparkStream is a local desktop tool that connects to your Twitch account and lets you automate actions in response to channel point redemptions and stream events. It runs on your machine. The core features require no internet connection beyond Twitch itself.
By using SparkStream you agree to use it only for lawful purposes and in ways that do not violate Twitch’s own Terms of Service. You are responsible for the actions you configure. If a reward triggers a hotkey, a script, or an HTTP request, that is your configuration running on your machine.
SparkStream stores the minimum data necessary to provide the service. Everything that can stay on your machine, does. For an account using only the local core, the server holds little more than your Twitch user ID, the email address on your Twitch account (encrypted, for account emails), your licence status, and a record of your agreement to these terms. Anything beyond that exists only because you used a feature that needs it, such as a support ticket, a direct message, or an opt-in Pro feature. We do not sell, share, or monetise your data or your viewers’ data. Two things are kept beyond your control: data we are legally required to keep, held for exactly as long as the law requires and no longer, and any moderation record (reports and bans), because deleting an account cannot erase one. The full detail is set out in the Privacy Policy below.
Pro features require an active licence. Licences are non-transferable between Twitch accounts. SparkStream reserves the right to revoke a licence if it is found to be fraudulently obtained or used in violation of these terms. Fees already paid are non refundable except where the law requires otherwise; if you have a billing problem or want a refund, contact support first.
SparkStream is provided as-is. While we work hard to keep it reliable, we cannot guarantee uninterrupted service or that it will work with every system configuration. We are not liable for any loss or damage resulting from the use of SparkStream, including actions triggered by the app on your machine.
If the terms change in a material way, you will be shown the terms again and asked to re-agree before continuing. Changes will not be applied silently. The version of the terms you agreed to is recorded with your account, alongside the date of acceptance. Material changes to how we handle your data are additionally governed by the Sovereign User Promise above.
Your data
Privacy Policy
What we hold, what we never do with it, and the rights you always keep. Material changes to any of this are governed by the Sovereign User Promise above.
If you use only the local core, the server holds very little: your Twitch user ID, the email address on your Twitch account (encrypted, so we can send you account emails), your licence status, a record that you accepted these terms, and the devices signed in to your account, which is what lets you see them in Settings and sign one out from another. Everything that can stay on your machine, does, so your chat and stream events stay on it. Beyond that, the server only holds what a feature you switch on needs: support tickets, your end-to-end-encrypted messages (which we cannot read), posts you make in the community, forum reports you file, your referral record if you use or share a code, your notification preferences, and your Cloud Sync backup if you enable it, which is encrypted on your device so that we only ever hold ciphertext.
By default, your redemption history and viewer data never leave your machine, and neither does your chat. Five opt-in features are the exception, and none of them is on unless you turn it on. Cloud Analytics (Pro) records channel-point redemption events for your own dashboard. Each viewer’s id is hashed so they cannot be followed across channels, and their display name is kept encrypted so the dashboard can show you your own top redeemers. Your stream statistics (Pro) go with it: while you are live we keep a running summary of your own channel’s numbers, your average and highest viewer count, how long you were live, and your subscriber and follower totals, so the same dashboard can show you how your streams compare over time. Those are your own figures, the ones Twitch already shows you, and they are totals: no individual viewer is described in them. The Mobile Approval Queue (Pro) temporarily holds pending redemptions on our server, removes each one the moment you approve or decline it, and clears anything still waiting after four hours. The Twitch Bot (Pro), if you add it to your channel, reads your channel chat on our servers so it can spot when someone types a command: it acts on those messages and does not store your chat, apart from one thing: if you switch on its chat moderation, a record of each action it takes (who it acted on, what matched and a short extract of the message) is kept for 14 days so you can see and undo it. Bot features you switch on go one step further, because a command like the subathon one has to know what is happening in your app before the bot can answer it: switching such a feature on sends us what that feature needs, only while it is on, and it is used to run that feature and nothing else. Where one of them has to hold something about the viewers who use it, a giveaway being the obvious case, it holds the least it can work with and lets go of it when the feature is switched off.
A collab session lets you link with another SparkStream streamer so your overlays, goals and countdowns can work across both channels. Nothing is shared until you choose to start a session. When you do, we relay between the two apps only what each of you has switched on, your viewers’ display names are off by default, and none of it is kept on our server once the session ends. Channel points never cross channels: a redemption is always settled on the channel it happened on.
A public channel page shows what is happening on your channel right now, at a web address anyone can open. Depending on the panels you turn on it can show the rewards you offer and what they currently cost, a goal in progress, a running auction or subathon, your commands, your saved quotes, and a short description of your channel if you write one. Your page is off until you switch it on, and only the panels you chose to show are sent. Anything concerning your viewers appears as a total rather than a name: no viewer is identified on the page, and an auction shows how many people have bid rather than who they are. Links on the page are a platform and a handle you pick from a fixed list, never a web address typed in free text, and no images are ever uploaded. The description is the one part of the page you write yourself, so it is checked for slurs and hate before it goes up and anyone who visits a page can report it. Switching the page off stops it being served and removes what was held for it.
If you are a SparkStream partner, you can write a partner testimonial for this website. A member of our team reads it before it goes up and can decline it, but nothing in SparkStream can change what you wrote, not even spelling: it is shown exactly as written, with your channel name and a label saying you are a partner. It is checked for slurs and hate first. You can take it down at any time, and it is deleted when the partnership ends or your account is deleted.
If you also stream on another platform, you will be able to link that account so its chat appears in SparkStream beside your Twitch chat, and in your overlays if you choose. Kick is the first. Kick only sends chat to a web address, so each message reaches our server and is passed straight on to your app, and none of it is kept. Your sign-in to that platform stays on your computer. This is not available yet. It is in the Data Charter now, so nothing more needs accepting when it arrives.
Direct messages between streamers are end-to-end encrypted. Your private key never leaves your device, so we cannot read your messages, not in transit, not at rest, not ever. The limited data we do hold (such as support ticket contents) is encrypted at rest.
We do not profile you or your viewers for advertising, and we never sell or share your data. There is no advertising and no third-party tracking. The only analytics we offer is the opt-in Pro dashboard of your own channel activity, with viewer identifiers hashed.
At any time, with one clear action in the app, you can download everything we hold about you, delete your historic data, or delete your account and all associated data. The Sovereign User Promise above governs how any of this can ever change.
Beyond any moderation record (reports and bans), which survives deletion, the only data retained beyond your control is data we are legally required to keep, such as the billing records UK tax law requires us to hold for six years for HMRC. These are limited to Stripe transaction records, kept separate from your ordinary account data, and used only to meet that obligation.
Every category, in full
Data Charter
Each kind of data SparkStream collects on our server, what it is for, and the limits on it. A new category is shown to you in the app 14 days before it applies, and the ones that are optional can be switched off in Settings. This is version 28, published 23 October 2026.
Account basics
Your Twitch login and user id, used to run your account. Nothing more is needed to sign you in. We also read the email address on your Twitch account when you sign in, and keep it encrypted, so we can send you account emails: a new sign-in, a change to your access, notice before our terms change, notices about your account itself, such as a security incident, and, if we invite you to be a partner, the invitation and anything that changes about your partnership. It also carries any notifications you choose to get by email, and marketing only if you opt in. If you check a referral code before subscribing, that code is another streamer's Twitch username and is sent so we can tell you whether it is valid.
Redemption analytics
Channel point redemption events for your own Pro analytics: the reward, its cost, and who redeemed. Each viewer's id is hashed to a per-channel pseudonym so it cannot be linked across channels, and their display name is stored encrypted at rest so your analytics can show your own top redeemers by name. Used only to build your analytics, never to profile viewers across channels. Pro only.
Support tickets
The category, subject, and message of any support ticket you open. Subject and message are encrypted at rest.
Direct messages (encrypted)
Direct messages are end-to-end encrypted; the server only ever holds ciphertext it cannot read.
Subscription status
Whether your Pro subscription is active and when it renews, and, if you subscribe using somebody else's referral code, the link between your account and theirs, kept so the reward is applied once. Payments are handled by Stripe; we never see your card details.
Community Hub content
The content of anything you post to the Community Hub: feature requests, forum posts and replies, and bug reports, together with your Twitch login. This is shown publicly under your username where the Community Hub itself is public (the forum and feature requests, for example); it is not held privately like support tickets or messages. Survey answers are the exception and work the other way round: they are stored without your login, so we can see that you answered and never which answers were yours, and they are never shown publicly. The record that you took part, which is what pays the reward, is kept separately under your login.
Pending redemption approvals
If you use the mobile approval queue or the companion web app, a redemption waiting for your decision (the reward, its cost, and the viewer's name and typed message, where applicable) is held briefly on the server so those surfaces can show it to you. It is automatically deleted after 4 hours regardless of whether you acted on it.
Forum reports
If you report a forum post or reply, we hold your report: your Twitch login, which post you reported, the reason you chose, and any details you add (encrypted at rest). Reports are private and visible only to the moderation team; they are never shown publicly and the person you reported is not told who reported them.
Signed-in devices
The devices signed in to your account: a coarse device name (like SparkStream Desktop on Windows) and when each device first signed in and was last active. This powers the Active devices list in Settings and the email alert when your account signs in on a new device. No IP addresses, precise locations, or hardware identifiers are collected.
Notification preferences
Which notification channels (in-app, desktop, email) you have turned on for each category, saved against your Twitch login. This is stored so email notifications honour your choice and so your preferences follow you across devices. It records your settings only, never the content of any notification.
Cloud Sync (encrypted)
If you turn on Cloud Sync, copies of your app configuration (your rewards, triggers, overlays, and settings, never your Twitch credentials or keys) is encrypted on your device with a passphrase only you know and stored so your other devices can pull it. The server only ever holds ciphertext it cannot read, plus the non-secret salt needed to derive the key from your passphrase. If you turn on restore points, we keep the recent versions rather than only the newest, so you can put your setup back to how it was on a particular day. How many are kept and for how long is shown in the app before you turn it on. Every version is ciphertext under your own key exactly as the newest one is, so keeping more of them tells us no more than keeping one did. This is entirely opt-in and off unless you enable it.
Discord server link
If you add the SparkStream Discord bot to your server, we store the link between that Discord server and your account: the Discord server's id, your chosen announcement channel and optional ping role, your go-live message, and the social links you set for the bot's /socials command. This lets the bot post when you go live and answer commands. It is opt-in (only if you add the bot), holds ids and your chosen settings rather than any message content, and is removed when you unlink the server.
Discord activity feed
If you turn on a Discord activity feed, SparkStream sends the matching live events to our server so the bot can post them to your chosen Discord channel. Depending on which feeds you enable, this can include: for the redemption feed, a channel-point reward's name, the viewer's display name, the cost, and any message they typed with it; for the now-playing feed, the title, artist, and link of the track you are currently playing; for the leaderboard feed, the ranked viewer display names and their totals (such as top gifters or cheerers) for the ranking and time span you choose; for the milestones feed, the name of a completed community goal, for an incoming raid the raider's display name and viewer count, and the follower or subscriber count when you pass a milestone; for the clips feed, a clip’s title, its link, and the reward or moment that caused it to be made. These are passed straight through to Discord and not stored on our server (the current track and the latest leaderboard are held only briefly in memory so the /song and /leaderboard commands can answer). Every feed is opt-in and only the feeds you turn on are sent.
Chat bot
If you add SparkStream's hosted Twitch chat bot to your channel, we store the link between your channel and the bot (your Twitch login and user id) along with the settings you choose for it: your custom commands and their responses, the command prefix, which built-in commands are on, any timers and the messages they post, any keyword replies and the phrases that set them off, and your chat moderation settings including any words or web addresses you add to them. So that it can answer, the bot reads your channel's chat to spot a command, one of your keyword phrases, or something your moderation settings tell it to act on. If you set rewards up to be redeemed while you are away, we also hold which of those rewards the bot should acknowledge and the message it should reply with, so that somebody redeeming one is answered at the time rather than the next time you open the app. It does not store your chat. The one exception is moderation: with it switched on, every action it takes is recorded so that you can see what happened and undo it, which means who it acted on (their Twitch name and id), what was matched, and a short extract of the message. Those records are kept for 14 days and then deleted. It is opt-in (only if you add the bot) and everything is removed when you remove the bot from your channel. These are the bounds: settings you typed, for a bot you added, used only to answer in your own chat. Anything the bot keeps about a viewer is the moderation record described above and its fourteen days.
Collab sessions
If you start or join a collab session with another SparkStream streamer, we relay that session between the two of you: which accounts are linked, and, while it is running, the figures and events each of you has chosen to share. Depending on what you switch on, that can include a shared goal's progress, a shared countdown, combined leaderboard standings, and the fact that a reward was redeemed on the other channel together with its name and cost. Your viewers' display names are included only if you turn that on, and it is off by default. All of it is passed straight between the two apps so the other streamer's overlays can show it, and none of it is kept on our server once the session ends. Channel points never cross channels: a redemption is always settled on the channel it happened on. A session is opt-in, both streamers have to accept it, and it ends when either of you ends it.
Performance reports
SparkStream can record how much memory and processor it is using over time, so that a problem which only appears after several hours has something to show for it. That recording is written to a file on your own computer and stays there. If you decide to send it to us with a support ticket, we receive the recording and a short description of your computer: the processor model, how many cores it has, how much memory is installed, your operating system version, and your SparkStream version. We ask for those because the same numbers mean very different things on different machines. Nothing about your stream, your channel, your chat or your viewers is in any of it. None of this is ever sent on its own: starting a recording is something you do, sending one is a separate decision you make afterwards, and if you never send one then we never learn it existed.
Public channel page
If you turn on your public channel page, SparkStream sends the parts of your channel's state you have chosen to show there to our server, so that the page can show them to anyone who visits it. Depending on which panels you turn on, that can include: your channel point rewards and their current prices, the progress of your community goals, a running subathon clock, how many redemptions are waiting in your queue, a running auction's current bid, how long is left on it and how many people have bid, your custom chat commands and their responses, the quotes you have saved, and a short description of your channel if you choose to write one. That description is the one thing on the page you write yourself rather than something the app already had, so it is checked for slurs and hate before it goes up, and anyone who visits your page can report it. Whether you are live, your title, your game, your upcoming schedule and your profile picture come from Twitch rather than from your computer. Anything concerning your viewers appears as totals only: no viewer's name, id or message is published on the page, and an auction shows how many people have bid rather than who they are. The links on the page are a platform and a handle you choose from a fixed list, never a web address typed in free text, and no images are ever uploaded. The page is off until you switch it on, every panel on it is one you chose to show, and switching it off stops the page being served and removes what was held for it.
Bot features you switch on
Some of the bot's features need to know what is happening in your app before they can answer. Each one is off until you switch it on, apart from the command list described below, and switching one on sends us only what that feature needs, and only while it is on. The subathon command is the first: with it on, we hold your subathon's current state, which is whether one is running, the time left, your rates and your multiplier, so the bot can answer when somebody in your chat asks. The !commands list has no switch of its own, because it is part of having the bot at all: while the bot is in your channel, we hold the names of the chat commands your app answers and when your app last sent them, so the list is complete and the bot can tell a viewer when one of those commands is not answering. Only the names, never what the commands say, and they go when you remove the bot. Some features will need to hold something about the viewers who use them, because a giveaway cannot draw a winner without knowing who entered. Where that happens it is the least the feature can work with, and it goes when you switch the feature off or when the thing it belongs to ends. Reading your chat to spot a command still does not mean storing your chat. All of it is used to run the feature you switched on and nothing else: not to build a picture of you or your viewers, not sold, not used to train anything. If we ever want to use it in a way this does not describe, that is a new category in this charter, and you hear about it before it happens rather than after.
Your stream statistics
While you are live, SparkStream reads your own channel's numbers about once a minute and keeps a running summary of that stream. It is the summary we hold rather than every individual reading: your average and highest viewer count, how long you were live, your subscriber and follower totals at the start and at the end, how many people followed and subscribed while you were live, whether the app was listening for the whole of that stream, and the title and category you streamed under. These are your own figures, the ones Twitch already shows you about your own channel, and they are totals. Nothing here describes an individual viewer, and no viewer's name, id or message is any part of it. It is stored encrypted at rest, and deleted once it is older than your analytics can reach back. Your Pro analytics is the first thing built on it. If we later build something else on these same figures we will not send you another notice, because it is the same numbers used in the same way, and these are the bounds that make that safe: your own channel's totals only, gathered only while you are live, used to run features you can see and nothing else, never sold and never used to train anything. Anything wider, and in particular anything about an individual viewer, is a new category in this charter, and you hear about it before it happens rather than after. Gathered only while your Pro subscription is active, and it stops when that does.
Two-PC Mode
If you run SparkStream on two computers, a gaming PC and a streaming PC, Two-PC Mode passes what the two need to agree on between them through our server, because they cannot see each other directly. That is state your app already holds: which of your rewards are on, what your overlays are showing, what is waiting in your queue, and which machine is currently in charge. It is passed straight between your own two machines and is not kept once both have disconnected. Nothing about an individual viewer travels this way, and anything concerning your viewers is a total, in the same shape your overlays already show it. Both machines are signed in as you, and pairing them is something you do deliberately. These are the bounds: your own state, between your own machines, held only while they are connected. Anything about a viewer as an individual, or any use of this beyond keeping your two machines in step, is a new category in this charter and you hear about it first.
Overlays served from our servers
Your overlays normally run on your own computer and OBS reads them from there, which is why they keep working when your internet does not. If you switch an overlay to a hosted address instead, so it can be read from another machine, SparkStream sends that overlay’s current state to our server so the page can be drawn. Depending on the overlay, that can include a goal’s progress, a subathon clock, an auction’s current bid and how long is left, a wheel’s segments and where it landed, leaderboard standings, and how many redemptions are waiting. Anything concerning your viewers appears as totals, or as the display names you had already chosen to show on screen, and nothing is added that your overlay was not already showing. A hosted overlay is off until you switch it on, it is served only at the address you are given, and switching it off stops it being served and removes what was held for it. These are the bounds: the state one of your own overlays is already displaying, held only while that overlay is hosted. Anything wider is a new category in this charter.
Engagement analytics (encrypted)
Engagement analytics answers which of your rewards actually bring people into your chat, rather than which are simply redeemed most. Working that out means looking at your own channel’s redemptions and your own channel’s chat together, viewer by viewer, and that work happens on your computer rather than on ours. If you turn on analytics history, the result is encrypted on your device with a key only you hold and stored so it survives a reinstall and reaches your other machines. The server holds ciphertext it cannot read, plus the non-secret salt needed to derive your key from your passphrase. We cannot see which viewer did what, we cannot compute anything from it, and we could not answer a question about it if we were asked. Storing your history is opt-in and off unless you turn it on, and turning it off deletes what was held. These are the bounds: your own channel, analysed on your own machine, stored only as ciphertext we cannot read. If anything here ever needed to be readable by us, that is a new category in this charter and you hear about it before it happens rather than after.
Partner testimonials
If you are a SparkStream partner and choose to write a testimonial, SparkStream sends the words you write to our server, together with your Twitch login. A member of our team reads it, and if they approve it, it is shown on the SparkStream website with your channel name and a label saying you are a SparkStream partner. It is shown exactly as you wrote it: we can decline to put it up and tell you why, but nothing in SparkStream can change what you wrote. It is checked for slurs and hate before anyone reads it. Every version you send is kept with what happened to it, so you can see what was shown. You can take it down at any time, and it is deleted when your partnership ends or you delete your account. Nobody who is not a partner can send one.
Feature usage
Once a day, a list of true or false, one entry per feature, saying whether each feature is switched on. It is used for one thing: to see what people actually use, so we know what to build and improve next, and which features to go and ask people about rather than quietly leave to rot. That is the whole of it. Not how often you use anything, not when, not for how long, not in what order, not what you set it to, not whether it worked, and never the content of anything. It is counted the moment it arrives and then discarded: the server keeps a count for each feature, and separately a note that your account reported that day, never the two together, and the note is deleted when the day closes. So no history of you is kept, no combination of features is ever recorded, and what is left is a number with nothing attached to it. Your list itself is never written down, so there is nothing of it to encrypt or to hand over: it travels over an encrypted connection and exists only while it is being counted. Nobody at SparkStream is shown who uses what, because nothing holds that. The only thing anyone here sees is the totals, and a total under five is shown only as fewer than five. It is never sold, never used for advertising, and never used to train anything. This is the one category that is on unless you switch it off, because it is not tied to a feature you turned on. You can switch it off at any time in Settings under Backup & Data, where you can also see the exact list before it is sent, and if this reached you as a change to the charter, on the notice that tells you about it. Switching it off stops every future report. A report already counted cannot be taken back, and deleting your account does not reduce a count, because nothing records which number was yours. These are the bounds, and they are a promise about what this must never become: one true or false per feature and nothing beside it. Counting how often or in what order, what anything is set to, whether it worked, keeping anything about you past the day it was sent, or breaking the totals down by plan, region, how long somebody has been signed up or anything else about the people counted, is a new category in this charter, and you hear about it before it happens rather than after. There is no exception for one person or one investigation, because there is nothing to look in.
Chat from other platforms
If you link an account on another streaming platform so that its chat can appear in SparkStream, we store the link between that account and yours: the platform, your user id and username there, and the request that asks that platform to send us your channel's chat. Kick is the first such platform. Kick only sends chat to a web address, so each message reaches our server and is passed straight on to your app: the chatter's username on that platform, the colour and badges it shows beside their name, the message itself, and which message it replies to, if any. Messages are not kept. Each one is on our server only for as long as it takes to pass it on, and it is used for nothing else. Your sign-in to that platform stays on your computer; it is used once, when you link, to show us the account is yours, and we do not keep it. It is opt-in, only if you link an account, and when you unlink it we delete the link and ask the platform to stop sending. If you choose to show that chat in one of your overlays, it appears on your stream as it appears on the platform it came from. These are the bounds: your own channel's chat, on a platform you linked, passed to your own app and kept nowhere. Another platform is named here before it is offered. Keeping any of this chat, or using it for anything but showing it to you, is a new category in this charter, and you hear about it first.
How it is built
Security by design
Security here is mostly about what does not exist: data we never collect, round-trips we never make, and messages we cannot read. Less to protect means less to lose.
The core of SparkStream runs on your machine. Rewards, actions, game detection, and overlays all work without a cloud round-trip, so there is simply less of your activity anywhere for anyone to intercept or leak.
Streamer-to-streamer direct messages are encrypted with keys generated on your device. The private key never leaves it, so no one, including us, can read your messages.
Sensitive values kept on your machine, such as access tokens and API keys, are encrypted with your operating system’s secure storage rather than left in plain text.
Most of what a breach would want simply is not there. Your chat, your stream events, and your day-to-day redemption history stay on your machine rather than in a central store. What the server holds is the minimum each feature you use needs, which keeps the target small.
One thing is sent automatically, and it is on unless you turn it off: whether each feature is switched on. It is a list of on or off, so we can see what people actually use and know what to build and improve next. Not how often you use anything, not when, not for how long, not what you set it to, and never the content of anything. Your answers are not kept: we count them as they arrive and keep only the totals, with a note that your app reported today so it is not counted twice, and that note is deleted when the day closes. You can see the exact list before anything is sent, and turn counting off at any time in Settings, under Backup & Data. Diagnostics stay on your machine unless you choose to attach them to a support ticket.
If you find a hole
Reporting a vulnerability
Security is not only what we build, it is what we do when somebody finds a problem with it. There is a published policy for that, and it is worth reading before you touch anything.
You have our permission to test SparkStream, and our word that we will not come after anyone who does it in good faith and inside the rules, including under the Computer Misuse Act 1990. We acknowledge a report within five working days, keep you posted while it is open, tell you when it is fixed, and credit you if you want the credit. We cannot pay for reports yet, and the policy says so plainly rather than leaving you to guess.
When it goes wrong
Incidents
Every security incident that has touched SparkStream is written up in full: what happened, what we did, what we checked, and what it meant for you.
The most recent was on 22 October 2026: security incident at our hosting provider. It is closed.
Read the incidentsThird parties
Who we rely on
A short, deliberate list of the outside services SparkStream touches, split into the few that process a slice of your data for us and the optional integrations that run entirely on your machine.
Sign-in and the live stream events SparkStream reacts to. You authorise SparkStream through Twitch’s own login; we never see your Twitch password.
Cloud hosting for the SparkStream server and the database behind it, which holds only the limited data described above (such as your Twitch ID, licence status, and support ticket contents). Encrypted in transit and at rest.
Payments and billing for Pro. Card details go straight to Stripe and never touch SparkStream. We store only the reference needed to manage your subscription.
Sends account emails such as receipts, new sign-in alerts and notices about our terms. It sees your email address and the message, nothing else.
Two ways to connect, both opt-in. The free webhook keeps everything on your machine: the webhook URL is stored encrypted locally and posts go from your PC straight to your channel, our servers never see it. The optional SparkStream bot (Pro) is hosted by us, so for the features you turn on it relays only what is needed to post (the link to your server, and things like a redemption or your current track) through our servers to Discord. That is passed straight through, never stored, and spelled out in the Data Charter.
Only if you connect Spotify. It runs on a Spotify app you create, and your Spotify tokens stay encrypted on your PC. Our servers never touch them.
In your hands
Your data rights
These are not requests you file and wait on. Each one is a control inside the app that takes effect immediately.
One action in the app exports everything we hold about you, in the same form we hold it.
Clear your historic data whenever you want, without deleting your account.
Remove your account and all associated data. Two things stay: the billing records the law requires, and any moderation record (reports and bans), because deleting an account cannot erase one.
How any of this can ever change is governed by the Sovereign User Promise, binding on us even under new ownership.
If we fall short
Service Level Agreement
The Promise is only as good as what happens when it is broken. This is the consequence we accept, in your favour, for breaching the grace period or notice.
Part of the Terms of Service. This Service Level Agreement forms part of the agreement between you and SparkStream App Ltd, together with the Terms of Service, the Privacy & Data Policy, and the Sovereign User Promise. The limitation of liability in section 13 of the Terms of Service does not apply to it, and no cap or exclusion elsewhere in that agreement reduces the compensation set out below.
What this covers, and what it does not. This agreement covers one thing: what the company owes you if it fails to give notice of a change to how your data is handled, in the way and in the time the Sovereign User Promise requires. It is not a commitment about uptime, availability, or performance. Section 12 of the Terms of Service is what governs those.
Compensation for breach of grace or notice. If the company breaches the 14-day grace period set out in the Sovereign User Promise, or begins or expands the collection or use of data without first providing the transparent notice that Promise requires, then each affected user is entitled to £100 in compensation.
- •"Affected user" means any user whose data was, or could have been, collected or used under the change before the grace period had properly elapsed and proper notice had been given.
- •This sum is agreed by the parties as a genuine pre-estimate of the harm caused to a user by the improper collection or use of their data contrary to this Promise, and as protecting the legitimate interest of both users and the company in the company's foundational commitment to data sovereignty. It is not a penalty.
- •This entitlement is in addition to a user's Clean Slate rights to download and delete their data, and does not limit any other remedy available to a user at law.
- •For the avoidance of doubt, this compensation is payable per affected user and is not capped by reference to the company's revenue or resources.
Talk to us
Contact
Questions about any of this, or want to exercise one of your rights with a hand? We are reachable and we answer.
The fastest route is the support system inside the app, which opens a ticket the SparkStream team can reply to directly. For anything else, email hello@sparkstreamapp.com.