Neuro Decode
POST /api/v1/neuro/decode
Send raw EEG payloads from consumer or clinical headsets. Pi decodes the intended action or character, returns optional predictive text, and surfaces an alternative intent ranking — all in a single async job.
Request
Body parameters
The EEG payload and device metadata.
Optional JSON context for the decoding session. Include
session_history (array of prior intents or selected letters) for multi-turn spelling or sentence completion. Must serialize to at most 16,000 characters.Response
Returns202 Accepted. An optional Idempotency-Key header is supported; scope is neuro_decode.
Polling for results
include=diagnostics to inspect routing fallbacks and MetaBCI step timing.
Completed job output
The primary decoded intent, e.g.
"move_left", "select_row_3", "letter_H".Confidence score for
decoded_intent between 0 and 1.The paradigm classification applied during decoding.
Optional sentence completion or phrase acceleration text (mind-to-speech use case).
Ranked alternative intents. Each item includes
intent and confidence.Summary of multi-turn session state echoed back to the client for context continuity.
Seizure flag from the MetaBCI sidecar when configured.
null when the sidecar is unavailable.Warning signals that should surface in your UI or trigger a safety interlock.
Mandatory probabilistic disclaimer text.
Use cases
Thought-to-action (smart home / wheelchair) Setparadigm to "motor_imagery". Map decoded_intent values to your action layer (MQTT topics, ROS commands, smart home scenes). Use alternatives to power confidence UI.
Mind-to-spelling / P300
Set paradigm to "p300". Pass the running letter sequence in context.session_history. decoded_intent returns the selected symbol; predicted_text accelerates phrase completion.
SSVEP target selection
Set paradigm to "ssvep". decoded_intent returns the target id or frequency label; use alternatives to highlight competing UI targets.
Error codes
| Code | HTTP | Description |
|---|---|---|
neuro_decode_disabled | 403 | NEURO_DECODE_ENABLED=false in server environment |
invalid_request_body | 400 | Schema validation failed |
job_create_failed | 500 | Database insert failed |
job_trigger_failed | 502 | Background worker not reachable |