Changelog
- API Reference
- Guide
AddedAllocation changes added to the target-group-updated webhook
1 October 2026
Twelve allocations_* change objects added to the target-group-updated webhook. Four report changes to a target group's open exchange and private exchange allocations, and eight report changes to the allocation groups within them.
Group-scoped change objects carry allocation_group_id, which identifies the allocation group the new value applies to. Without it, a change such as a group maximum percentage moving to 91 gives no indication of which group it belongs to.
Existing change objects are unaffected. If your endpoint ignores object values it does not recognize, no change is needed.
Webhooks: Understanding webhook event notifications
Version: Added to releases from 2025-05-27 onwards.
AddedExclude respondents by activity status
9 September 2026
You can now target specific respondent statuses in respondent activity exclusions using the new optional respondent_statuses array on each exclusion item. Previously, the activity-history check matched only a Complete status (the concurrent-participation check for live target groups is unchanged).
List the same project or target group more than once, pairing each entry with a distinct set of statuses and its own duration, to apply different exclusion windows to different statuses. When omitted, respondent_statuses defaults to ["Complete"], so existing configurations are unaffected. Supported statuses: Complete, Terminate, SecurityFailure, OverQuota, FinancialTerm, PreClientSurveyProcess.
Statuses other than Complete require your account to have access to this feature.
Endpoints: Set respondent activity exclusions, Retrieve respondent activity exclusions, Create target group, Update target group, Get target group
AddedOptional gzip compression for webhook deliveries
7 September 2026
You can now receive webhook request bodies compressed with gzip. Set compression to gzip when you create or update a webhook, and every delivery for that webhook carries the Content-Encoding: gzip header. Content-Type stays application/json, because compression changes only how the body is encoded, not its media type.
Key details:
- Compression is not enabled by default. Omit the field, or set it to
null, to keep receiving uncompressed bodies. - The
Cint-Signatureheader still covers the uncompressed JSON, so your existing verification code keeps working. - Updating a webhook replaces it, so an update that omits
compressiondisables it. Include the field in every update to keep compression on.
Endpoints: Create webhook, Update webhook
Version: Added to all available versions.
ChangedCorrected Update quotas response codes
19 August 2026
Endpoints: Update quotas
- Fixed the success status code — updating quotas returns
200. - Documented the
422response returned for invalid requests. - Documented the
404response returned when a project or target group does not exist.
ChangedCorrected Intelligent Calendar contracts
3 August 2026
Endpoints: Suggest time range, Suggest days
The documented Intelligent Calendar contracts now match the API.
- The time range response returns
suggested_startandsuggested_end, notstartandend. This applies to every API version — the service has returned these names since June 2024, so clients readingstart/endreceivedundefined. localeis required on suggest time range.days,start, andendare optional on suggest time range: provide eitherdaysalone, or bothstartandend. Combining them returns400.incidence_ratebounds are exclusive: values of exactly0or1are rejected.pricerequires bothvalueandcurrency_code.valuemust be a positive decimal greater than 0 encoded as a string, andcurrency_codeacceptsUSDonly.- Error examples on both endpoints now show the
objectvalues the service emits:bad_request,unauthorized, andinternal_server_error. - A
401on these endpoints means either that credentials are missing or invalid, or that the caller doesn't have the role required for the operation. Both cases returnobject: unauthorized.
ChangedAutomatic deduplication of zip codes
1 July 2026
Endpoints: Validate profiles, create or update draft target group, Apply profiles, Create profile, Update profile conditions
Submitting duplicate zip codes no longer causes the request to fail. The API now automatically removes duplicate zip codes in the request before validating or saving, but rejects duplicates in selection or range conditions.
Addedsupplier_id added to target-group-updated webhook change objects
16 June 2026
supplier_id added to supplier-scoped change objects on the target-group-updated webhook. The field identifies the supplier a change applies to and is currently included on private_exchange_cpi_change change objects.
Webhooks: Understanding webhook event notifications
Version: Added to releases from 2025-05-27 onwards.
Addedrespondent_update_date added to the sessions data webhook
3 June 2026
respondent_update_date added to the sessions data webhook payload (com.cint.session.updated). This timestamp records the most recent update to a respondent session record and is updated on every status change, including reconciliations. It differs from respondent_last_date_change, which is set once when the session first reaches a terminal status and does not change thereafter.
Webhooks: Understanding webhook event notifications
Version: Added to releases from 2025-05-27 onwards.
AddedConfigurable duration for respondent activity exclusions
27 April 2026
The respondent activity exclusions duration is now configurable. You can specify how far back exclusion checks should look using a new duration field in ISO-8601 period format (date-based only, e.g. P30D, P2W, P3M, P1Y). Allowed values are between 1 and 396 days. If no duration is provided, the window defaults to P90D (90 days), preserving the previous behavior.
Updated endpoints:
- PUT
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/respondent-activity-exclusions— Request body now accepts an optionaldurationat the request level and on each item inrespondent_activity_exclusions. - POST
/demand/accounts/{account_id}/projects/{project_id}/target-groupsand PUT/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}— Inlinerespondent_activity_exclusionspayloads now supportdurationon each exclusion item when creating or updating a draft target group.
AddedRespondent activity exclusions
20 April 2026
You can now exclude respondents from entering a target group based on their participation history in other projects or target groups. Exclusions are evaluated dynamically at the moment a respondent attempts to enter a survey, enabling real-time overlap prevention for concurrent live studies.
Key capabilities:
- Unified API workflow: Pass an array of project and target group IDs in a single request to define multi-layered exclusions.
- Real-time enforcement: Exclusion checks happen at the point of entry, keeping your sample accurate for live studies.
- Automated 90-day window: Respondents with a Completed or In-client status in any excluded project or target group are automatically excluded for 90 days. Duration is not currently configurable.
New endpoints:
- GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/respondent-activity-exclusions— Retrieve the current respondent activity exclusion list for a target group. - PUT
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/respondent-activity-exclusions— Set the respondent activity exclusion list for a target group. Each request fully replaces the existing list.
Updated endpoints:
- POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups— Supports settingrespondent_activity_exclusionsinline when creating a draft target group. - PUT
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}— Supports settingrespondent_activity_exclusionsinline when updating a draft target group. - GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}— Response now includes therespondent_activity_exclusionsfield.
Our configurable exclusions period will be out soon, which will allow you to make edits to the respondent activity exclusions duration period.
AddedPrivate exchange CPI added to target-group-updated webhook
27 January 2026
private_exchange_cpi_change added to the target-group-updated webhook to notify when there are changes to cost per interview (CPI) for private exchanges.
Endpoints: target-group-updated webhook
Version: Added to releases from 2025-05-27 onwards.
AddedRecontact specific respondents
31 July 2025
New endpoints and functionality to create surveys that target specific, pre-identified respondents from previous studies.
Endpoints: Recontacts endpoints
You can now create a target group with "study_type": "recontact" to run surveys exclusively for a specified list of respondent IDs. This feature is ideal for longitudinal studies and re-engaging participants. Key requirements:
- You'll need to make a separate API call to upload and manage respondent IDs after creating the draft target group.
- The
[%RECONTACT_RSID%]variable must be included in your live URL. - The contents found within Cint's recontact global allocations template must be used:
"template_id": "01JH0PEGPC4Z8RDD304E2SF0EW" - Adding further profiling to recontact surveys is not supported.
Version: Added to releases from 2025-05-27 onwards.
AddedManage exclusion groups
31 July 2025
New endpoints to create, modify, and manage Exclusion Groups and associate target groups with them.
Endpoints:
- GET
/demand/accounts/{account_id}/exclusion-groups - POST
/demand/accounts/{account_id}/exclusion-groups - GET
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id} - DELETE
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id} - PUT
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id} - GET
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id}/target-groups - POST
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id}/target-groups/add - POST
/demand/accounts/{account_id}/exclusion-groups/{exclusion_group_id}/target-groups/remove - GET
/demand/accounts/{account_id}/target-groups/{target_group_id}/exclusion-groups
Group multiple target groups, even across different projects, into a single reusable Exclusion Group. Any respondent completing a survey in one of the associated target groups is automatically excluded from all others in the group.
Version: Added to releases from 2025-05-27 onwards.
AddedIncreased limit for ID-based exclusions to 100k
31 July 2025
The limit for Respondent ID and Access Respondent GUID exclusions on a single target group has increased from 10,000 to 100,000. New endpoints support uploading exclusion files of up to 100,000 IDs.
New endpoints:
- GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/access-respondent-guid/paginated - POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/jobs/upload-respondents-by-file - GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/jobs/remove-all-respondents/{job_id} - POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/jobs/upload-respondents-by-file - GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/jobs/upload-respondents-by-file/{job_id} - GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/rsid/paginated
Version: Added to 2025-02-17 and 2025-05-27 API versions.
DeprecatedLegacy exclusion group APIs
31 July 2025
These endpoints are deprecated. They'll be supported for the lifetime of their respective API versions but will be removed in future releases.
Deprecated endpoints:
- GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/cid - POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/cid - GET
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/rid - POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/exclusions/rid
Version: Deprecated from all available versions.
ChangedFeasibility endpoints now handle 100k completes
10 June 2025
Affected fields: filling_goal
Endpoints: Feasibility endpoints
The filling_goal field now allows up to 100,000 respondents, where previously this was capped at 10,000. This does not yet apply to creating or managing target groups.
Version: Updated on all available versions.
ChangedLive URL and Test URL optional for draft target groups
10 June 2025
Affected fields: live_url, test_url
Endpoints:
- POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups - PUT
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}
The live_url and test_url fields are now optional for draft target groups. Note: live_url must be set before the target group can be put into fielding.
Version: Updated on all available versions.
AddedPUT and POST draft endpoint property updates
10 June 2025
Affected fields: expected_incidence_rate, expected_length_of_interview_minutes, filling_goal, project_manager_id, collects_pii
Endpoints:
- POST
/demand/accounts/{account_id}/projects/{project_id}/target-groups - PUT
/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}
These fields are no longer nullable and must be provided (required). This change improves consistency.
Version: Added to all available versions.
DeprecatedGet questions
12 May 2025
Endpoints:
- GET
/demand/questions?{queryParams} - GET
/demand/questions/{question_id}
These endpoints have been deprecated based on customer feedback. Please use GET /demand/accounts/{account_id}/questions-translation instead.
Version: Deprecated from all available versions.
AddedProject Customer Reference Number
8 May 2025
Affected fields: project_customer_reference_number
Endpoints: Project endpoints
Allows you to capture your project-related identifiers, such as purchase orders or job numbers.
Version: Added to all available versions.
DeprecatedPurchase Order Number
8 May 2025
Affected fields: purchase_order_number
Endpoints: Project endpoints
Deprecated in favor of project_customer_reference_number to reduce confusion. This field has been deprecated based on customer feedback and review.
Version: Deprecated from all available versions.
ChangedExclude respondents by activity status
9 September 2026
The respondent activity history check is no longer limited to completes. You can now configure which respondent statuses each exclusion targets, and apply different exclusion windows to different statuses.
Updated guides:
- Setting up respondent activity exclusions covers how to configure
respondent_statuses, the supported statuses, and the account access requirement. - How respondent activity exclusions work explains how per-status rules are evaluated independently.
AddedWebhook gzip compression
7 September 2026
Webhook deliveries can now be gzip compressed. The webhooks deep dive covers how to turn it on and what changes for your endpoint.
Updated deep dives:
- Understanding webhooks — New Compression section covering the
compressionfield, theContent-Encoding: gzipheader, signature verification against the uncompressed JSON, how a toggle applies to queued deliveries, and what to expect from payload sizes.
AddedConfigurable duration for respondent activity exclusions
27 April 2026
You can now configure how far back respondent activity exclusions look when filtering respondents. Previously, the exclusion window was fixed at 90 days; you can now set any duration between 1 and 396 days, either as a default for the whole request or per individual exclusion item. If no duration is provided, the window defaults to 90 days, so existing integrations are unaffected.
Updated how-to guides:
- Exclude respondents based on past activity — Now covers how to set request-level and item-level
durationvalues, including the precedence rules and how calendar-aware formats are normalized.
Updated deep dives:
- How respondent activity exclusions work — Explains the rolling exclusion window and how each excluded project or target group can use its own configured duration.
AddedRespondent activity exclusions
20 April 2026
You can now exclude respondents from entering a target group based on their participation history in other projects or target groups. New how-to guides and deep dives cover the full workflow, from understanding the exclusion model to configuring it via the API.
How-to guides:
- Exclude respondents based on past activity — Configure respondent activity exclusions on a target group via the dedicated endpoint or inline during target group creation.
Deep dives:
- What are respondent exclusions — An introduction to the three respondent exclusion rules available on the Cint Exchange and how they protect sample quality by filtering respondents before they enter a survey.
- Exclusion rule hierarchy — The fixed order in which respondent exclusion checks are evaluated when a respondent requests entry to a survey.
- Choosing an exclusion method — A comparison of all three exclusion methods by scope, complexity, and use case to help you pick the right one for your study.
- How respondent activity exclusions work — How the Cint Exchange evaluates respondent history at the point of entry and applies the 90-day rolling exclusion window.