How to update quotas and filling goal for a launched target group
This guide explains how to dynamically adjust the overall target group filling goal and individual quota filling goals for a live (non-draft) survey. This is a common operation during fieldwork to optimize respondent collection.
As fieldwork progresses, you might need to increase or decrease the desired number of completes for your entire survey or for specific segments within your target audience. Updating filling goals allows you to fine-tune your survey's requirements in real-time.
Steps to update filling goals
Follow these steps to adjust filling goals for your target group and its individual quotas:
Step 1: Retrieve profile and quota IDs
Before you can update filling goals, you need the specific identifiers for your profiles and their associated quotas.
- Action: Make a
GETcall to the get profiles endpoint for your target group.GET https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/profiles
- Purpose: This will provide a list of all profiles within your target group, along with their
profile_ids and thequota_ids for each of their segments. - Outcome: Identify and cache the
profile_ids and correspondingquota_ids for the specific segments whose filling goals you want to update.
Example GET /profiles response snippet (to identify IDs):
{
"data": [
{
"id": "01JN3WYAXKN1DCHX9WF5617505", // Profile ID
"name": "Cardinal regions",
"quotas_enabled": true,
"conditions": { /* ... */ },
"quotas": {
"ungrouped": [
{
"id": "01JN3WYAXKN1DCHX9WF5617506", // Quota ID 1
"text": "North Eastern Scotland",
"filling_goal": 15,
"completes": 0
},
{
"id": "01JN3WYAXKN1DCHX9WF5617507", // Quota ID 2
"text": "Midlands",
"filling_goal": 10,
"completes": 0
}
// ... more quotas
],
"grouped": []
}
}
]
}
Step 2: Update quotas and target group filling goal
Send a PUT request to update the desired filling goals.
- API endpoint:
PUT https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/profiles/filling-goal - Path parameters: Include your
account_id,project_id, andtarget_group_idin the URL. - Request headers: Include
Authorization,Cint-API-Version, andContent-Type: application/json. - Request body: The request body must be
application/json. It should contain the overallfilling_goalfor the target group and an array ofprofiles, each specifying itsprofile_idand an array ofquotaswith their respectivequota_idand updatedfilling_goal. Important: Thefilling_goalvalues for individual quotas are expressed as the actual number of completes, not percentages.
This example updates the overall target group filling goal to 50 and adjusts individual quota goals for a profile with ID 01JN3WYAXKN1DCHX9WF5617505.
{
"filling_goal": 50, // Overall target group filling goal
"profiles": [
{
"profile_id": "01JN3WYAXKN1DCHX9WF5617505", // ID of the profile to update
"quotas": [
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617506",
"filling_goal": 15 // Set to 15 completes
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617507",
"filling_goal": 10 // Set to 10 completes
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617508",
"filling_goal": 9 // Set to 9 completes
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617509",
"filling_goal": 16 // Set to 16 completes
}
]
}
]
}
Example cURL request:
curl --request PUT \
--url 'https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/profiles/filling-goal' \
--header 'authorization: Bearer <YOUR_JWT_TOKEN>' \
--header 'content-type: application/json' \
--header 'Cint-API-Version: 2025-02-17' \
--header 'idempotency-key: <GENERATE_NEW_UUID_HERE>' \
--data '{
"filling_goal": 50,
"profiles": [
{
"profile_id": "01JN3WYAXKN1DCHX9WF5617505",
"quotas": [
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617506",
"filling_goal": 15
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617507",
"filling_goal": 10
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617508",
"filling_goal": 9
},
{
"quota_id": "01JN3WYAXKN1DCHX9WF5617509",
"filling_goal": 16
}
]
}
]
}'
Remember to replace all bracketed placeholders (e.g., <YOUR_ACCOUNT_ID>) with your actual values.
Step 3: Verify updated filling goals
After sending the PUT request, confirm that the filling goals have been correctly updated.
- Action: Make another
GETcall to the get profiles endpoint. - Purpose: Check if the
filling_goalparameter for the overall target group and for all associated quotas within your profiles are now reflecting the new values you submitted. - Outcome: The response will show the updated
filling_goalfor each quota and the target group.
Example response snippet (after successful update):
{
"data": [
{
"id": "01JN3WYAXKN1DCHX9WF5617505",
"legacy_id": "244536971",
"question_id": 200842,
"name": "Cardinal regions",
"quotas_enabled": true,
"description": "In which region do you live?",
"conditions": { /* ... */ },
"quotas": {
"ungrouped": [
{
"id": "01JN3WYAXKN1DCHX9WF5617506",
"legacy_id": "302560732",
"quota_percentage": 150, // Note: quota_percentage might adjust automatically based on new filling_goal
"quota": 1,
"filling_goal": 15, // Updated
"prescreens": 0,
"completes": 0,
"completes_goal": 15, // Updated
"condition": "01JN3WYAXKN1DCHX9WF5617506"
},
{
"id": "01JN3WYAXKN1DCHX9WF5617507",
"legacy_id": "302560736",
"quota_percentage": 100,
"quota": 4,
"filling_goal": 10, // Updated
"prescreens": 0,
"completes": 0,
"completes_goal": 10, // Updated
"condition": "01JN3WYAXKN1DCHX9WF5617507"
},
{
"id": "01JN3WYAXKN1DCHX9WF5617508",
"legacy_id": "302560737",
"quota_percentage": 90,
"quota": 4,
"filling_goal": 9, // Updated
"prescreens": 0,
"completes": 0,
"completes_goal": 9, // Updated
"condition": "01JN3WYAXKN1DCHX9WF5617508"
},
{
"id": "01JN3WYAXKN1DCHX9WF5617509",
"legacy_id": "302560738",
"quota_percentage": 160,
"quota": 1,
"filling_goal": 16, // Updated
"prescreens": 0,
"completes": 0,
"completes_goal": 16, // Updated
"condition": "01JN3WYAXKN1DCHX9WF5617509"
}
],
"grouped": []
}
}
]
}
Troubleshooting
HTTP 404 Not Found: Theaccount_id,project_id, ortarget_group_idin your URL, or theprofile_id/quota_ids in the request body, are incorrect or do not exist.HTTP 400 Bad Request:- Ensure all
filling_goalvalues (both for the target group and individual quotas) are provided as valid numbers (integers or strings that represent integers). - Verify that
profile_ids andquota_ids in the request body are valid and correctly associated. - Ensure the target group is in a non-draft (live) status for this operation.
- Check for any other validation messages in the error response (e.g., if the sum of individual quota
filling_goals doesn't align with the overallfilling_goalin a way that Cint's system expects).
- Ensure all
filling_goalnot updating: Reconfirm theprofile_idandquota_idvalues match those retrieved in Step 1.