{"openapi":"3.1.0","info":{"title":"Neuroencoder API","description":"EEG embeddings from the EPI-300K foundation model. Auth: `Authorization: Bearer $NEUROENCODER_API_KEY`. Python: `pip install neuroencoder`; `Neuroencoder().embeddings.create(input=eeg, sfreq=256, channel_names=[...])`. Research use only; not a medical device.","version":"1.0.0"},"paths":{"/v1/signup":{"post":{"summary":"Self-serve trial key: email a single-use link","operationId":"signup_v1_signup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/verify":{"get":{"summary":"Signup link landing page (the key is only issued by the POST)","operationId":"verify_page_v1_verify_get","parameters":[{"name":"t","in":"query","required":false,"schema":{"type":"string","default":"","title":"T"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Exchange a signup token for the key (shown once)","operationId":"verify_v1_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/me":{"get":{"summary":"This key: tier, limits, usage this month","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/models":{"get":{"summary":"Models","operationId":"models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/embeddings":{"post":{"summary":"Embed an EEG recording","description":"One 768-d L2-normalised embedding per 30 s window. Send an EDF/BDF/FIF/NPY file as multipart (`file`, plus `metadata` JSON with sfreq/channel_names for .npy), or JSON with `input` (channels x samples, list or base64 float32 + `shape`), `sfreq`, `channel_names` (10-20 labels), `stride_seconds` (default 1.0), `encoding_format` (float | base64). Deterministic; nothing is stored.","operationId":"embeddings_v1_embeddings_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_embeddings_v1_embeddings_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Body_embeddings_v1_embeddings_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"Body_embeddings_v1_embeddings_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}