Skip to main content
The Conversations API provides programmatic access to the conversation records generated by PolyAI agents. It returns transcripts, turn-by-turn metadata, handoff information, and performance metrics in a structured format suitable for analytics pipelines and integrations.
Most customers should use v3, the latest most performant version.

API versions

Only the Conversations API is versioned. Other APIs are currently unversioned. v3 is the fully supported release of the Conversations API. It runs on PolyAI’s event-sourced data platform and improves on v1 by offering:
  • reliable, scalable ingestion and querying
  • consistent ISO8601 timestamps
  • empty strings ("") instead of null for empty text fields
  • additional turn-level metadata such as latency, translated_user_input, and english_agent_response
Authentication for v3 is managed internally by PolyAI. Customers must request v3 access through their PolyAI representative. Example base path: https://api.{region}.platform.polyai.app/v3/{account_id}/{project_id}/conversations

v2

v2 uses the same schema and event-sourced backend as v3, but retains the legacy authentication model. Existing customers can continue using v2, but new customers should use v3

v1 – legacy

v1 uses an earlier data pipeline and the legacy authentication system. Deprecation timeline
  • From 2 March 2026, v1 moves to best-effort support (no SLA).
  • From 31 August 2026, v1 remains available but is no longer supported.
Customers on v1 should plan migration to v3 before support ends.

Regional base URLs

RegionBase URL
UShttps://api.us-1.platform.polyai.app
UKhttps://api.uk-1.platform.polyai.app
EUWhttps://api.euw-1.platform.polyai.app
Endpoint pattern: https://api.{region}.platform.polyai.app/{version}/{account_id}/{project_id}/conversations

Authentication

The Conversations API uses API key authentication.

v3 keys

v3 keys are project- and region-scoped and are issued by PolyAI. Your PolyAI representative will confirm the appropriate scope and provision access.

Query parameters

The Conversations API supports several query parameters for filtering and controlling the response:

Required parameters

ParameterDescription
start_timeStart of time range (ISO8601)
end_timeEnd of time range (ISO8601)

Optional filters

ParameterDescriptionDefault
client_envEnvironment: sandbox, pre-release, or livelive
variant_idFilter by variant ID
variant_nameFilter by variant name (URL-encode spaces with %20)
in_progressFilter by conversation status: true for in-progress, false for finishedall
limitMax conversations per request (1–1000)5
offsetPagination offset0

Optional response fields

ParameterDescriptionDefault
include_latencyInclude latency metrics per conversationfalse
include_context_stateInclude agent’s internal dialogue state at conversation endfalse
include_turn_metadataInclude genai metadata for each turnfalse

Response structure

Conversation object

FieldDescription
idUnique conversation ID
account_idCustomer account ID
project_idProject ID
variant_idVariant ID
variant_nameVariant name
environmentDeployment environment (live, sandbox, pre-release)
started_atConversation start time (ISO8601)
channelMedium: CHAT, VOICE-SIP, etc.
from_numberCaller phone number
to_numberAgent phone number
in_progressWhether call is still active
num_turnsNumber of turns
total_durationTotal call duration (seconds)
polyai_durationPolyAI-handled duration (seconds)
handoffWhether handoff occurred
handoff_reasonBrief handoff reason
handoff_destinationHandoff destination
num_silencesCount of silence turns
num_oodCount of out-of-domain turns
metricsCustom metrics logged by agent
stateDialogue state key-value pairs
turnsOrdered list of conversation turns

Turn object

FieldDescription
user_inputUser’s transcribed text
user_input_datetimeWhen agent received input (ISO8601)
barge_inWhether user interrupted the agent
agent_responseAgent’s response text
agent_response_datetimeWhen agent responded (ISO8601)
intentsDetected intents
entitiesDetected entities (name → value mapping)
is_oodWhether turn was out-of-domain
is_silenceWhether turn was a silence
translated_user_inputTranslated user input (when enabled)
english_agent_responseEnglish version of response (when enabled)

Pagination

When results exceed the limit, the response includes next_offset. Use this value as the offset parameter in your next request to fetch the next page.

Example: Retrieve conversations (v3)

GET https://api.{region}.platform.polyai.app/v3/{account_id}/{project_id}/conversations A successful response includes:
  • complete turn-by-turn transcript
  • consistent timestamps
  • latency metrics (when include_latency=true)
  • translation outputs (when enabled)
  • handoff metadata (if applicable)