Odyssey · Authentication Profile

Odyssey Authentication

Authentication

Odyssey secures its APIs with apiKey and bearer-jwt across 3 declared security schemes, as derived from its OpenAPI definitions.

CompanyArtificial IntelligenceWorld ModelsGenerative AIVideo GenerationMachine LearningReal-Time StreamingSDKWebRTC
Methods: apiKey, bearer-jwt Schemes: 3 OAuth flows: API key in: sdk-constructor

Security Schemes

apiKey apiKey
clientCredentials bearer-jwt
scheme: bearer
spectatorToken bearer-jwt
scheme: bearer

Source

Authentication Profile

odyssey-authentication.yml Raw ↑
generated: '2026-07-20'
method: searched
source: https://documentation.api.odyssey.ml/client-credentials
docs: https://documentation.api.odyssey.ml/api-quick-start
summary:
  types: [apiKey, bearer-jwt]
  api_key_in: [sdk-constructor]
  oauth2_flows: []
  note: >-
    No OpenAPI is published (the surface is a WebRTC/WebSocket streaming SDK), so
    this profile is captured from the documentation rather than derived from a
    spec.
schemes:
- name: apiKey
  type: apiKey
  description: >-
    Server-side API key, prefixed `ody_`, obtained from the developer dashboard.
    Passed to the SDK constructor (`new Odyssey({ apiKey: 'ody_...' })` /
    `Odyssey(api_key='ody_...')`). Must stay server-side; never shipped to a browser.
  key_prefix: "ody_"
  issued_at: https://developer.odyssey.ml/dashboard
- name: clientCredentials
  type: bearer-jwt
  scheme: bearer
  bearerFormat: JWT
  description: >-
    Browser/edge connection pattern. The server mints a short-lived session token
    with `createClientCredentials()`; the browser connects with
    `connectWithCredentials()` and never sees the API key. The returned
    `session_token` is a JWT locked to a single `session_id`.
  token_lifetime_seconds: 600
  token_refresh: false
  fields: [session_id, signaling_url, session_token, expires_in, capabilities]
- name: spectatorToken
  type: bearer-jwt
  scheme: bearer
  bearerFormat: JWT
  description: >-
    View-only Broadcast credential (`spectator_token`) that lets many viewers
    watch one shared stream via `connectToStream()` without interaction rights.
  source: https://documentation.api.odyssey.ml/broadcast