Skip to main content
Version: 2025-12-18

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
  • project_id (string, required): The unique identifier of the project.
    • Example: 01JX2KPG5VEBF8498Z8YTTE8TB

Request headers

You'll need to include these headers in your request:

HeaderDescriptionExample
AuthorizationYour JWT token prefixed with Bearer.Bearer eyJhbGc...
Cint-API-VersionThe API version you are targeting.2025-12-18
Content-TypeMust be application/json.application/json
note

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_interview and maximum_cpi fields should match the business unit's currency.
  • The fielding_specification dates 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"
}
PropertyTypeDescription
idstringThe 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.