Skip to main content
Version: 2025-12-18

How to generate reports

This guide explains how to generate reports for your account on the Cint Exchange. You can generate reports at the target group, project, business unit, or account level to get more insight into your data.

Prerequisites:

  • You have access to the Cint API.
  • You have the necessary roles assigned to your API client.

A variety of useful reports exist for you to generate. The report_type value is what you'll use in the API path:

Report namereport_type valueAvailable level(s)
Completescompletesaccount, business unit, project, target group
Reconciliation eligible RIDsreconciliation_eligible_ridsproject, target group
Reconciliation statusreconciliation_statusaccount, project, target group
Respondent analysisrespondent_analysisproject, target group
Sample boughtsample_boughtaccount, business unit, project, target group
Termination detailstermination_detailsproject, target group

Steps to generate and retrieve a report

1. Request a report

Call the generate report endpoint with a JSON request body that matches the report you want to generate. You'll need to replace the placeholder values in the example with your own.

  • 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 applies 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.
email_recipientsarrayYesA list of user UUIDs to receive the report. You can find these IDs in the Cint Exchange.

Here are the available report_options:

OptionDescription
include_respondent_answersSet to true to include respondent answers in the report.
link_typeSpecifies the type of link to use in the report.

Example request for 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-12-18' \
-d '{
"filter": "project",
"filter_ids": [
"01K9YSDE9KER7ERBCRERG0H3KN",
"01K9RP8Z7V6YHJQ1JWH7YNGSQ1"
],
"start_date": "2025-11-03",
"end_date": "2025-12-03",
"report_options": {
"include_respondent_answers": false,
"link_type": null
},
"email_recipients": [
"e7d0974b-56f0-435a-9e04-2219b737ba88",
"ef7dc710-4e1d-4dd9-abb4-20f798314b9b"
]
}'
  • A successful request returns a 202 HTTP status code and a JSON response body with metadata about your report request:
{
"create_date": "2025-12-03T15:45:50Z",
"create_params": {
"end_date": "2025-12-03",
"filter": "project",
"filter_ids": [
"01K9YSDE9KER7ERBCRERG0H3KN",
"01K9RP8Z7V6YHJQ1JWH7YNGSQ1"
],
"report_options": {
"include_respondent_answers": false,
"link_type": null
},
"start_date": "2025-11-03"
},
"level": "project",
"message": "Report created",
"report_id": "01KBJE8BBG0558X25K9VJ4H4N9",
"report_type": "completes",
"report_url": "https://exchange.cint.com/download?file=13_completes_2025_12_03_15_45_50_utc_Demo_Acct.csv&download_url=%2Fdemand%2Faccounts%2F13%2Freports%2Fdownload%3Freport_type%3Dcompletes%26file%3D01KBJE8BBG0558X25K9VJ4H4N9%2F13_completes_2025_12_03_15_45_50_utc_Demo_Acct.csv&type=report",
"requestor": {
"email": "jon.doe@cint.com",
"id": "e7d0974b-56f0-435a-9e04-2219b737ba88",
"name": "Jon Doe"
},
"status": "processing"
}
info

The report generation endpoint is synchronous and queues your report for generation, but the report generation process itself is asynchronous. You can call the download endpoint or use the URL from the report_url field in the response to download the report when it's ready.

2. Check the report status

You can check the status of your report by calling the status endpoint:

  • Path Parameters:
    • account_id: Your unique account ID.
    • report_type: The type of report you want to generate.
info

The filter field's value is the level for which you're generating the report.

Example request to check the status of a report

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-12-18'

The response will contain metadata and the status of the report:

{
"data_analysis": false,
"end_date": "2025-12-03T00:00:00Z",
"message": "Job successful",
"report_id": "01KBJE8BBG0558X25K9VJ4H4N9",
"report_url": "https://exchange.cint.com/download?file=13_completes_2025_12_03_15_45_50_utc_Demo_Acct.csv&download_url=%2Fdemand%2Faccounts%2F13%2Freports%2Fdownload%3Freport_type%3Dcompletes%26file%3D01KBJE8BBG0558X25K9VJ4H4N9%2F13_completes_2025_12_03_15_45_50_utc_Demo_Acct.csv&type=report",
"respondent_answer": false,
"start_date": "2025-11-03T00:00:00Z",
"status": "complete",
}

3. Download the report

When the status is complete, you can use the URL from the report_url field or call the download endpoint directly.

  • 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-12-18'

The response body's Content-Type will be text/csv and will 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 isn't changing: Report generation time depends on the size of the data set. 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 complete. 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.
  • 400 Bad Request: This may indicate that your request body is malformed or missing required fields.
  • 401 Unauthorized: Your JWT is either missing, invalid, or expired.
  • 403 Forbidden: You don't have the necessary permissions to generate this report.