Update Checks & Telemetry
Effective July 23, 2026
This page explains exactly what the self-hosted, open-source edition of sparQ sends over the network, and what our servers record. sparQ is built in the open, and so is this.
We do not collect or store any information that identifies you, your organization, or your installation. The update check carries no persistent identifier, and nothing it sends can be connected back to a specific person or install.
1. What sparQ Sends
About once a day, a self-hosted sparQ instance makes a single HTTPS request to the sparQ update service (https://www.gosparq.com/api/v1/check) to find out whether a newer or security-related release is available. To let the service return compatible update information, the request includes a small, non-identifying description of the software and its environment:
{
"product": "sparq",
"sparq_version": "1.2.0",
"edition": "community",
"operating_system": "linux",
"architecture": "x86_64",
"runtime_version": "python3.12.3",
"locale": "en-US",
"installed_modules": [
{"name": "core", "version": "1.0"},
{"name": "tasks", "version": "1.0"}
]
}
The request does not include any of the following:
| Sent | Never sent |
|---|---|
| sparQ version and edition; operating system, architecture, runtime version, and locale; the names and versions of installed sparQ modules | Usernames, email addresses, customer or organization names, repository names or URLs, source code or file contents, commits, pull requests or developer activity, hostnames, full IP addresses, credentials, and any persistent installation identifier |
The service responds with the latest and minimum-supported version and whether an update is available; your instance logs a notice if it is behind. Instances running sparQ 1.1.x use an older endpoint (/api/latest-version) that sends no payload at all and only receives the latest version number.
2. What We Record
We keep per-day aggregate counts of the environment facts above — for example, how many checks reported a given sparQ version or operating system — to understand which releases remain in use, maintain security, and plan compatibility support. Because there is no installation identifier, we cannot distinguish one instance from another or link a check across days, so these are aggregate counts, not a measure of unique installations.
| Recorded | Not recorded |
|---|---|
| Per-day counts of the reported version, edition, OS, architecture, runtime, locale, and modules; a coarse /16 network prefix and approximate country/region/city (see below) | Full IP addresses, instance or device identifiers, hostnames, organization or repository names, usage data, or any content |
3. IP Addresses
As with any internet request, your network address is briefly visible to our infrastructure while it responds. Before anything is stored, we truncate it to a coarse network prefix — for IPv4 we keep only the first two octets (a /16, e.g. 203.0), dropping the host portion; IPv6 is truncated comparably. The full address is never written to our application storage and is not used to identify installations, track individuals, or build marketing profiles. An approximate country/region/city is derived from an offline lookup for a rough geographic breakdown and recorded once per prefix.
4. How to Disable It
The update check is enabled by default and can be turned off at any time. Set this environment variable before starting sparQ:
SPARQ_UPDATE_CHECK=false
When disabled, sparQ makes no outbound request at all — appropriate for air-gapped or restricted environments. Disabling the check may prevent your installation from receiving security and compatibility notices. You can also point the check at your own endpoint with SPARQ_CHECK_URL.
5. Source Code
The client-side check is open source and auditable at system/update_check.py, so you can verify exactly what your instance sends. The receiving endpoint is operated by remarQable; what we do with the request is described above.
6. Changes to This Page
If we ever change what the update check sends or what we record, we will update this page and note it in the changelog before the change ships.
7. Contact
Questions about update checks or telemetry:
remarQable LLC
Email: dev@remarqable.io