Skip to main content

REST API

Everything in Cortex is a REST API call. The TypeScript SDK is a convenience layer over this exact API — so if you work in a language without an official SDK, you can build your own client against it with no loss of capability.

Open the interactive REST reference

Base URL

https://ots.odin.4players.io/api

All endpoints are served under the /api prefix.

Authentication

Send credentials on every request. Two mechanisms are relevant to integrators:

API key (server-to-server) — either header form works:

X-API-Key: ots_live_xxxxxxxxxxxxxxxxxxxx
Authorization: ApiKey ots_live_xxxxxxxxxxxxxxxxxxxx

JWT bearer token (dashboard/user sessions):

Authorization: Bearer eyJhbGciOi...

Create and scope API keys in the dashboard. See Authentication for the full picture (including scopes).

Conventions

  • Project scoping — most resources live under a project: /api/projects/{projectId}/sessions, /api/projects/{projectId}/gatherings, and so on. See Multi-Tenancy & Projects.
  • JSON — request and response bodies are application/json.
  • Create / update / delete carry identifiers in the path and payloads in the body; GET endpoints use query parameters for optional filtering and pagination.
  • Errors use standard HTTP status codes — 401/403 for auth, 404 for missing resources, 422 for validation, 429 for rate limits. The SDK maps these to typed errors.

Endpoint groups

The reference is organized by resource. The main groups:

GroupWhat it covers
SessionsCreate, start, stop and read transcription sessions and their messages
MessagesTranscripts for a session (and debug audio)
ParticipantsPer-project speaker identities
GatheringsLobbies, appointments and open spaces; members and invitations
SanctionsModeration actions and their audit trail
Plugins / Plugin InstancesThe plugin catalog and per-project activations
FunctionsServerless function settings, versions and deployment
WebhooksEvent subscriptions and the delivery log
EventsThe real-time event stream (SSE)
API Keys / App Settings / Voice / AuthAccount, project configuration and tokens

Building your own client

The reference is generated directly from the Cortex OpenAPI specification, so it’s an exact, machine-readable contract. You can:

  • Point a generator (OpenAPI Generator, openapi-typescript, etc.) at the spec to scaffold a client in your language.
  • Use the “Try it” console on each endpoint page to experiment with live requests.

The spec is available at https://ots.odin.4players.io/api/docs-json.

Real-time

For live updates, the API exposes a Server-Sent Events stream rather than requiring you to poll. See Events & Real-time — and note the SDK’s watch() builds on it for you.