# BCI Report data API: static JSON and CSV at stable URLs

Data API

There is no server to query: every published result is a static file, the same bytes the pages are built from. Fetch them directly, verify them against the SHA-256 on the releases page, and cite the release you used.

## How it works

### Stable URLs

Every file lives at https://bci.report/data/<file>. A file is only ever replaced by a reviewed release, and the releases page gives the SHA-256 of the bytes currently served.

### No key, no account

Plain HTTPS GET. Static files behind a CDN; no rate limit is promised, so cache what you use.

### Licence

The aggregate results are CC BY 4.0. The recordings they were computed from belong to their authors and keep their own terms — each dataset page names them.

### Mirror

The same files are on Hugging Face as the dataset Twu31/bci-report, with the per-protocol tables merged into loadable configurations.

## Files

| File | What it holds | Release |
| --- | --- | --- |
| [`context-update.json`](https://bci.report/data/context-update.json) | Screen-to-VR P300 transfer, treadmill walking speed beside a movement-nuisance comparator, and the asynchronous SSVEP non-control pilot, with audits. | [`context-update-20260927`](https://bci.report/releases/#context-update-20260927) |
| [`clinical-update.json`](https://bci.report/data/clinical-update.json) | Parkinson's disease vs. controls from resting-state EEG (ds004584) beside an age-and-sex-only comparator, the claim boundary, and status-only sources. | [`clinical-update-20260923`](https://bci.report/releases/#clinical-update-20260923) |
| [`evidence-update.json`](https://bci.report/data/evidence-update.json) | In-ear vs. scalp sleep staging (EESM23), four vs. sixteen electrodes (Alpha Waves), and the physical head phantom, each with its rights record. | [`evidence-update-20260922`](https://bci.report/releases/#evidence-update-20260922) |
| [`deployment-topics.json`](https://bci.report/data/deployment-topics.json) | Deployment topics: dry vs. wet sensor transfer, calibration budget, movement (SSVEP and ERP) and pretraining controls — measurements, paired contrasts, seed sensitivity and dataset citations. | [`deployment-topics-20260920-v1`](https://bci.report/releases/#deployment-topics-20260920-v1) |
| [`experiments.json`](https://bci.report/data/experiments.json) | The core matrix: every protocol with each method’s score, interval, cohort, electrode count, training mode and limitations, plus the model and dataset directories. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`mi-rest-results.csv`](https://bci.report/data/mi-rest-results.csv) | Motor imagery & rest: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`mi-rest-protocol.json`](https://bci.report/data/mi-rest-protocol.json) | Motor imagery & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`idle-results.csv`](https://bci.report/data/idle-results.csv) | Idle & command: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`idle-protocol.json`](https://bci.report/data/idle-protocol.json) | Idle & command: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`beta-8ch-results.csv`](https://bci.report/data/beta-8ch-results.csv) | SSVEP · 8 channels: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`beta-8ch-protocol.json`](https://bci.report/data/beta-8ch-protocol.json) | SSVEP · 8 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`beta-4ch-results.csv`](https://bci.report/data/beta-4ch-results.csv) | SSVEP · 4 channels: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`beta-4ch-protocol.json`](https://bci.report/data/beta-4ch-protocol.json) | SSVEP · 4 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`arithmetic-rest-results.csv`](https://bci.report/data/arithmetic-rest-results.csv) | Arithmetic & rest: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`arithmetic-rest-protocol.json`](https://bci.report/data/arithmetic-rest-protocol.json) | Arithmetic & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`p300-target-results.csv`](https://bci.report/data/p300-target-results.csv) | P300 target ERP: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`p300-target-protocol.json`](https://bci.report/data/p300-target-protocol.json) | P300 target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`semantic-target-results.csv`](https://bci.report/data/semantic-target-results.csv) | Semantic target ERP: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`semantic-target-protocol.json`](https://bci.report/data/semantic-target-protocol.json) | Semantic target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`sleep-scalp-results.csv`](https://bci.report/data/sleep-scalp-results.csv) | Sleep staging: one row per method — score, interval, secondary metric, cohort and compute time. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |
| [`sleep-scalp-protocol.json`](https://bci.report/data/sleep-scalp-protocol.json) | Sleep staging: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | [`research-preview-20260920`](https://bci.report/releases/#research-preview-20260920) |

[Releases, with SHA-256 of every file →](https://bci.report/releases/)

## Examples

### Shell

```
curl -sO https://bci.report/data/experiments.json
curl -s https://bci.report/data/context-update.json | jq '.results | keys'
```

### Python

```
import pandas as pd, requests

matrix = requests.get("https://bci.report/data/experiments.json", timeout=30).json()
for track in matrix["tracks"]:
    print(track["id"], track["chanceLevel"], len(track["rows"]))

mi_rest = pd.read_csv("https://bci.report/data/mi-rest-results.csv")
```

### Hugging Face datasets

```
from datasets import load_dataset

results = load_dataset("Twu31/bci-report", "results")  # also: topics, contrasts, seed_sensitivity
```

## Cite

Cite the site and the release you used (the current one is context-update-20260927), and the upstream dataset each figure was computed on.

```
@misc{bcireport,
  title        = {BCI Report: public EEG decoding results reported with their protocol},
  author       = {{BCI Report}},
  year         = {2026},
  howpublished = {\url{https://bci.report}},
  note         = {Release context-update-20260927}
}
```

[Upstream datasets and their credits →](https://bci.report/datasets/)

## For agents and crawlers

- /llms.txt — an index of every page with its short answer
- Every page has a Markdown copy: add index.md to its URL (e.g. /topics/dry-vs-wet/index.md)
- /sitemap.xml — every page, both languages, with last-modified dates

---
Markdown copy of https://bci.report/api/, generated from the published page. Figures are aggregate results; terms of use: https://bci.report/data-use/
