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, drillKey })│  live roleplay call
  │ (@useathos/sdk) │        session.connect() ───────────────────▶ │  (persona speaks)
  └─────────────────┘                                              │
                                                                    │ (4) call is scored
  ┌─────────────────┐                                              ▼
  │   Your backend  │ ◀──(5) POST call.scored (signed) ──────────  │
  │  (webhook URL)  │ ──(6) GET /v1/calls/:callId ───────────────▶ │  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/:callId.

Two kinds of credentials

Your backend holds a secret, long-lived API key. The browser gets a short-lived session token your backend mints with it, good for one call. The browser never sees the API key. See Authentication.

Start here

On this page