Skip to main content
Version: 2025-05-27

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.

important

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.

Example allocations configuration:

{
"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_id
  • project_id

Example request to create a draft target group:

curl -X POST \
'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups' \
-H 'Content-Type: application/json' \
-H 'idempotency-key: <GENERATE_NEW_UUID_HERE>' \
-H 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27' \
-d '{
"name": "Test-Only 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": "0.10",
"currency_code": "USD"
},
"locale": "eng_us",
"collects_pii": false,
"filling_goal": 10,
"expected_length_of_interview_minutes": 1,
"expected_incidence_rate": 1.0,
"fielding_specification": {
"start_at": "2025-07-25T08:00:00.000Z",
"end_at": "2025-08-01T23:59:59.000Z"
},
"live_url": "https://yourtestsurvey.com/?RID=[%RID%]",
"test_url": "https://yourtestsurvey.com/?RID=[%RID%]",
"allocations": [
{
"type": "group",
"name": "Cint Test Supplier",
"percentage_min": 0,
"percentage_max": 100,
"suppliers": [ { "id": 980 } ]
},
{
"type": "exchange",
"name": "Open Exchange Blocked",
"percentage_min": 0,
"percentage_max": 0,
"suppliers": []
}
],
"profile": {
"profile_adjustment_type": "percentage",
"drafts": [],
"interlocked_profiles": []
}
}'

Updating an existing target group

You can utilize the update target group allocations endpoint to update a target group that has been launched.

note

The update target group allocations endpoint can only be used for launched target groups.

  • Path parameters:
  • account_id
  • project_id
  • target_group_id

Example request to update an existing target group:

curl -L -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 <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27' \
-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:

note

The retrieve target group allocations endpoint can only be used for launched target groups.

  • Path parameters:
  • account_id
  • project_id
  • target_group_id

Example request to verify allocation settings:

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 <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-05-27'

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
}
}
Troubleshooting FAQ
HTTP 400 Bad Request
  • Verify the supplier ID (980) is correctly specified as an integer.
  • Ensure percentage_min and percentage_max are valid integers.
  • Check all other mandatory fields for target group creation/update are present and correct.
HTTP 412 Precondition Failed (for PUT requests to non-draft TGs)

This indicates an outdated ETag. Always perform a GET call to retrieve the latest ETag immediately before making an update request to a live target group.

Still getting real respondents
  • Verify Step 3: Use GET /target-groups/{id} to ensure your supply_allocations are correctly set. There might be a typo, or the update might not have applied.
  • Confirm that the exchange allocation is set correct to zero; percentage_max: 0.
  • Ensure the supplier ID for the test supplier is 980.
Test supplier not sending respondents
  • Check the test_url and live_url in the target group configuration to ensure they are valid and accessible.
  • Ensure your target group is live.
  • Confirm your survey platform is correctly handling the inbound rid query parameter and making the necessary S2S API calls for respondent validation.