Skip to main content

Introduction

The Conference Call Transcripts API gives you programmatic access to corporate earnings and conference calls — the full text transcript, the audio, an AI-generated summary, and structured speaker data — for both live calls as they happen and completed calls from the archive. Every call is transcribed in real time. From the moment a call goes live you can:
  • Read it as it’s spoken — sentence-by-sentence transcript chunks pushed over WebSocket.
  • Listen to it live — an HLS audio stream that becomes available at the call’s start time.
  • Fetch the finished product — the complete transcript, MP3 audio, AI summary, sentiment, and identified participants once the call ends.
There are two ways to consume the data, and most integrations use both together:

WebSocket — live

Subscribe to tickers and receive live transcript sentences and the live audio link the moment a call starts. Push-based, no polling.

REST — on demand

Fetch any call (live or completed) by ID or list them with filters. Returns the full transcript, audio URLs, summary, sentiment, and participants.

The call lifecycle

A single call moves through the same lifecycle whether you watch it live or pull it later. The data model is the same object throughout — nothing appears and then disappears; the completed call is simply the live call with more fields filled in.
1

Call starts

The transcript stream begins emitting sentence chunks over WebSocket, and the live HLS audio stream becomes available at the call’s start time. Over REST the call appears with status: STARTED / IN_PROGRESS.
2

Call is live

Transcript sentences stream in continuously. The recordings object carries a single HLS format (application/vnd.apple.mpegurl, 720p) — the live, growing audio stream.
3

Call completes

The transcript is finalized and the audio playlist is sealed. An MP3 format is added alongside the HLS one, so a completed call’s recordings has two formats (HLS + MP3).
4

Call is enriched

Post-processing adds the AI summary, per-segment and overall sentiment, speaker labels and identified participants, and a downloadable PDF transcript.

What’s in a call

A fetched call is a single JSON object that bundles everything about the call:
FieldDescription
call_idUnique identifier for the call — the key you use everywhere.
symbol, name, exchangeThe company the call belongs to.
start_time, end_time, duration, statusCall timing and lifecycle state.
transcripts[]The transcript text, broken into segments with speaker, timestamps, confidence, and per-segment sentiment.
recordings[].formats[]Audio files — HLS (live + recorded) and MP3 (recorded). Each has a file_link, content_type, and quality.
summaryAI-generated summary of the call plus an overall sentiment score.
participants[]Identified speakers with their name, role, organization, and mention count.
Audio URLs are only included when you request them — pass audio=true on the Fetch Call by ID endpoint. Without it, the recordings block is omitted from the response.

Live audio (HLS)

Live and recorded audio are served the same way: as a signed, time-limited HLS (.m3u8) stream from Benzinga’s CDN. The HLS stream is available from the call’s start time and simply stops growing when the call ends; the MP3 is added on completion. There are two ways to get the audio URL.
After you subscribe to a ticker, the first message for that ticker is an audio event carrying the live HLS URL — you don’t poll for it, it’s pushed to you. Every message after that is a transcript sentence.
// 1. Connect: wss://api.benzinga.com/api/v1/transcripts/stream?token=YOUR_API_KEY
// → {"message":"Connected to the server","uid":"..."}

// 2. Subscribe
{"action":"subscribe","ticker":"MSM"}
// → "Subscribed to MSM"

// 3. The audio event — carries the live HLS link
{
  "action":"audio",
  "symbol":"MSM",
  "call_id":"6a390146b856ac00017f8fe5",
  "hls_url":"https://api.benzinga.com/api/v1/transcripts/calls/6a390146b856ac00017f8fe5/hls?Key-Pair-Id=...&Policy=...&Signature=..."
}

// 4. Then transcript sentences stream in
{"call_id":"6a390146b856ac00017f8fe5","symbol":"MSM","sentence":"...","status":"IN_PROGRESS", ...}
Subscribe to all live calls with {"action":"subscribe","ticker":"*"} — you’ll receive an audio event for every call that currently has a live stream.

Playing the stream

The audio URL is a signed, time-limited HLS stream. Open it in any HLS-capable player:
  • Safari / Chrome — play HLS natively; paste the URL straight into the address bar.
  • VLC — Media → Open Network Stream → paste the URL.
  • In-browser — use hls.js.

Available endpoints

Fetch All Calls

List calls with filtering and pagination — by ticker, date range, and status.

Fetch Call by ID

Retrieve one call in full: transcript, audio, summary, sentiment, and participants.

Fetch Summaries

List AI-generated call summaries with pagination.

Fetch Summary by Call ID

Retrieve the summary and overall sentiment for a specific call.

Transcripts Stream (WebSocket)

Subscribe to live transcript sentences and live audio links as calls happen.