Quality API /api/v2/quality/surveys/{id}/responses returns empty array for matched interactions

Trying to pull CSAT survey responses that are tied to specific voice interactions via the CXone Quality API. The goal is to get the actual survey answers (rating, comments) for a list of interactionIds that we already have from the Conversation API.

Here is the setup:

  • Environment: CXone Production
  • Auth: OAuth2 Client Credentials
  • Endpoint: GET /api/v2/quality/surveys/{surveyId}/responses
  • Filter: filter=interactionId IN ('123-abc-456')

The survey is configured in Architect to trigger after call disposition. The survey ID is correct. When I run the query, the response body looks like this:

{
 "pageSize": 25,
 "pageNumber": 1,
 "total": 0,
 "entities": []
}

I’ve tried the following without success:

  • Verifying the interactionId exists and has a completed status (it does).
  • Checking if the survey is published (it is).
  • Waiting 24 hours for data propagation (still empty).
  • Using the surveyId from the survey definition vs the instance ID.

The documentation says this endpoint returns survey responses. It doesn’t mention a delay or a specific join table. Is there a different endpoint to link interactions to survey responses? Or am I missing a filter parameter?

Also, the GET /api/v2/quality/evaluations/{evaluationId}/responses endpoint works for QA evaluations, but nothing similar exists for surveys in the swagger docs.