Skip to main content
Version: 2025-05-27

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 GET call 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 the quota_ids for each of their segments.
  • Outcome: Identify and cache the profile_ids and corresponding quota_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, and target_group_id in the URL.
  • Request headers: Include Authorization, Cint-API-Version, and Content-Type: application/json.
  • Request body: The request body must be application/json. It should contain the overall filling_goal for the target group and an array of profiles, each specifying its profile_id and an array of quotas with their respective quota_id and updated filling_goal. Important: The filling_goal values 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 GET call to the get profiles endpoint.
  • Purpose: Check if the filling_goal parameter 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_goal for 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: The account_id, project_id, or target_group_id in your URL, or the profile_id/quota_ids in the request body, are incorrect or do not exist.
  • HTTP 400 Bad Request:
    • Ensure all filling_goal values (both for the target group and individual quotas) are provided as valid numbers (integers or strings that represent integers).
    • Verify that profile_ids and quota_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 overall filling_goal in a way that Cint's system expects).
  • filling_goal not updating: Reconfirm the profile_id and quota_id values match those retrieved in Step 1.