curl --request GET \
--url 'https://api.benzinga.com/api/v1/transcripts/calls?token='import requests
url = "https://api.benzinga.com/api/v1/transcripts/calls?token="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.benzinga.com/api/v1/transcripts/calls?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benzinga.com/api/v1/transcripts/calls?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benzinga.com/api/v1/transcripts/calls?token="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benzinga.com/api/v1/transcripts/calls?token=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benzinga.com/api/v1/transcripts/calls?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"call_id": "694bf432dd7f23000124626c",
"call_title": "Aritzia achieves record $1 billion revenue, driven by digital growth and boutique expansion",
"description": "Q1 2026 Aritzia (ATZ) Earnings Conference Call",
"webcast_url": "https://events.q4inc.com/attendee/476349537",
"headline": "Aritzia posts 43% revenue growth to $1.04 billion in Q3, fueled by strong U.S. e-commerce and strategic boutique openings",
"symbol": "ATZ",
"exchange": "TSX",
"figis": [
"BBG00DR7R5L2"
],
"name": "Aritzia",
"start_time": "2026-01-08T21:29:03Z",
"end_time": "2026-01-09T13:00:13Z",
"duration": 0,
"status": "COMPLETED",
"created_at": "2026-01-08T21:29:03.225054Z",
"updated_at": "2026-01-09T13:00:31.632952Z",
"transcripts": [
{
"transcript_id": "053c48c4-17f2-48a8-8216-68513c5c54c2",
"text": "Thank you for standing by this is the conference operator .. day you may now disconnect your lines",
"language": "en-US",
"confidence_score": 0.41074312812500047,
"segments": null,
"type": "LIVE"
},
{
"transcript_id": "c10f465c-f09e-4661-b029-c1092b2b9d40",
"text": "Thank you for standing by... Thank you for joining and have a pleasant day. You may now disconnect your lines.",
"language": "en-US",
"confidence_score": 0.9678800193700792,
"segments": null,
"type": "NON_LIVE"
}
],
"securities": [
{
"figi": "BBG00DR7R5N0",
"isin": "CA04045U1021",
"name": "ARITZIA INC-SUBORDINATE VOTI",
"symbol": "ATZ",
"mic_code": "XTSE",
"figi_composite": "BBG00DR7R5K3",
"figi_share_class": "BBG00DR7R5L2",
"refinitiv_exch_code": "TOR"
}
]
}
],
"message": "Successfully fetched calls",
"pagination": {
"hits": 15686,
"page": 1,
"page_count": 15686,
"page_size": 1
}
}
{
"ok": false,
"errors": [
{
"code": "bad_request",
"id": "invalid_parameter",
"value": "Invalid search_keys_type parameter"
}
]
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No logos found for the specified search key"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
Fetch Transcripts
Retrieve a list of calls with optional filtering and pagination. By default, only COMPLETED calls are returned. Use status=ALL to return all statuses, or status=SCHEDULED for upcoming calls that have not started yet. Each call in the list carries its metadata and its transcripts’ text only. Segments, summary, recordings (audio/HLS), PDF and asset links, and participants are not included; fetch them per call from GET /api/v1/transcripts/calls/. With info_only=true the transcripts are left out as well. A page with no matching calls is a 200 with “data”: [] and the usual pagination. An unknown status, or a from/to that is not a valid date, is a 400.
curl --request GET \
--url 'https://api.benzinga.com/api/v1/transcripts/calls?token='import requests
url = "https://api.benzinga.com/api/v1/transcripts/calls?token="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.benzinga.com/api/v1/transcripts/calls?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benzinga.com/api/v1/transcripts/calls?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benzinga.com/api/v1/transcripts/calls?token="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benzinga.com/api/v1/transcripts/calls?token=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benzinga.com/api/v1/transcripts/calls?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"call_id": "694bf432dd7f23000124626c",
"call_title": "Aritzia achieves record $1 billion revenue, driven by digital growth and boutique expansion",
"description": "Q1 2026 Aritzia (ATZ) Earnings Conference Call",
"webcast_url": "https://events.q4inc.com/attendee/476349537",
"headline": "Aritzia posts 43% revenue growth to $1.04 billion in Q3, fueled by strong U.S. e-commerce and strategic boutique openings",
"symbol": "ATZ",
"exchange": "TSX",
"figis": [
"BBG00DR7R5L2"
],
"name": "Aritzia",
"start_time": "2026-01-08T21:29:03Z",
"end_time": "2026-01-09T13:00:13Z",
"duration": 0,
"status": "COMPLETED",
"created_at": "2026-01-08T21:29:03.225054Z",
"updated_at": "2026-01-09T13:00:31.632952Z",
"transcripts": [
{
"transcript_id": "053c48c4-17f2-48a8-8216-68513c5c54c2",
"text": "Thank you for standing by this is the conference operator .. day you may now disconnect your lines",
"language": "en-US",
"confidence_score": 0.41074312812500047,
"segments": null,
"type": "LIVE"
},
{
"transcript_id": "c10f465c-f09e-4661-b029-c1092b2b9d40",
"text": "Thank you for standing by... Thank you for joining and have a pleasant day. You may now disconnect your lines.",
"language": "en-US",
"confidence_score": 0.9678800193700792,
"segments": null,
"type": "NON_LIVE"
}
],
"securities": [
{
"figi": "BBG00DR7R5N0",
"isin": "CA04045U1021",
"name": "ARITZIA INC-SUBORDINATE VOTI",
"symbol": "ATZ",
"mic_code": "XTSE",
"figi_composite": "BBG00DR7R5K3",
"figi_share_class": "BBG00DR7R5L2",
"refinitiv_exch_code": "TOR"
}
]
}
],
"message": "Successfully fetched calls",
"pagination": {
"hits": 15686,
"page": 1,
"page_count": 15686,
"page_size": 1
}
}
{
"ok": false,
"errors": [
{
"code": "bad_request",
"id": "invalid_parameter",
"value": "Invalid search_keys_type parameter"
}
]
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No logos found for the specified search key"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
{
"data": [
{
"call_id": "694bf432dd7f23000124626c",
"call_title": "Aritzia achieves record $1 billion revenue, driven by digital growth and boutique expansion",
"description": "Q1 2026 Aritzia (ATZ) Earnings Conference Call",
"webcast_url": "https://events.q4inc.com/attendee/476349537",
"headline": "Aritzia posts 43% revenue growth to $1.04 billion in Q3, fueled by strong U.S. e-commerce and strategic boutique openings",
"symbol": "ATZ",
"exchange": "TSX",
"figis": [
"BBG00DR7R5L2"
],
"name": "Aritzia",
"start_time": "2026-01-08T21:29:03Z",
"end_time": "2026-01-09T13:00:13Z",
"duration": 0,
"status": "COMPLETED",
"created_at": "2026-01-08T21:29:03.225054Z",
"updated_at": "2026-01-09T13:00:31.632952Z",
"transcripts": [
{
"transcript_id": "053c48c4-17f2-48a8-8216-68513c5c54c2",
"text": "Thank you for standing by this is the conference operator .. day you may now disconnect your lines",
"language": "en-US",
"confidence_score": 0.41074312812500047,
"segments": null,
"type": "LIVE"
},
{
"transcript_id": "c10f465c-f09e-4661-b029-c1092b2b9d40",
"text": "Thank you for standing by... Thank you for joining and have a pleasant day. You may now disconnect your lines.",
"language": "en-US",
"confidence_score": 0.9678800193700792,
"segments": null,
"type": "NON_LIVE"
}
],
"securities": [
{
"figi": "BBG00DR7R5N0",
"isin": "CA04045U1021",
"name": "ARITZIA INC-SUBORDINATE VOTI",
"symbol": "ATZ",
"mic_code": "XTSE",
"figi_composite": "BBG00DR7R5K3",
"figi_share_class": "BBG00DR7R5L2",
"refinitiv_exch_code": "TOR"
}
]
}
],
"message": "Successfully fetched calls",
"pagination": {
"hits": 15686,
"page": 1,
"page_count": 15686,
"page_size": 1
}
}
{
"ok": false,
"errors": [
{
"code": "bad_request",
"id": "invalid_parameter",
"value": "Invalid search_keys_type parameter"
}
]
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No logos found for the specified search key"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
Authorizations
Query Parameters
The page number for pagination (starts at 1)
The number of items to return per page
Filter by call status, case-insensitive. Defaults to COMPLETED. Use ALL to return all statuses. SCHEDULED returns upcoming calls from the schedule, soonest first by default. Any value other than ALL or a known status is a 400 that lists the valid values.
Filter by stock ticker symbol (e.g. AAPL)
Filter calls starting on or after this time. RFC3339 with Z or an offset, e.g. 2024-01-01T00:00:00Z or 2024-01-01T00:00:00-04:00. A value without an offset (2024-01-01T00:00:00) is read as UTC.
Filter calls starting on or before this time. RFC3339 with Z or an offset, e.g. 2024-12-31T23:59:59Z. A value without an offset is read as UTC. Must not be before from.
Sort order: asc or desc by the call start, or updated_at / updated_asc to sort by when the call last changed. Defaults to desc, except for status=SCHEDULED, which defaults to asc (soonest first) and sorts only by the call start. With updated_since the order is always updated_asc
Return only calls that changed at or after this instant (RFC3339 with a zone, e.g. 2026-11-09T14:00:00.123456Z). A call changes when anything this API returns for it changes: its transcript, segments, speakers, summary, participants, recordings, PDF, assets or status. Results are ordered by updated_at then call_id, ascending. Not available with status=SCHEDULED. To sync, request status=ALL&updated_since=, then pass the last row's updated_at and call_id back as updated_since and after_call_id until a page comes back short; keep that last pair as the cursor for the next sync.
Keyset cursor, used with updated_since: return calls after (updated_since, after_call_id) in updated_at, call_id order. page is ignored when it is set
Filter by share class FIGI; comma-separate several (e.g. BBG001S5N8V8 for Apple)
If true, includes securities information in the response
If true, returns only call metadata without transcript content
Case-insensitive substring match on symbol, exchange, ISIN, name, CUSIP or status. It does not change the status filter; use status=ALL for every status.
Response
OK
The response is of type object.
Was this page helpful?