Neurable · Authentication Profile

Neurable Authentication

Authentication

Neurable secures its APIs with oauth2 and openIdConnect across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).

neurotechnologybrain-computer-interfaceeegneurosciencewearablesbiosignalshardwareconsumer-electronicsresearch-toolscognitive-analyticshealth-dataoauthopenid-connect
Methods: oauth2, openIdConnect Schemes: 2 OAuth flows: authorizationCode, clientCredentials API key in:

Security Schemes

openIdConnect openIdConnect
oauth2 oauth2
· flows: authorizationCode, clientCredentials, refreshToken

Source

Authentication Profile

Raw ↑
generated: '2026-08-04'
method: probed
source: https://pipe.neurable.com/.well-known/openid-configuration (HTTP 200) + https://pipe.neurable.com/.well-known/jwks.json (HTTP 200) + openapi/_original/neurable-pipe-openapi.json
docs: null
summary:
  types:
  - oauth2
  - openIdConnect
  oauth2_flows:
  - authorizationCode
  - clientCredentials
  api_key_in: []
  spec_declares_security_schemes: false
notes: >-
  Neurable publishes no public authentication documentation. This profile was probed live: the
  pipe service at pipe.neurable.com serves a complete OpenID Connect Discovery document and a
  JWKS, and its own OpenAPI describes the /oauth/authorize, /oauth/token, /oidc/userinfo and
  /.well-known/jwks.json operations. IMPORTANT GAP — none of the three published Neurable
  OpenAPI documents declares a components.securitySchemes block, and no operation carries a
  security requirement, even though the Analytics Service tags five of its six operations
  "protected". The auth model therefore has to be inferred from the discovery document rather
  than read off the contract.
schemes:
- name: openIdConnect
  type: openIdConnect
  openIdConnectUrl: https://pipe.neurable.com/.well-known/openid-configuration
  issuer: https://pipe.neurable.com
  description: >-
    The pipe service is the Neurable identity provider. It advertises OIDC Discovery metadata
    with an issuer of https://pipe.neurable.com, RS256-signed ID tokens, and the standard
    iss/sub/aud/exp/iat/nonce/email claims. claims_parameter_supported is false.
  endpoints:
    authorization_endpoint: https://pipe.neurable.com/oauth/authorize
    token_endpoint: https://pipe.neurable.com/oauth/token
    userinfo_endpoint: https://pipe.neurable.com/oidc/userinfo
    jwks_uri: https://pipe.neurable.com/.well-known/jwks.json
  id_token_signing_alg_values_supported:
  - RS256
  subject_types_supported:
  - public
  claims_supported:
  - iss
  - sub
  - aud
  - exp
  - iat
  - nonce
  - email
  sources:
  - well-known/neurable-pipe-openid-configuration.json
- name: oauth2
  type: oauth2
  description: >-
    OAuth 2.0 authorization server co-located with the OIDC provider. The /oauth/authorize
    operation makes code_challenge and code_challenge_method REQUIRED query parameters, so PKCE
    is mandatory on the authorization-code flow, and it also requires an explicit `audience`
    parameter (RFC 8707-style resource targeting). Public clients are supported —
    token_endpoint_auth_methods_supported includes "none" alongside client_secret_post.
  flows:
  - flow: authorizationCode
    authorization_endpoint: https://pipe.neurable.com/oauth/authorize
    token_endpoint: https://pipe.neurable.com/oauth/token
    pkce: S256
    pkce_required: true
    required_parameters:
    - client_id
    - redirect_uri
    - response_type
    - code_challenge
    - code_challenge_method
    - scope
    - audience
    scopes:
    - demos:all:read
    - demos:prime:read
    - session:stream:create
    - openid
    - email
  - flow: clientCredentials
    token_endpoint: https://pipe.neurable.com/oauth/token
    note: >-
      Advertised in grant_types_supported. The token endpoint's request body schema
      (Body_post_oauth_token_oauth_token_post) is served as
      application/x-www-form-urlencoded.
  - flow: refreshToken
    token_endpoint: https://pipe.neurable.com/oauth/token
    note: refresh_token appears in grant_types_supported.
  response_types_supported:
  - code
  token_endpoint_auth_methods_supported:
  - none
  - client_secret_post
  sources:
  - well-known/neurable-pipe-openid-configuration.json
  - openapi/neurable-pipe-service-openapi.yml
unauthenticated_surface:
- operation: create_headset_license_open_headset_license_post
  method: POST
  path: /open/headset/license
  host: https://analytics-service.neurable.com
  note: >-
    Tagged "open" (as opposed to the "protected" tag on every other Analytics Service
    operation), which is the only in-spec signal that it is reachable without a token. It
    issues an HMAC-signed HeadsetLicense keyed to a device serial_number + firmware_uuid; the
    documented error enum (SERIAL_NUMBER_UNAUTHORIZED, SERIAL_NUMBER_ALREADY_ISSUED) shows
    authorization is enforced on the serial number rather than on a caller credential.
  probed: not exercised — no request was sent to this endpoint.
cross_links:
  scopes: scopes/neurable-scopes.yml
  conventions: conventions/neurable-conventions.yml
  conformance: conformance/neurable-conformance.yml
  well_known: well-known/neurable-well-known.yml