How to exclude respondents within a project
This guide explains how to configure a target group to automatically exclude respondents who have already completed a survey within the same project on the Cint Exchange.
Excluding respondents helps maintain sample quality, prevents over-surveying the same individuals, and ensures data independence across your project.
Steps to implement respondent exclusion
You can enable respondent exclusion either when you initially create a draft target group or by updating an existing one.
Step 1: Add the exclusion object to your request
Include the exclusion object within the request body for either creating a new target group or updating an existing one.
- For creating a new draft target group:
- Endpoint:
POST https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups - Action: Add the
exclusionobject as an optional attribute within the main JSON request body.
- Endpoint:
- For updating an existing target group (non-draft status):
- Endpoint:
PUT https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/details - Action: Include the
exclusionobject in the request body for theupdate launched target group detailscall. Remember to include theIf-Matchheader with the target group's ETag.
- Endpoint:
Step 2: Enable exclusion
Within the exclusion object, set the enabled field to true.
"exclusion": {
"enabled": true,
"list": [] // The 'list' array is for more advanced, explicit exclusions (not covered here).
// For project-level exclusion, keep it empty.
}
enabled(boolean):- Set to
trueto activate the exclusion: Respondents who complete any other target group within the same project will be prevented from entering this target group. - Set to
false(or omit theexclusionobject) if you do not want this automatic exclusion. In this case, respondents can enter the target group even if they have completed other target groups in the project.
- Set to
list(array): This array is typically used for more advanced exclusion scenarios (e.g., excluding specific RIDs). For project-level exclusion as described here, it should be an empty array[].
Step 3: Send your target group request
Execute the API call to create or update your target group with the configured exclusion settings.
- Request headers:
Content-Type: application/jsonAuthorization: Bearer <YOUR_JWT_TOKEN>Cint-API-Version: 2025-12-18(or the latest stable version)If-Match: W/"<YOUR_CURRENT_ETAG>"(for PUT requests to live target groups)
- Example cURL Request (Creating a new Draft target group with Exclusion):
Bash
curl -X POST \
'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-12-18' \
-d '{
"name": "My Excluded target group",
"business_unit_id": "<YOUR_BUSINESS_UNIT_ID>",
"project_manager_id": "<YOUR_PROJECT_MANAGER_ID>",
"study_type_code": "adhoc",
"industry_code": "other",
"cost_per_interview": {
"value": "2.7352",
"currency_code": "USD"
},
"locale": "eng_us",
"collects_pii": false,
"filling_goal": 100,
"expected_length_of_interview_minutes": 5,
"expected_incidence_rate": 0.20,
"fielding_specification": {
"start_at": "2025-07-25T08:00:00.000Z",
"end_at": "2025-08-01T23:59:59.000Z"
},
"live_url": "https://mytestsurvey.com/?RID=[%RID%]",
"test_url": "https://mytestsurvey.com/?RID=[%RID%]",
"exclusion": {
"enabled": true,
"list": []
},
"profile": {
"profile_adjustment_type": "percentage",
"drafts": [],
"interlocked_profiles": []
}
}'
- Remember to replace all bracketed placeholders (e.g.,
<YOUR_ACCOUNT_ID>) with your actual values.
Step 4: Verify exclusion settings
After a successful API call, verify that the exclusion settings are correctly applied to your target group.
- Action: Make a
GETcall to the Retrieve a target group endpoint using thetarget_group_id. - Purpose: To confirm that the
exclusion.enabledfield in the response is set totrue. - Outcome: The response JSON will include the
exclusionobject reflecting your configuration.
Example success response snippet (showingexclusionenabled):
{
"id": "01JX2X0N5RTR012AYDTA83QWTW",
"name": "My Excluded target group",
// ... other target group details
"exclusion": {
"enabled": true,
"list": []
},
// ...
}
Troubleshooting
HTTP 400 Bad Request:- Check for typos in parameter names or incorrect data types (
true/falsefor booleans). - Ensure all required fields for target group creation/update are present.
- Check for typos in parameter names or incorrect data types (
HTTP 412 Precondition Failed(for PUT requests): This indicates an outdated ETag. Always perform aGETcall to retrieve the latest ETag immediately before making an update request to a live target group.- Respondents still qualifying after completing other TGs:
- Double-check that
exclusion.enabledis set totrueon the target group you are trying to protect. - Ensure the "other" target groups are within the same project as the target group where you enabled exclusion. This exclusion applies project-wide.
- Verify the exclusion setting was applied successfully using Step 4.
- Double-check that