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-05-27 |
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",
"filling_goal": 10,
"profile": {
"profile_adjustment_type": "percentage",
"drafts": [
{
"question_id": 42,
"quotas_enabled": true,
"conditions": {
"object": "range_conditions_details_template",
"data": [
{
"min": 18,
"max": 24
},
{
"min": 25,
"max": 35
},
{
"min": 36,
"max": 45
}
]
},
"quotas": {
"ungrouped": [
{
"index": 0,
"quota_percentage": 40
},
{
"index": 1,
"quota_percentage": 30
},
{
"index": 2,
"quota_percentage": 30
}
],
"grouped": []
}
}
]
}
}
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-05-27' \
-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",
"filling_goal": 10,
"profile": {
"profile_adjustment_type": "percentage",
"drafts": [
{
"question_id": 42,
"quotas_enabled": true,
"conditions": {
"object": "range_conditions_details_template",
"data": [
{
"min": 18,
"max": 24
},
{
"min": 25,
"max": 35
},
{
"min": 36,
"max": 45
}
]
},
"quotas": {
"ungrouped": [
{
"index": 0,
"quota_percentage": 40
},
{
"index": 1,
"quota_percentage": 30
},
{
"index": 2,
"quota_percentage": 30
}
],
"grouped": []
}
}
]
}
}'
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, and details on what parameters or attributes in the payload were invalid.
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": "FillingGoal",
"reason": "'Filling Goal' must not be empty."
}
]
}
Next steps
Now that you have your first target group, let’s set up your first feasibility request.