Athos Developer Docs

Overview

Embed live AI roleplay calls and pull scored-call data into your own product.

Athos lets your reps practice live sales calls against AI personas — and automatically transcribes and scores each one. This documentation is for engineers integrating Athos into their own product.

What you get

How it fits together

A roleplay call flows through three surfaces — your backend, the browser SDK, and the Athos API — and finishes with a webhook back to your backend:

  ┌─────────────────┐                                    ┌──────────────────────┐
  │   Your backend  │ ──(1) POST /v1/session ──────────▶ │      Athos API       │
  │  (holds API key)│ ◀──────── { token } ────────────── │                      │
  └────────┬────────┘                                    └──────────┬───────────┘
           │ (2) hand token to the browser                          │
           ▼                                                        │
  ┌─────────────────┐                                              │
  │  Your frontend  │ ──(3) AthosRoleplay.create({ token }) ──────▶ │  live roleplay call
  │ (@useathos/sdk) │        session.connect()                     │  (agent speaks)
  └─────────────────┘                                              │
                                                                    │ (4) call is scored
  ┌─────────────────┐                                              ▼
  │   Your backend  │ ◀──(5) POST call.scored (signed) ──────────  │
  │  (webhook URL)  │ ──(6) GET /v1/calls/:id ───────────────────▶ │  full score + transcript
  └─────────────────┘                                              └──────────────────────┘
  1. Your backend exchanges its API key for a short-lived session token (POST /v1/session).
  2. You hand that token to the browser.
  3. The SDK redeems it and starts the live call — the AI persona speaks to your rep.
  4. When the call ends, Athos transcribes and scores it.
  5. Athos sends your backend a signed call.scored webhook.
  6. Your backend fetches the full score + transcript with GET /v1/calls/:id.

Two kinds of credentials

CredentialWho holds itUsed for
API key (ath_live_…)your backend, secretmint sessions, read calls — all server-to-server
Session token (JWT)the browser, short-lived & single-useone live roleplay call, via the SDK

The browser never sees your API key. See Authentication.

Start here

The SDK supports desktop Chrome, Edge, and Firefox only. Safari (desktop and iOS) and all mobile browsers are unsupported. Detect ahead of time and prompt the user to switch — see Browser support.

On this page