Hitting the /api/v2/analytics/speech/text/segments endpoint to pull full transcripts for a specific interaction. The request returns 200 OK, but the segments array in the response is always empty. Voice quality is fine, and transcription is enabled in the analytics settings.
Here’s the payload I’m sending:
{
"interactionId": "abc-123-xyz",
"segmentTypes": ["TEXT"]
}
Am I missing a parameter for async processing, or is this a known delay issue?
Docs state: “The segments array contains the transcribed text for the specified interaction.” You’re getting 200 OK because the request is valid, but the data isn’t ready or the filter is wrong.
First, check if the interaction has finished processing. Speech analytics is async. If you query immediately after the call ends, the backend might still be chunking the audio. Docs state: “Text segments are available only after transcription is complete.”
Second, ensure your token has the right scope. You need speechanalytics:view. If you’re using client credentials, verify the app has that permission.
Third, try adding segmentTypes: ["TEXT", "INTERACTION"] just in case the endpoint expects a broader set, though TEXT should suffice.
Here’s a curl to verify the status:
curl -X GET "https://api.mypurecloud.com/api/v2/analytics/speech/text/segments?interactionId=abc-123-xyz" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
If it’s still empty, wait 5 minutes and retry. The pipeline lags.