Exporting data from Zendesk QA
Use the Zendesk QA Export API to export review and comment data for external analysis and reporting. You can export data from a specific workspace or from your entire account. Zendesk QA is available with the Quality Assurance (QA) or Workforce Engagement Management (WEM) add-on.
Prerequisites
Before exporting data, set up an API connection in your Zendesk QA account.
Copy the following values from the connection setup:
- API token
- Account id
- Workspace id
You must also know your Zendesk subdomain. Replace {subdomain} in the examples with your Zendesk subdomain.
Exporting data
To export reviews from a specific workspace, send a GET request to:
https://{subdomain}.zendesk.com/qa/api/export/workspace/{workspaceId}/reviews
To export reviews from the entire account, send a GET request to:
https://{subdomain}.zendesk.com/qa/api/export/reviews
The API connection provides an API token. Pass this token as a bearer token in the Authorization header. Use the fromDate and toDate query parameters to specify the date range for the export.
Both endpoints support the page and pageSize query parameters for pagination.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fromDate | String | Yes | Start date for the export as an ISO 8601 timestamp. For example, 2026-01-01T00:00:00Z. |
toDate | String | No | End date for the export as an ISO 8601 timestamp. For example, 2026-03-31T23:59:59Z. |
page | Integer | No | Page number to return. |
pageSize | Integer | No | Number of records to return per page. |
Sending the request
Export the API token as an environment variable:
export QA_API_TOKEN='your_api_token'
Replace {subdomain} with your Zendesk subdomain. The following example exports reviews from workspace 11759 between January 1 and March 31, 2026:
curl --get 'https://{subdomain}.zendesk.com/qa/api/export/workspace/11759/reviews' \--data-urlencode 'fromDate=2026-01-01T00:00:00Z' \--data-urlencode 'toDate=2026-03-31T00:00:00Z' \--header 'Accept: application/json' \--header "Authorization: Bearer ${QA_API_TOKEN}"
To export reviews for the entire account, use the account-level endpoint:
curl --get 'https://{subdomain}.zendesk.com/qa/api/export/reviews' \--data-urlencode 'fromDate=2026-01-01T00:00:00Z' \--data-urlencode 'toDate=2026-03-31T00:00:00Z' \--header 'Accept: application/json' \--header "Authorization: Bearer ${QA_API_TOKEN}"
Example response
A successful request returns a 200 OK response with a conversations array and a pagination object. Each conversation can contain reviews, comments, and the id of the workspace that contains it.
{"conversations": [{"externalId": "1001","url": "https://example.zendesk.com/qa/conversations/1001","externalUrl": "https://example.zendesk.com/agent/tickets/1001","lastUpdated": "2026-03-15T10:30:00Z","reviews": [{"id": "rev_88492","reviewer": {"email": "[email protected]","name": "Sarah Connor","avatar": "https://example.com/avatar1.png"},"reviewee": {"email": "[email protected]","name": "Alex Smith","avatar": "https://example.com/avatar2.png"},"score": 95,"ratings": [{"categoryId": "cat_12","categoryName": "Empathy & Tone","score": 100,"weight": 1,"critical": false,"cause": ""}],"comment": "Great customer handling throughout.","thread": [{"id": "thread_123","owner": {"email": "[email protected]","name": "Sarah Connor","avatar": "https://example.com/avatar1.png"},"comment": "The opening response was clear and empathetic.","created": "2026-03-15T11:02:00Z","updated": "2026-03-15T11:02:00Z","thread": [],"tags": [{"tag": "positive","user": {"email": "[email protected]","name": "Sarah Connor","avatar": "https://example.com/avatar1.png"}}]}],"tags": [],"created": "2026-03-15T11:00:00Z","updated": "2026-03-15T11:05:00Z","received": true,"reviewTime": "2026-03-15T11:00:00Z","scorecard": {"id": "sc_01","name": "Standard Support Scorecard"}}],"comments": [{"id": "comment_123","owner": {"email": "[email protected]","name": "Alex Smith","avatar": "https://example.com/avatar2.png"},"comment": "I can help with that.","created": "2026-03-15T10:35:00Z","updated": "2026-03-15T10:35:00Z","thread": [],"tags": []}],"workspaceId": "11759"}],"pagination": {"page": 1,"pageSize": 50,"total": 1}}
The response contains the following key properties:
| Property | Description |
|---|---|
conversations | Array of conversations included in the response. |
conversations[].externalId | Identifier of the conversation in the external system. For conversations from Zendesk Support, this corresponds to the ticket_id value. |
conversations[].reviews | Reviews associated with the conversation. |
conversations[].reviews[].ratings | Individual scorecard category results, including scores, weights, critical failures, and root cause notes when available. |
conversations[].reviews[].thread | Threaded comments associated with the review. |
conversations[].reviews[].tags | Tags associated with the review. |
conversations[].comments | Comments associated with the conversation, including their owners, timestamps, threads, and tags. |
conversations[].workspaceId | Id of the workspace containing the conversation. |
pagination | Pagination metadata for the response. |
pagination.page | Current page number. |
pagination.pageSize | Number of records returned per page. |
pagination.total | Total number of records available for the request. |
To retrieve additional results, increment the page query parameter and send another request. Continue until you have retrieved all records indicated by pagination.total.
For the complete request and response schema, see the Zendesk QA Export API reference.