Open Data

The full dataset is available for download, no account, no API key, only the licence terms. That way entries can be rechecked or refuted without asking us first.
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.

JSON

Fully nested: categories, criteria catalogue, providers, datapoints, sources. The right shape for programs.

CSV

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.0

Share 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.

confirmed

Independent source: audit, court, measurement or source code.

confirmed

provider claim

Only the provider says so, e.g. on their website. Not independently checked.

claimed

disputed

Two sources contradict each other. Both are linked.

disputed

unknown

No source. Cell stays empty.

unknown

In detail in the methodology

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.

ColumnMeaning
provider_slugStable identifier of the provider, also part of the profile address.
provider_nameDisplay name of the provider.
provider_statusOperating status: active, discontinued, absorbed or announced.
provider_kindKind of service: classic VPN, browser VPN, relay or anti censorship tool.
parent_companyParent company or holding, empty when none is recorded.
category_keyKey of the category, for example logging.
criterion_keyKey of the criterion, for example logging.activity_logs.
criterion_label_deLabel of the criterion in German.
criterion_label_enLabel of the criterion in English.
criterion_typeType of the value: bool, enum, int, decimal, money, text or date.
valueThe value itself, unformatted and language neutral.
confidenceConfidence level: confirmed, claimed, disputed or unknown.
note_deEditorial note in German, usually placing the value in context.
note_enEditorial note in English.
source_urlAddress of the source.
source_titleTitle of the source, where recorded.
source_kindKind of evidence: vendor document, audit, court, press, terms of service, measurement or other.
source_retrieved_atRetrieval date. Without it the source would be worthless.
source_archive_urlArchive 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.

To the API documentation

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.

Found a mistake

Contradictions and outdated entries are welcome, ideally with a source. Every accepted change appears in the public changelog.