Testing target groups without generating completes
This guide explains how to configure a target group to receive respondents exclusively from Cint's designated test supplier, allowing you to thoroughly test your survey logic, platform integration, and respondent redirects without incurring costs from real respondents or impacting live fieldwork.
Before launching a survey to a real audience, it is crucial to validate every aspect of your integration, including survey flow, data capture, and respondent routing. Using a test supplier provides a controlled environment to perform these checks, preventing accidental live completes and ensuring a smooth launch.
Steps to configure exclusive test supplier allocation
Step 1: Allocate to Cint's test supplier
To ensure only test respondents enter your survey, you will configure the supply_allocations within your target group to route 100% of the traffic to the designated Cint test supplier and block all other sources.
Cint's test supplier ID is 980.
You will need to define a group allocation for the test supplier and an exchange allocation with 0% contribution to block the general open exchange.
{
"allocations": {
"open_exchange_allocations": {
"blocked_supplier_ids": [],
"groups": [
{
"max_percentage": 100,
"min_percentage": 0,
"group_name": "Test supplier only",
"suppliers": [
"980"
]
}
],
"exchange_max_percentage": 0,
"exchange_min_percentage": 0
}
}
}
You can apply this allocations configuration when creating a new draft target group or by updating an existing one.
Creating a new draft target group
Include the allocations object in the request body of your create a target group in draft status call:
- Path Parameters:
account_idproject_id
curl -L 'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"name": "Test target group",
"business_unit_id": "<BUSINESS_UNIT",
"locale": "<LOCALE>",
"collects_pii": false,
"study_type_code": "adhoc",
"industry_code": "other",
"cost_per_interview": {
"value": "2.7352",
"currency_code": "USD"
},
"client_cost_per_interview_note": {
"value": "2.7352",
"currency_code": "USD"
},
"project_manager_id": "b551326b-ac9d-4d32-8823-4f025787dab9",
"fielding_specification": {
"start_at": "2025-06-20T15:11:35.699Z",
"end_at": "2025-06-30T15:11:35.699Z"
},
"completes_goal": 1500,
"expected_length_of_interview_minutes": 2,
"expected_incidence_rate": 0.9,
"exclusion": {
"enabled": true
},
"industry_lockout_code": "no_lock_out",
"live_url": "https://example.com/live",
"test_url": "https://example.com/test",
"fielding_assistant_assignment": {
"pricing": {
"type": "dynamic",
"total_budget": {
"value": "2.7352",
"currency_code": "USD"
},
"maximum_cpi": {
"value": "2.7352",
"currency_code": "USD"
},
"minimum_cpi": {
"value": "2.7352",
"currency_code": "USD"
}
},
"quota_overlay": {
"prevent_overfill": true,
"balance_fill": true
},
"pacing": {
"type": "linear",
"increment_interval": "string"
},
"soft_launch": {
"end_at": "2023-01-01T23:00:00.000Z",
"filling_goal_percentage": 1,
"demographics_strictness_percentage": 100
}
},
"profiling": {
"profile_adjustment_type": "percentage",
"profiles": [
{
"object": "regular",
"quotas_enabled": true,
"targets": [
{
"conditions": [
{
"object": "open_ended",
"question_id": 45,
"allow_all_values": false,
"open_ended_values": [
"98001",
"98007",
"98125",
"98258"
]
}
],
"quota": {
"completes_goal_percentage": 50
}
},
{
"conditions": [
{
"object": "open_ended",
"question_id": 45,
"allow_all_values": false,
"open_ended_values": [
"78001",
"78007",
"78125",
"78258"
]
}
],
"quota": {
"completes_goal_percentage": 50
}
}
]
}
]
},
"allocations": {
"open_exchange_allocations": {
"blocked_supplier_ids": null,
"exchange_min_percentage": 0,
"exchange_max_percentage": 100,
"groups": null
},
"private_exchange_allocations": {
"blocked_supplier_ids": [
"980"
],
"groups": [
{
"group_name": "Private group 1",
"min_percentage": 0,
"max_percentage": 100,
"supplier_id": "1966"
}
]
}
}
}'
A success response includes an HTTP status 204.
Updating an existing target group
You can utilize the update target group allocations endpoint to update a target group that has been launched.
Update target group allocations endpoint can only be used for launched target groups.
- Path Parameters:
account_idproject_idtarget_group_id
curl -X PUT 'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/allocation-specification' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Cint-API-Version: 2025-12-18' \
-d '{
"open_exchange_allocations": {
"blocked_supplier_ids": [
"123",
"456"
],
"exchange_min_percentage": 0,
"exchange_max_percentage": 100,
"groups": [
{
"group_id": "1",
"group_name": "Test group",
"min_percentage": 0,
"max_percentage": 100,
"supplier_ids": [
"123",
"456"
]
}
]
}
}'
A success response includes an HTTP status 204.
Optional: Verify supply allocation settings
Confirm your allocations settings are correct by calling retrieve target group allocations endpoint:
Retrieve target group allocations endpoint can only be used for launched target groups.
- Path Parameters:
account_idproject_idtarget_group_id
curl -L 'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/allocation-specification' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-H 'Cint-API-Version: 2025-12-18'
The response should reflect the latest allocation(s):
{
"open_exchange_allocations": {
"blocked_supplier_ids": [],
"groups": [
{
"max_percentage": 100,
"min_percentage": 0,
"group_name": "Test supplier only",
"suppliers": [
"980"
]
}
],
"exchange_max_percentage": 0,
"exchange_min_percentage": 0
}
}