Privacy and cookies
This notice covers two separate things: the FoxSDR application you install, and this website. They collect different data, for different reasons, and are described separately below — the application first, because that is the part that runs on your own machine. It is written to be complete rather than short: every field either of them stores is listed, including the ones most notices leave out.
The application: what it sends
There is no licence key and no activation, and FoxSDR never reports anything about what you listen to. It makes exactly three kinds of network request on its own account: an update check, an anonymous usage report, and — only when you press Browse — a request to the plugin catalogue. Each is described below, and each can be switched off.
What stays on your machine
Your recordings, both audio and raw I/Q, the images SSTV and weather-satellite decoders build, everything the decoders decode, your bookmarks, band plans, settings and installed plugins are files on your own disk. Nothing uploads them, and no frequency you tune to leaves your machine.
The update check
Once per launch the application asks this site whether a newer version exists. The entire
request is GET /api/update?v= followed by the version you are running — no
identifier, no install id, no cookie, and nothing that could be tied to a later request. This
server writes no analytics record for it: only page views and file downloads are recorded, and
the update endpoint is neither. Turn it off under Settings → Updates, and the
application never contacts the service again.
Nothing is downloaded or installed unless you press the button. If you do, the installer is fetched from this website over HTTPS and its SHA-256 is checked against the digest the server published before the file is given a name anything could run — and that fetch is an ordinary download from this site, so it is recorded like any other, with the IP address, approximate location, browser and operating system described in the website half of this notice.
Usage reporting
From version 0.53.0 there is an anonymous usage report, under Settings → Usage reporting. It is on by default, and you can turn it off — untick that box and reporting stops immediately. One report is sent per launch, describing the session that just finished, and this is the whole of it:
| Sent | Example | Why |
|---|---|---|
| Install identifier | 32 random hex characters | Tells 100 users apart from one user launching 100 times. Generated at random on your machine on first run, deleted when you turn reporting off, and never derived from your hardware, network or name. |
| Application version | 0.56.0 | Whether people update. |
| Operating system and architecture | Windows 10.0.22631, x64 | Which platforms are actually used. |
| Launch count and crash count | 12, 1 | Whether it gets used more than once, and how often it fails. |
| Session length | 3600 seconds | Whether sessions are minutes or hours. |
| SDR model | uhd b200 | Which radios to prioritise. Serial numbers are stripped before sending. |
| Demodulators used, and for how long | WFM: 3000s | Which modes justify further work. |
| Panels opened | map, decoded | Which features are used. |
| Installed plugins | ADS-B 1.0.0 | Which decoders justify further work. |
That is the complete list. It ships with the application as PRIVACY.md, and an
automated test asserts the payload field by field, so a new field cannot be added without that
test failing and both documents being updated. Turning reporting off deletes the install
identifier, so if you ever switch it back on you get a new one that cannot be linked to the old.
Where the usage reports go
To a Cloudflare Worker operated by this project, which writes the counters above to a Cloudflare Workers Analytics Engine dataset. Cloudflare processes it on our behalf and stores it for three months, after which it is gone. Nobody else receives it, it is not sold, rented or shared, and the only thing read back out of it is aggregate counts, through the same password-protected dashboard described further down. The Worker's source is published with the application, so you can read what the receiving end does.
What the application never sends
- Frequencies you tune to. What somebody listens to is the most sensitive thing this software knows, and it is never collected. In the United Kingdom, intercepting a message you are not authorised to receive, or disclosing its contents, is an offence under section 48 of the Wireless Telegraphy Act 2006.
- Anything decoded — pager messages, aircraft, vessels, images, satellite traffic.
- Your position, or the position of anything you receive.
- Your IP address, or any location derived from it. A request necessarily reaches a server from an address, because that is how the internet works; the usage endpoint reads no connection information and writes no request logs.
- Hardware serial numbers. The radio model is useful; the serial identifies your individual radio, and is removed before sending.
- Your name, your machine's name, your user account, or any file path.
The plugin catalogue
The catalogue is contacted only when you press Browse in the plugin panel, and again if you install something. Those requests reach the server hosting the catalogue, which — like any web request — sees the address they came from. No identifier of yours is sent with them. Every download is HTTPS, size-capped, refused on a cross-host redirect, and verified against the sha256 published in the catalogue before it is allowed to become a file.
The browser interface
FoxSDR can serve its interface over HTTP to other machines on your own network. It is off by default and bound to your own machine until you change it; a password is required for any binding beyond that, and without one the wider bind is refused rather than opened. Passwords are stored hashed (PBKDF2-HMAC-SHA256) and sessions are revoked whenever the settings change. There is deliberately no TLS, because the application links no crypto library and will not claim transport security it cannot provide — put a reverse proxy or a private tunnel in front of it, and never port-forward it directly. Anyone you give access to can see and control what the receiver is doing.
The website: what is recorded when you visit
A record is written for each page view and each download whether or not you accept cookies. This is first-party analytics: the data stays on the server that serves this site, it is not shared with an advertising network, and there is no third-party script on the page.
| Recorded | Where it comes from | Needs consent |
|---|---|---|
| Date and time, page requested, HTTP method and protocol | The request | No |
| Your IP address, and a salted hash of it | The connection | No |
| Approximate location: country, region, city, postcode area, timezone, and the coordinates of that city — not of you | IP address, looked up via ip-api.com | No |
| Your network: internet provider, organisation, AS number, and whether the address is a known VPN, datacentre or mobile network | The same lookup | No |
| Browser and version, operating system and version, device type, and whether the request looks like a bot | User-Agent header | No |
Which page sent you here, and any campaign tags on the link
(utm_source and friends) | Referer header and URL | No |
| Preferred languages | Accept-Language header | No |
| Which file you downloaded, its version, how many bytes were sent and whether the transfer finished | The download itself | No |
| Screen and window size, pixel ratio, colour depth | Your browser, reported by this page's script | Yes |
| CPU core count and approximate device memory | The same script | Yes |
| Timezone, language list, dark-mode preference, touch support, platform | The same script | Yes |
| Connection type, estimated downlink speed and round-trip time | The same script | Yes |
| How long the page was visible, how far you scrolled, how many clicks, and which buttons you pressed | The same script | Yes |
What is deliberately not done
- No browser fingerprinting: no canvas, audio, font or WebGL probing, and nothing that tries to re-identify you after you have declined.
- No third-party trackers, advertising pixels, social widgets or analytics services. Nothing on this page loads from another domain.
- No attempt to read your clipboard, your battery, your camera, your microphone, your saved passwords or your browsing history — none of which a download page has any business with.
- Your data is not sold, rented or shared with anyone. The only outbound request the server makes about you is the IP-to-location lookup described above.
If you sign up as a beta tester
The beta form is the only place this site asks you for anything. Submitting it stores your email address, and whichever of these you chose to give: a name or callsign, your platform, the radio you plan to use, your notes, and the list of features you volunteered to test. Alongside it we keep the same visit context described above — approximate location, network, browser and operating system — because a bug report reads very differently depending on the setup it came from.
- The address is used for one thing: contacting you about beta builds and what to test. No newsletter, no marketing, and it is never passed to anyone else.
- It is kept apart from the analytics. Sign-ups live in their own file, readable only by the account running the server; the analytics log records that a sign-up happened and how many features were picked, never who. An automated test fails the build if an address ever reaches the analytics log.
- Signing up again with the same address updates your entry rather than adding a second one.
- Kept until the beta programme ends, or until you ask. One email to the address below removes you and deletes the entry — you do not have to give a reason.
- The lawful basis here is your consent, given by ticking the box; the form does not submit without it.
Cookies
| Cookie | Purpose | Life |
|---|---|---|
fox_consent | Remembers whether you accepted or declined, so you are asked once | 1 year (accepted) / 6 months (declined) |
fox_vid | A random identifier so a return visit is recognised as the same browser. Set only if you accept. | 400 days |
fox_sid | Groups one sitting into a session. Set only if you accept. | 30 minutes of inactivity |
fox_beta | Holds your beta-tester link so you can get back to your own entry. Set only if you sign up as a tester, and only because that is the thing you asked for — it does no measuring, so it is not part of the analytics choice above. Removing yourself clears it. | 400 days |
If you decline, no identifying cookie is set. Visits are then grouped by a daily-rotating hash of your address and browser, which distinguishes visitors for counting purposes and is not usable to follow you between days or between sites. You can change your mind by clearing this site's cookies and reloading.
Why, and on what basis
The purpose is narrow: knowing how many people find this project, roughly where they are, what they run it on, and how many go on to download it. That is what decides whether the work continues and what gets built next.
The server-side records are kept on the basis of legitimate interests in understanding and securing the site. The browser-reported detail and the identifying cookies are kept on the basis of your consent, which is why they are behind the banner and why declining costs you nothing on this site.
How long it is kept, and who sees it
Records are held for 24 months and then deleted. They sit in a file on the server behind a password-protected dashboard that only the project maintainer can open. There are no other recipients and no transfer to a third country beyond the IP lookup already described.
Your rights
If you are in the UK or the EU you can ask for a copy of what is held about you, ask for it to be corrected or erased, or object to it being collected at all — including the server-side records that do not depend on consent. The practical identifier for finding your records is your IP address at the time you visited, so please include it and roughly when you visited.
For the application, the controls are in the software itself: Settings → Usage reporting stops the usage report and deletes the install identifier, and Settings → Updates stops the update check. The reports hold nothing that can be connected to you, so there is nothing to request access to; if you want an install identifier removed from reports already sent, write to the address below and quote it, and it will be deleted.
Write to [email protected]. You can also complain to the Information Commissioner's Office (ico.org.uk) if you think this has been handled badly.
Last updated 20 August 2026. If this notice ever stops matching what the software does, the
software is wrong — the website's collection is implemented in store.go and
app.js, both readable in the site's own source, and the application's own list
ships with it as PRIVACY.md with a test holding the payload to it.