Quality API GET /api/v2/quality/interactions returns 200 but CSAT data missing from response

Working on a Kotlin service to aggregate CSAT scores tied to specific conversation IDs. I’m using the Quality API endpoint GET /api/v2/quality/interaction/{interactionId}. The documentation says this returns the interaction details including survey results if they exist.

I have valid interaction IDs from the Analytics API. When I hit the endpoint, I get a 200 OK. The response JSON contains the conversationId, startTime, and endTime, but the surveyResponse field is completely absent. Not even null. Just missing.

Here is the relevant part of the response payload:

{
 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
 "type": "messaging",
 "conversationId": "conv-uuid-123",
 "startTime": "2023-10-27T14:00:00.000Z",
 "endTime": "2023-10-27T14:15:00.000Z",
 "wrapupCode": "Resolved",
 "agents": [
 {
 "id": "agent-uuid-456",
 "name": "John Doe"
 }
 ]
}

I checked the Genesys Cloud UI for that specific conversation. The CSAT survey was definitely sent and a score was recorded (4/5 stars). The survey is configured to be part of the quality evaluation.

My Kotlin code looks like this:

val qualityApi = QualityApi(config)
val interaction = qualityApi.getInteraction(interactionId).execute()
val score = interaction.body?.surveyResponse?.score // This crashes with NPE because surveyResponse is null/missing

I tried adding query parameters like ?includeSurvey=true but that results in a 400 Bad Request. The API spec for this endpoint doesn’t list any optional query params for including survey data.

Is there a different endpoint I should be hitting? Or is there a delay before the survey response is linked to the interaction in the Quality API? I’ve waited 10 minutes after the conversation ended. Still no data.

Feels like the Analytics API and Quality API are out of sync on when survey data gets populated.