Core Concepts
Cortex is a small number of ideas that combine in flexible ways. Understanding them up front will save you a lot of guesswork when you read the API.
Architecture
The services, the event pipeline and how a spoken word becomes a webhook.
Sessions & Gatherings
Two “meeting-like” entities that are easy to confuse — when to use each.
Users & Participants
How speakers in a room map to identities, and how transcripts get attributed.
Authentication
API keys, JWTs, project binding and the scope catalog.
Multi-Tenancy & Projects
How tenants and projects scope every resource, and how isolation works.
The 30-second model
- A project is your top-level unit — the same 4Players project you use for Voice, Rooms and Fleet. Everything in Cortex is scoped to a project.
- A session is a live transcription of one ODIN Voice room. While it runs, a headless
bot captures audio and posts back messages (transcribed utterances), each
attributed to a participant. When it stops, it records the time in
endedAt. - Plugins analyze those messages (e.g. toxicity, summaries) and attach annotations. Sanctions record moderation actions.
- A gathering is an optional coordination layer — a lobby, an appointment or an open space — that organizes people before and during a session.
- Every meaningful change emits a domain event, which you can receive over webhooks, Server-Sent Events, or serverless functions.
- Your code reaches all of this with an API key that is bound to a project and limited
by scopes — or, inside a serverless function, through the pre-authenticated
ctx.cortex.
Read on for the details, or jump straight to the Getting Started guide.