Menu

Chambr API

A quickstart, guides and the API reference for sending calls to Chambr to be scored.

Get an API key

An admin creates keys in Chambr under Real Call Scoring, API access.

How keys work
Base URL
https://api.staging.chambr.ai/v1

The API address for this environment.

Authentication
Authorization: Bearer chambr_sk_...

Send your key on every request.

On this page

Send finished sales calls from Salesforce, middleware or your own systems to Chambr. Chambr scores them against your scorecards.

  • You send the transcript. Chambr does not transcribe audio; a recording is for playback only.
  • The API returns an id, a status and an app_url. It never returns scores: people view results in Chambr.

Base URL: https://api.staging.chambr.ai/v1 (alias https://app.staging.chambr.ai/api/v1, identical). The OpenAPI document is the full contract.

Before you start

Check Where
Real Call Scoring is enabled for your account Ask your Chambr contact
The team has a default scorecard or a scorecard rule Real Call Scoring, Scorecard rules
Reps have signed in to Chambr at least once Chambr
An admin can create an API key API keys and authentication

There is no test mode. Every call you send is a real call in your account. A manager removes a test call in Chambr: open the call, then Remove call.

Quickstart

Send a call without a rep. Chambr files it under the API key's team.

export CHAMBR_API=https://api.staging.chambr.ai/v1
export CHAMBR_KEY=chambr_sk_...

curl -sS --max-time 60 "$CHAMBR_API/calls" \
  -H "Authorization: Bearer $CHAMBR_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "external_id": "quickstart-001",
  "provider": "quickstart",
  "occurred_at": "2026-09-28T15:02:14Z",
  "call_type": "discovery",
  "transcript": {
    "rep_speaker": "Sarah",
    "segments": [
      { "speaker": "Dana", "text": "Morning. I have about twenty minutes." },
      { "speaker": "Sarah", "text": "Understood, I will keep it tight. What prompted the call?" },
      { "speaker": "Dana", "text": "Our carrier costs went up twelve percent this quarter." },
      { "speaker": "Sarah", "text": "Which lanes are hurting the most?" },
      { "speaker": "Dana", "text": "Mostly the Midwest runs into Chicago." },
      { "speaker": "Sarah", "text": "Could we look at your last three months of those lanes together next week?" }
    ]
  }
}
JSON

Chambr returns 202:

{
  "id": "6f1c2b0e-8a4d-4c1e-9d55-0d6c7b1e2a90",
  "object": "call",
  "external_id": "quickstart-001",
  "provider": "quickstart",
  "status": "queued",
  "created": true,
  "attribution": { "rep_source": "api_key_owner", "speaker_source": "rep_speaker" },
  "recording_attached": false,
  "app_url": "https://app.staging.chambr.ai/t/3a1d9c52-.../real-calls/6f1c2b0e-..."
}

Check its status. Scoring takes minutes.

curl -sS "$CHAMBR_API/calls/6f1c2b0e-8a4d-4c1e-9d55-0d6c7b1e2a90" \
  -H "Authorization: Bearer $CHAMBR_KEY"
{
  "id": "6f1c2b0e-8a4d-4c1e-9d55-0d6c7b1e2a90",
  "object": "call",
  "external_id": "quickstart-001",
  "provider": "quickstart",
  "status": "scored",
  "skip_reason": null,
  "rep": { "email": "admin@yourcompany.com" },
  "call_type": "discovery",
  "has_recording": false,
  "attribution": { "rep_source": "api_key_owner", "speaker_source": "rep_speaker" },
  "occurred_at": "2026-09-28T15:02:14.000Z",
  "created_at": "2026-09-28T15:40:02.000Z",
  "app_url": "https://app.staging.chambr.ai/t/3a1d9c52-.../real-calls/6f1c2b0e-..."
}

Running the same request again returns 200 with the same id. See Idempotency.

Next steps