Skip to main content

Retrieving results

Once a call is submitted, its transcript and analytics are read through the call endpoints. This page describes what each endpoint returns, how to filter lists, and how transcript search works.

EndpointReturns
GET /api/v1/calls/{id}/statusOne call, with its complete transcript, translation and analytics.
GET /api/v1/callsCalls matching a filter, newest first.
GET /api/v1/favoritesThe account's favorite calls, with the same filters and shape as /calls.
POST /api/v1/favorites/{callId}, DELETE /api/v1/favorites/{callId}Mark or unmark a call as a favorite.
GET /api/v1/analyticsAudio and score analytics for a date range.
GET /api/v1/topics, GET /api/v1/sentimentsTopic and sentiment distributions across the account's calls.
GET /api/v1/intelligenceAgent-level analytics. See Intelligence.

All endpoints are scoped to the token's account. A sub-account also sees its parent account's calls. A call outside your account is reported as not found.

A single call​

curl "https://api.example.com/api/v1/calls/12345/status" \
--header "Authorization: Bearer $SPEECHLYTICS_TOKEN"

The response is the most complete representation of a call:

FieldContent
id, name, created, modified, durationIdentity and timing. Duration is in seconds.
status, statusDescription, errorProcessing state (0 Queued, 1 InProgress, 2 Processed, 3 Failed, 4 QuotaLimit, 5 NotFound, 8 Live) and any error.
audioType0 Mono or 1 Stereo.
transcriptionlanguage plus leftChannel (agent), rightChannel (customer) and bothChannels (mono) segments. Each segment has start, end, duration, content, language and channel.
translationTranslated segments in the same shape, when translation is enabled.
keywordsMatched keywords with score, channel, exclusive and out-of-scope flags, and tag frequencies.
score, analyticsScore, inScopeKeyword score, AI analytics score (0–100) and scope. See Scoring model.
topics, sentimentsClassification results.
callSummary, callAnalysisThe summary and structured analysis. See Summarization.
customQuestionsCustom question results, or null when the call was not evaluated.
Silence, music, noise and laughter per channelAudio content measurements.
wordFrequencyLeft, wordFrequencyRight, wordFrequencyBoth, speakerFrequencyPercentageFrequent words and talk share.
agent, customer, externalIdAttribution from metadata or the integration.

Sections appear only when the feature is enabled for the account and the audio supports it. Treat every analytics field as optional.

Listing calls​

curl "https://api.example.com/api/v1/calls?Page=1&Rows=50&DateFrom=2026-09-01&DateTo=2026-09-30&Topic=billing" \
--header "Authorization: Bearer $SPEECHLYTICS_TOKEN"
ParameterMeaning
Page, RowsPaging. Rows is 1–100 (default 10).
DateFrom, DateToPeriod, for example 2026-09-01 or 2026-09-01 08:00:00. Defaults to the last month.
FileNamePart of the call name.
Topic, SentimentOne or more space-separated values; a call matches any of them.
TagOne or more space-separated keyword tags.
ContentText to find in the transcript (see below).
ClusterProcessing cluster, for multi-cluster deployments.

The response is an array of call objects, newest first, without a total count: request the next page until fewer than Rows items come back.

List results include the stereo leftChannel and rightChannel segments but not bothChannels or translation. Use /calls/{id}/status for mono transcripts and translations.

The Content parameter of /calls and /favorites finds calls by their transcript:

  • Exact search (always available): calls whose transcript contains the text.
  • Semantic search (when enabled on your Speechlytics deployment): calls that express the same idea in other words or in another language, combined with an exact word search so identifiers such as order numbers and names are still found. Quoted phrases are matched exactly. Matches are limited to the 500 most relevant calls in the date range; results are still returned newest first.

Semantic search covers the original-language transcript after masking and polishing, and never returns deleted calls. Calls processed before it was enabled are included after a one-time catch-up run. If the search service is temporarily unavailable, Content falls back to exact search without an error. GET /api/v1/health reports searchIndexHealthy.

Favorites​

Favorites are a per-account shortlist of calls, useful for review queues.

EndpointBehavior
GET /api/v1/favoritesThe token's favorite calls; same parameters and shape as GET /api/v1/calls.
POST /api/v1/favorites/{callId}Mark the call. Repeating the request is harmless. Returns { "favorite": true }.
DELETE /api/v1/favorites/{callId}Unmark the call. Repeating the request is harmless. Returns { "favorite": false }.

A favorite belongs to the account that marked it; a sub-account's favorites are its own. Both write endpoints return 404 when the call does not exist or is not visible to the account.

Aggregates​

EndpointReturns
GET /api/v1/analytics?Page=&Rows=&DateFrom=&DateTo=Per-call audio measurements and scores for the period, with the account's target and silence scores and a total.
GET /api/v1/topics{ "topics": [{ "name", "usage" }] }: the share of calls per topic.
GET /api/v1/sentiments{ "sentiments": [{ "name", "usage" }] }: the share of calls per sentiment.

Caching and polling​

Call responses may be cached for up to 30 seconds, and topic and sentiment aggregates for up to 10 minutes. For new results, prefer webhooks and call events to frequent polling, and stay within the rate limits.

See the API reference for every field.