Skip to main content
Version: 2025-05-27

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 nameAvailable level(s)
Completesaccount, business unit, project, target group
Reconciliation eligible RIDsproject, target group
Reconciliation statusaccount, project, target group
Respondent analysisproject, target group
Sample boughtaccount, business unit, project, target group
Termination detailsproject, 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:

ParameterTypeRequiredDescription
filterstringYesThe scope of the report (e.g., project, account). A null value is equivalent to an account-level filter.
filter_idsarrayNoA list of specific IDs to filter by.
start_datestringYesStart date in YYYY-MM-DD format.
end_datestringYesEnd date in YYYY-MM-DD format.
report_optionsobjectNoAdditional options for the report (e.g., include_respondent_answers, link_type).
email_recipientsarrayYesA 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 202 HTTP 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"
}
info

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-Type will be text/csv and contain the contents of the report you requested.
warning

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.