How to generate reports
This guide explains how to generate reports on various levels for your account on the Cint Exchange, giving you more insight on a target group, project, business unit, or account level.
Prerequisites:
- You have access to the Cint API.
- You have the necessary roles assigned to your client.
A variety of useful reports exist for you to generate:
| Report name | Available level(s) |
|---|---|
| Completes | account, business unit, project, target group |
| Reconciliation eligible RIDs | project, target group |
| Reconciliation status | account, project, target group |
| Respondent analysis | project, target group |
| Sample bought | account, business unit, project, target group |
| Termination details | project, target group |
Steps to generate and retrieve a report
Step 1: Request to generate a report
Call the generate report endpoint with the following JSON request body shape. Replace the specific values to match the report you are interested in generating:
-
Path parameters:
account_id: Your unique account ID.report_type: The type of report you want to generate.
-
Body parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
filter | string | Yes | The scope of the report (e.g., project, account). A null value is equivalent to an account-level filter. |
filter_ids | array | No | A list of specific IDs to filter by. |
start_date | string | Yes | Start date in YYYY-MM-DD format. |
end_date | string | Yes | End date in YYYY-MM-DD format. |
report_options | object | No | Additional options for the report (e.g., include_respondent_answers, link_type). |
email_recipients | array | Yes | A list of user UUIDs to receive the report. UUIDs are generated when a client is created in the Cint Exchange. |
Example request to generate a project-level report:
curl -L 'https://api.cint.com/v1/demand/accounts/{account_id}/reports/{report_type}' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27' \
-d '{
"filter": "Project",
"filter_ids": [
"<YOUR_PROJECT_ID_1>",
"<YOUR_PROJECT_ID_2>"
],
"start_date": "2025-11-03",
"end_date": "2025-12-03",
"report_options": {
"include_respondent_answers": false,
"link_type": null
},
"email_recipients": [
"<USER_UUID_1>",
"<USER_UUID_2>"
]
}'
- A successful response returns a
202HTTP status code and a JSON response body that contains metadata about the report request:
{
"end_date": "2025-12-03",
"message": "Report created",
"report_id": "01KBJX7BXGRJXGG517T963VVP4",
"report_url": "https://exchange.cint.com/download?file=13_completes_2025_12_03_20_07_27_utc_Demo_Acct.csv&download_url=%2Fdemand%2Faccounts%2F13%2Freports%2Fdownload%3Freport_type%3Dcompletes%26file%3D01KBJX7BXGRJXGG517T963VVP4%2F13_completes_2025_12_03_20_07_27_utc_Demo_Acct.csv&type=report",
"start_date": "2025-11-03",
"status": "processing"
}
The report generation endpoint is synchronous, and queues your report request for generation. The actual report generation process is asynchronous. You can either call the download endpoint or use the URL provided in the generate report response object's report_url field to download the report when it is ready.
Step 2: Check the report's status
You can check the status of your report by calling the status endpoint:
- Path parameters:
account_id: Your unique account ID.report_id: The ID from the previous call.
Example request to check a report's status:
curl -L 'https://api.cint.com/v1/demand/accounts/{account_id}/reports/{report_id}/status' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27'
- The response will contain metadata and status of the report:
{
"end_date": "2025-12-03",
"message": "Report created",
"report_id": "01KBJX7BXGRJXGG517T963VVP4",
"report_url": "https://exchange.cint.com/download?file=13_completes_2025_12_03_20_07_27_utc_Demo_Acct.csv&download_url=%2Fdemand%2Faccounts%2F13%2Freports%2Fdownload%3Freport_type%3Dcompletes%26file%3D01KBJX7BXGRJXGG517T963VVP4%2F13_completes_2025_12_03_20_07_27_utc_Demo_Acct.csv&type=report",
"start_date": "2025-11-03",
"status": "processing"
}
Step 3: Download the report
When the status field shows complete, you can either use the report URL provided in the status endpoint's report_url field, or pass the same variables from the status endpoint to the download endpoint's path.
- Path parameters:
account_id: Your unique account ID.report_id: The ID from the previous call.
Example request to download a report:
curl -L 'https://api.cint.com/v1/demand/accounts/{account_id}/reports/{report_id}/download' \
-H 'Accept: text/csv' \
-H 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27'
- The response body's
Content-Typewill betext/csvand contain the contents of the report you requested.
If you try to call the download endpoint before the report is ready, you will get an error.
Troubleshooting
- Report status not changing: Report generation time depends on the size of the dataset. For large projects, this may take several minutes. We recommend a polling interval of 30 seconds to avoid hitting rate limits.
- "Cannot download report" error: You can only download a report once its status is completed. Trying to download a pending report will produce an error.
- Incorrect report level: Trying to generate a report on a level for which it's not available (e.g., a "Reconciliation Eligible ID" report at the "account" level) will result in a validation error.