Genesys Cloud Speech Analytics API returning empty transcript for completed voice interactions

I’m trying to pull the full voice-to-text transcript for completed interactions using the GET /api/v2/analytics/conversations/voice/details endpoint. The goal is to feed this into our custom agent desktop widget for post-call review.

We’ve got the analytics:conversation:view permission scoped correctly on the service account. The request returns a 200 OK, and the conversations array contains the interaction ID and metadata like wrapupCode and agentEmail. However, the transcript field is consistently null, even for calls where I can see the transcript in the UI.

Here’s the snippet I’m using with the Python SDK:

from genesyscloud.analytics import AnalyticsApi

analytics_api = AnalyticsApi(configuration)
start_time = datetime.utcnow() - timedelta(days=1)
end_time = datetime.utcnow()

response, status_code, headers = analytics_api.get_analytics_conversations_voice_details(
 start_date=start_time.isoformat(),
 end_date=end_time.isoformat(),
 view='default',
 size=10
)

for conv in response.conversations:
 if conv.transcript:
 print(conv.transcript)
 else:
 print(f"No transcript for {conv.interactionId}")

I’ve checked the interaction details via the UI and confirmed that transcription is enabled for the queue. The analyticsType on the queue is set to speech. I’ve also tried passing analyticsType=voice in the query params, but that just returns a 400 Bad Request saying the analytics type is invalid.

Is there a specific delay between the call ending and the transcript becoming available via the API? Or am I missing a required query parameter to force the transcript to be included in the payload? The documentation mentions analytics as a filter, but I’m not sure how to structure that for voice transcripts specifically.