Create a target group
Let's create your first target group using the create draft target group endpoint.
API endpoint
POST /v1/demand/accounts/{account_id}/projects/{project_id}/target-groups
Path parameters
You'll need to include the following parameters in the URL:
account_id(string, required): Your unique account identifier.- Example:
12345
- Example:
project_id(string, required): The unique identifier of the project.- Example:
01JX2KPG5VEBF8498Z8YTTE8TB
- Example:
Request headers
You'll need to include these headers in your request:
| Header | Description | Example |
|---|---|---|
Authorization | Your JWT token prefixed with Bearer. | Bearer eyJhbGc... |
Cint-API-Version | The API version you are targeting. | 2025-12-18 |
Content-Type | Must be application/json. | application/json |
The idempotency-key header is not required for this endpoint. Each request creates a new target group.
Request body
For the full list of request body parameters, see the create draft target group endpoint documentation.
Example request body: There are a few key steps to note in the example request body below:
- You'll need to replace
<YOUR_BUSINESS_UNIT_ID>and<YOUR_PROJECT_MANAGER_ID>with your actual business unit ID and project manager ID. - The currency code in the
cost_per_interviewandmaximum_cpifields should match the business unit's currency. - The
fielding_specificationdates must be in the future and follow the ISO 8601 format.
{
"name": "My first 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": "EUR"
},
"collects_pii": false,
"expected_length_of_interview_minutes": 5,
"expected_incidence_rate": 0.8,
"fielding_specification": {
"start_at": "2026-09-02T08:22:18.822Z",
"end_at": "2026-09-13T08:22:18.821Z"
},
"live_url": "https://mytestsurvey.com/?RID=[%RID%]",
"test_url": "https://mytestsurvey.com/?RID=[%RID%]",
"fielding_assistant_assignment": {
"pricing": {
"type": "dynamic",
"maximum_cpi": {
"value": "2.7352",
"currency_code": "EUR"
}
},
"quota_overlay": {
"prevent_overfill": true,
"balance_fill": false
}
},
"exclusion": {
"enabled": true,
"list": []
},
"locale": "ger_de",
"completes_goal": 10,
"profiling": {
"profile_adjustment_type": "percentage",
"profiles": [
{
"object": "regular",
"name": "birth gender",
"quotas_enabled": true,
"targets": [
{
"conditions": [
{
"object": "selection",
"question_id": 43,
"option": "1"
}
],
"quota": {
"name": "SF-BirthGender-Quota-1",
"completes_goal_percentage": 50
}
},
{
"conditions": [
{
"object": "selection",
"question_id": 43,
"option": "2"
}
],
"quota": {
"name": "SF-BirthGender-Quota-2",
"completes_goal_percentage": 50
}
}
]
}
]
}
}
Example request (cURL)
Example request to create a new 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 'Authorization: Bearer <YOUR_JWT_TOKEN>' \
-H 'Cint-API-Version: 2025-12-18' \
-d '{
"name": "My first 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": "EUR"
},
"collects_pii": false,
"expected_length_of_interview_minutes": 5,
"expected_incidence_rate": 0.8,
"fielding_specification": {
"start_at": "2026-09-02T08:22:18.822Z",
"end_at": "2026-09-13T08:22:18.821Z"
},
"live_url": "https://mytestsurvey.com/?RID=[%RID%]",
"test_url": "https://mytestsurvey.com/?RID=[%RID%]",
"fielding_assistant_assignment": {
"pricing": {
"type": "dynamic",
"maximum_cpi": {
"value": "2.7352",
"currency_code": "EUR"
}
},
"quota_overlay": {
"prevent_overfill": true,
"balance_fill": false
}
},
"exclusion": {
"enabled": true,
"list": []
},
"locale": "ger_de",
"completes_goal": 10,
"profiling": {
"profile_adjustment_type": "percentage",
"profiles": [
{
"object": "regular",
"name": "birth gender",
"quotas_enabled": true,
"targets": [
{
"conditions": [
{
"object": "selection",
"question_id": 43,
"option": "1"
}
],
"quota": {
"name": "SF-BirthGender-Quota-1",
"completes_goal_percentage": 40
}
},
{
"conditions": [
{
"object": "selection",
"question_id": 43,
"option": "2"
}
],
"quota": {
"name": "SF-BirthGender-Quota-2",
"completes_goal_percentage": 60
}
}
]
}
]
}
}'
Example response
A successful request returns an HTTP 201 Created status code and a JSON object with the new target group's ID.
Example success response:
{
"id": "01JX2X0N5RTR012AYDTA83QWTW"
}
| Property | Type | Description |
|---|---|---|
id | string | The unique identifier for the newly created target group. You'll use this ID for subsequent API calls related to this target group. |
Error responses
If your request is unsuccessful, the API will return an error response with an appropriate HTTP status code.
Example error response for a validation failure (400 Bad Request):
{
"object": "bad_request_error",
"detail": "request had validation errors",
"invalid_params": [
{
"name": "FieldingSpecification.EndAt",
"reason": "date string 2025-06-29T08:22:18.821Z must be greater than or equal to the current datetime plus 1 hour."
},
{
"name": "ExpectedCompletes",
"reason": "'Expected Completes' must not be empty."
}
]
}
Next steps
Now that you have your first target group, let’s set up your first feasibility request.