I’ve got a Python script polling the Genesys Cloud Analytics API to fetch voice-to-text transcripts for QA review. The endpoint is /api/v2/analytics/conversations/details/summary.
Everything works fine for calls under 5 minutes. The transcripts array in the response contains the full text. But for calls running 8-10 minutes, the transcript gets cut off. It doesn’t throw an error. The HTTP status is a clean 200. The JSON just stops mid-sentence at the end of the array.
Here’s the relevant part of the request:
response = requests.get(
f"{base_url}/api/v2/analytics/conversations/details/summary",
headers={"Authorization": f"Bearer {token}"},
params={
"dateFrom": "2023-10-25T00:00:00.000Z",
"dateTo": "2023-10-25T23:59:59.999Z",
"groupBy": "conversationId",
"metrics": "transcripts",
"pageSize": 50
}
)
The response payload looks like this for the truncated call:
{
"data": [
{
"conversationId": "abc-123",
"metrics": {
"transcripts": {
"value": [
{
"participantId": "agent-id",
"text": "Sure, I can help with that. Let me pull up your account..."
},
{
"participantId": "customer-id",
"text": "Yes, I need to check my balance and also update my..."
}
]
}
}
}
]
}
The last entry is incomplete. I checked the raw call recording in the admin portal and the transcription is complete there. So the data exists in GC.
I’ve tried increasing pageSize to 100. No change. I’ve checked the hasMore flag in the response and it’s false, so the API thinks it sent everything. I also looked at the speechAnalytics entity directly via /api/v2/analytics/speech/details/summary but that endpoint seems to only give me summary stats like sentiment or compliance flags, not the raw text chunks.
Is there a limit on transcript length per request that I’m missing? Or do I need to use a different endpoint to get the full text? I don’t see a pagination token specifically for the transcript array itself, just for the list of conversations.