Skip to content
Dydema EEG API

Describe the task.
Label a few trials.

Wizard is Dydema’s mixture model for EEG classifiers. It tests licensed pretrained models on your own labeled trials and hosts the one that does best as your classifier. New trials come back labeled.

  • Any 10-10 or 10-20 layout, any sampling rate, any trial length.
  • ERP, motor imagery and movement, and sleep staging; other tasks are tested on your data.
  • The choice is measured on your labels, and every score is in the response.

Research use only. Not a medical device.

POST /v1/task-models · illustrative
curl -sS https://dydema--eegapi-gateway.modal.run/v1/task-models \
  -H "Authorization: Bearer $DYDEMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Motor imagery: imagined left-hand vs right-hand movement, 0-4 s after the cue",
    "labels": ["left", "right", "left", …],
    "x": [[[...]]],
    "sampling_rate_hz": 250,
    "units": "uV",
    "channels": ["C3", "Cz", "C4", "FC3", "FC4", "CP3", "CP4", …]
  }'
View example responses
201 Created, then a prediction · abbreviated
{
  "object": "task_model",
  "id": "clf_…",
  "status": "active",
  "classes": ["left", "right"],
  "training_report": {
    "balanced_accuracy": …,
    "chance": 0.5
  }
}

POST /v1/task-models/clf_…/predictions
{
  "object": "list",
  "data": [{ "object": "classification", "index": 0, "label": "right",
             "probabilities": { "left": 0.21, "right": 0.79 } }]
}

Signal values are omitted here. Run the complete example →

How it works

Send what you recorded. Get a classifier chosen on your data.

01

Send the trials you have

One epoch per trial, cut around your own event markers, with a label for each. Any sampling rate and any 10-10 or 10-20 layout, in any order. The API matches channels by name, resamples, and says in the response what it did.

Fp1Fp1Fp2Fp2F7F7F3F3FzFzF4F4F8F8T7T7C3C3CzCzC4C4T8T8P7P7P3P3PzPzP4P4P8P8O1O1O2O2
The 19 sites of the 10-20 layout; task models take any 10-10 or 10-20 subset
02

Describe the task; your data decides

Wizard reads your description and the dataset's shape, never the signal, and selects licensed pretrained models or classical methods that fit it. Each is fitted and scored on your own trials; the best held-out score wins, and the training report comes back in the response.

03

Label new trials, and know what it cost

The task model is hosted with its own prediction route: each new trial comes back with a label and the probability of every class. Every response says what it cost, and the dashboard lists your task models with their measured accuracy.

Wizard

Wizard selects compatible methods for your task and compares them on your labeled trials, retaining reference evidence when labels are scarce. The selected model is pinned to its exact version. Emotion recognition and clinical uses are refused. Research use only.

Methods
Selected automatically for your task, channels and available evidence.
Input
Reads the task description and the dataset's shape, never the signal.
Selection
Each method validated on your trials; the best is refitted on all of them.
Output
Held-out and cross-validated accuracy; a label and class probabilities per trial.
The routes
POST /v1/task-models

Create a task model

A task description and labeled trials in; a hosted task model out, with a validation report.

POST /v1/task-models/{id}/predictions

Label new trials

Trials in; one label and the probability of every class per trial out, from a pinned model version.

PATCH · DELETE /v1/task-models/{id}

Expire or delete

Set or clear an expiry, rename, or stop hosting; also on the dashboard.

Pricing

Pay to create, then to host.

A one-time create fee ($1.00) includes the whole fit. Hosting is $1.00 a month per model, with an optional expiry. Predictions are billed per window ($0.003). No request or compute fees.

One task model

$1.00 once · $1.00 / month · $0.003 / window

USD, effective 2026-09-23. Test keys pay nothing.

Start

Fit your first task model.

Sign in, create a key, send labeled trials.

Need higher limits or a custom agreement? info@dydema.com