Open Data
- providers
- 85 providers
- criteria
- 158 criteria
- datapoints
- 6,153 datapoints
- sources
- 7,387 sources
Download
Both files are generated from the published database state on every request. They carry the same content in different shapes.
Fully nested: categories, criteria catalogue, providers, datapoints, sources. The right shape for programs.
One row per source, with all master data repeated in every row. The right shape for spreadsheets.
The same data lives at /api/export?format=json and can be linked to directly.
Licence and attribution
The dataset is published under Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA-4.0). You may copy, change and redistribute it, commercially too, under two conditions: attribution and share alike. https://creativecommons.org/licenses/by-sa/4.0/
Attribution
This is how we ask to be named. A link is enough, a screenshot is not.
VPN Matrix (vpn-matrix.com), CC-BY-SA-4.0Share alike
Anyone who changes the dataset or builds on it and publishes the result puts it under the same licence. What was open stays open.
The linked sources
The sources are other people's work. The licence covers our dataset, not the content behind the linked addresses. Anyone quoting from a source follows that source's terms.
The data model
Five tables, and the comparison needs no more. Once you know the shape, every single cell can be traced back to its evidence.
- categories
- Twelve topic blocks, from company and ownership through to the hygiene of the provider's own website. Every category has a key and labels in German and English.
- criteria
- The rows of the matrix. Every criterion has a key in the form category.field, a type (boolean, enum, integer, decimal, money, text, date), the permitted values for enums, plus a label and a help text, both bilingual. Volatile criteria are flagged: they go stale faster than the rest.
- providers
- The columns of the matrix. Slug, name, operating status, kind of service, parent company and website. The slug is stable and works as a key for your own analysis.
- datapoints
- One cell: one provider, one criterion, one value, one confidence level and optionally a note in German and English. If a datapoint is missing or its confidence is unknown, we hold nothing.
- sources
- The evidence for a cell: address, title, retrieval date, kind of evidence and, where available, an archive link. Without at least one source a cell may not carry a value. The import enforces this rule and a test guards it.
The confidence levels
Every cell carries one of four levels. The level says how well the entry is evidenced, never whether the property would be desirable.
Independent source: audit, court, measurement or source code.
confirmed
Only the provider says so, e.g. on their website. Not independently checked.
claimed
Two sources contradict each other. Both are linked.
disputed
No source. Cell stays empty.
unknown
The CSV columns
One row per source. A cell with three sources produces three rows with identical value columns and different source columns. Cells without evidence appear once with empty source columns.
| Column | Meaning |
|---|---|
| provider_slug | Stable identifier of the provider, also part of the profile address. |
| provider_name | Display name of the provider. |
| provider_status | Operating status: active, discontinued, absorbed or announced. |
| provider_kind | Kind of service: classic VPN, browser VPN, relay or anti censorship tool. |
| parent_company | Parent company or holding, empty when none is recorded. |
| category_key | Key of the category, for example logging. |
| criterion_key | Key of the criterion, for example logging.activity_logs. |
| criterion_label_de | Label of the criterion in German. |
| criterion_label_en | Label of the criterion in English. |
| criterion_type | Type of the value: bool, enum, int, decimal, money, text or date. |
| value | The value itself, unformatted and language neutral. |
| confidence | Confidence level: confirmed, claimed, disputed or unknown. |
| note_de | Editorial note in German, usually placing the value in context. |
| note_en | Editorial note in English. |
| source_url | Address of the source. |
| source_title | Title of the source, where recorded. |
| source_kind | Kind of evidence: vendor document, audit, court, press, terms of service, measurement or other. |
| source_retrieved_at | Retrieval date. Without it the source would be worthless. |
| source_archive_url | Archive copy, so the evidence survives a quiet edit at the other end. |
Programming interface
Besides the files there are endpoints for a single provider profile, a single cell with its history, and the full export. No key, no registration, open cross origin access for third party applications.
For language models a machine readable summary of the project, the licence and the endpoints lives at /llms.txt.
What the dataset does not contain
No score, no ranking, no winner. There is no field for an overall judgement, and there will not be one. Ratings would be easy to steer; sourced claims less so.
No user data. The export contains editorial statements about providers only, no accounts, no pending suggestions, no addresses.
No completeness. Many cells are empty because we lack a source. Gaps stay gaps and are not filled with assumptions.