openapi: 3.0.3 info: title: Demand Accounts Target Groups API description: 'Cint''s demand ordering API is REST oriented. It has predictable resource based URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. Error responses are also JSON-encoded and follow a standard format, providing a unique error ID and detailed information about what went wrong. Authentication is handled via bearer tokens passed in the `Authorization` header. All requests must also include a `Cint-API-Version` header with a date in `YYYY-MM-DD` format to specify the desired API version. Depending on the version you use, endpoint behavior may differ as we improve our API with every version release. While many operations work on a single object per request, the demand ordering API also provides asynchronous batch endpoints for performing bulk updates efficiently on certain resources. For safety, `POST` requests support an `Idempotency-Key` header to allow for safe retries without accidentally performing the same operation twice. ' version: '2025-12-18' servers: - description: Production server url: https://api.cint.com/v1 security: - BearerAuth: [] tags: - name: Target Groups description: Create, update, list and other operations on Target Groups. A Target Group is the main unit of work in the Exchange. paths: /demand/accounts/{account_id}/projects/{project_id}/target-groups: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_list_target_groups summary: List target groups for a project description: Fetch a paginated list of essential data points and statistical metrics related to Target Groups of a single project, such as current status, progress, and other relevant details, based on filter criteria such as language, country, name, etc. tags: - Target Groups parameters: - $ref: '#/components/parameters/EndBefore' - $ref: '#/components/parameters/StartAfter' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/TargetGroupExclusionStatus' - $ref: '#/components/parameters/TargetGroupName' - $ref: '#/components/parameters/TargetGroupSearchString' - $ref: '#/components/parameters/TargetGroupHumanReadableIds' - $ref: '#/components/parameters/TargetGroupCustomerReferenceNumbers' - $ref: '#/components/parameters/TargetGroupStatus' - $ref: '#/components/parameters/TargetGroupCountry' - $ref: '#/components/parameters/TargetGroupLanguage' - $ref: '#/components/parameters/ProjectManagerIDFilter' responses: '200': description: A successful response returns a paginated list of matching Target Groups along with details such as attributes and metrics. content: application/json: schema: $ref: '#/components/schemas/TargetGroupsList' headers: traceparent: $ref: '#/components/headers/Traceparent' tracestate: $ref: '#/components/headers/Tracestate' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' post: operationId: create_target_group summary: Create a target group in draft status description: 'Creates a new target group in `draft` status. Key behaviors: * The `profiles` attribute is optional. However, if you provide it, you must also set the `profile_adjustment_type`. * **Constraint:** A given profile (or question) ID must appear in _only one_ of the arrays. Duplicate IDs will cause the request to fail. The API automatically removes duplicate open-ended values in this request before validation and saving, but rejects duplicates in selection or range conditions. ' tags: - Target Groups requestBody: description: Create target group request required: true content: application/json: schema: $ref: '#/components/schemas/CreateDraftTargetGroupRequest' responses: '201': description: Successfully created a Target Group in draft status. content: application/json: schema: $ref: '#/components/schemas/CreatedDraftTargetGroupResponse' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group summary: Retrieve a draft target group description: 'Retrieves a target group by its ID. **Note:** This endpoint is intended for `draft` target groups. If the requested target group is not in draft status, this endpoint will return a `301 Moved Permanently` redirect to it''s target group details endpoint. ' tags: - Target Groups responses: '200': description: Successfully returned a draft Target Group. content: application/json: schema: allOf: - $ref: '#/components/schemas/FetchTargetGroupResponse' - $ref: '#/components/schemas/DraftTargetGroupLinks' '301': description: Redirecting, as the draft Target Group has been launched headers: location: $ref: '#/components/headers/Location' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' put: operationId: update_target_group summary: Update a target group in draft status description: "Update a target group in draft status.\n\nprofiles is optional field. If provided, `profile_adjustment_type` must be set as `percentage` or `nominal`.\n\n**Constraint:** a given profile (or question) ID must appear in _only one_ of these arrays. \nIf the same ID is listed in more than one `profile`, the draft will fail to save.\n\nThe API automatically removes duplicate open-ended values in this request before validation and saving, but rejects duplicates in selection or range conditions.\n" tags: - Target Groups requestBody: description: Update target group request required: true content: application/json: schema: $ref: '#/components/schemas/UpdateDraftTargetGroupRequest' responses: '204': description: Successfully updated a Target Group in draft status. headers: traceparent: $ref: '#/components/headers/Traceparent' tracestate: $ref: '#/components/headers/Tracestate' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/details: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_details summary: Retrieve target group details description: 'Fetch details of a launched Target Group, such as Business Unit ID, Study Type ID, Industry ID, Locale, Completes Goal, and other metadata related to the Target Group. Attempting to retrieve a draft Target Group details will result in a Not Found error.' tags: - Target Groups responses: '200': description: A successful response returns a paginated list of matching Target Groups along with details such as attributes and metrics. content: application/json: schema: allOf: - $ref: '#/components/schemas/TargetGroupDetails' - $ref: '#/components/schemas/TargetGroupLinks' headers: traceparent: $ref: '#/components/headers/Traceparent' tracestate: $ref: '#/components/headers/Tracestate' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' put: operationId: update_launched_target_group_details summary: Update launched target group details description: 'Update a launched Target Group details, such as the Project Manager ID, Live URL, and other metadata related to the Target Group. Attempting to update a draft Target Group details will result in a Not Found error.' tags: - Target Groups requestBody: description: The Target Group update request. required: true content: application/json: schema: $ref: '#/components/schemas/TargetGroupDetailsUpdateRequest' responses: '200': description: A successful response returns updated Target Group details. content: application/json: schema: $ref: '#/components/schemas/TargetGroupDetails' headers: traceparent: $ref: '#/components/headers/Traceparent' tracestate: $ref: '#/components/headers/Tracestate' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/business-units/{business_unit_id}/rate-card: parameters: - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: summary: Retrieve a rate card description: Rate Cards predefine the prices that a buyer will be charged for sessions on a Target Group that fits the equivalent IR and LOI metrics. Buyers can understand the interaction of the active Rate Card on a Target Group with the statistics, price changes and available configurations such as maximum prices and price boost via help documents and guides. This API allows buyers to look up a Rate Card based on the provided search parameters. The Rate Card is returned as a 2D array where each row array is LOI (with the number and value of the rows defined by the length_of_interview_minutes) and each column (index within a row array) is IR in percentage with the values defined by the incidence_rate_percents field. operationId: get_rate_card parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/BusinessUnitID' - $ref: '#/components/parameters/CountryCode' tags: - Target Groups responses: '200': description: Successfully return matching Rate Card. content: application/json: schema: $ref: '#/components/schemas/RateCard' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/rate-card: parameters: - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: summary: Retrieve a target group's rate card description: Depending on the state of the Target Group, this may be a predicted Rate Card, which may be replaced by a new version before the Target Group collects completes or the actual Rate Card which is permanently associated with the Target Group. This association is made when the Target Group first goes live. Rate Cards predefine the prices that a buyer will be charged for sessions on a Target Group that fits the equivalent IR and LOI metrics. Buyers can understand the interaction of the active Rate Card on a Target Group with the statistics, price changes and available configurations such as maximum prices and price boost via help documents and guides. The Rate Card is returned as a 2D array where each row array is LOI (with the number and value of the rows defined by the length_of_interview_minutes) and each column (index within a row array) is IR in percentage with the values defined by the incidence_rate_percents field. operationId: get_target_group_rate_card parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' tags: - Target Groups responses: '200': description: Successfully return matching Rate Card. content: application/json: schema: oneOf: - $ref: '#/components/schemas/PredictedRateCard' - $ref: '#/components/schemas/BoundRateCard' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/cost-per-interview: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' put: operationId: update_cost_per_interview summary: Update target group cost per interview description: Updates the cost per interview to the value specified in the request body. The target group cannot be in draft state. The Target Group CPI must not exceed the platform limit of $105.00. For non-USD amounts, the CPI is compared against the equivalent limit in the provided currency. Note - This limit is subject to platform configuration and may change. tags: - Target Groups requestBody: description: Cost per interview update request. required: true content: application/json: schema: $ref: '#/components/schemas/CostPerInterviewUpdateRequest' responses: '200': description: Cost per interview on target group successfully updated. content: application/json: schema: $ref: '#/components/schemas/CostPerInterviewUpdateResponse' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/filling-strategy: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' put: operationId: update_filling_strategy summary: Update target group filling strategy description: Updates the filling strategy to the value specified in the request body. tags: - Target Groups requestBody: description: Filling strategy update request. required: true content: application/json: schema: $ref: '#/components/schemas/FillingStrategyUpdateRequest' responses: '200': description: Filling strategy on target group successfully updated. content: application/json: schema: $ref: '#/components/schemas/FillingStrategyUpdateResponse' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '405': $ref: '#/components/responses/Error_MethodNotAllowed' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/compute-target-group-transitions: parameters: - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' post: summary: Compute available target group transitions description: Returns all target group Ids for the given query parameters and the available possible actions on the returned set of target groups. operationId: compute_target_group_transitions parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' requestBody: description: Compute target group transitions request. required: true content: application/json: schema: $ref: '#/components/schemas/ComputeTargetGroupTransitionsRequest' tags: - Target Groups responses: '200': description: Target group Ids with their possible actions. headers: traceparent: $ref: '#/components/headers/Traceparent' tracestate: $ref: '#/components/headers/Tracestate' content: application/json: schema: $ref: '#/components/schemas/ComputeTargetGroupTransitionsResponse' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/overview: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_overview summary: Retrieve basic attributes and stats for a target group description: 'Fetch a set of essential data points and statistical metrics related to a specific launched Target Group, such as its current status, progress, and other relevant details. Attempting to retrieve a draft Target Group overview will result in a Not Found error.' tags: - Target Groups responses: '200': description: A successful response returns requested Target Group attributes and statistics. content: application/json: schema: $ref: '#/components/schemas/TargetGroupOverview' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/target-groups/{target_group_id}/overview: parameters: - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_overview_by_target_group_id summary: Retrieve basic attributes and stats for a target group by ID description: Fetch a set of essential data points and statistical metrics related to a specific launched Target Group, such as its current status, progress, and other relevant details. tags: - Target Groups responses: '200': description: A successful response returns requested Target Group attributes and statistics. content: application/json: schema: $ref: '#/components/schemas/TargetGroupOverviewByTargetGroupId' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/performance: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_performance summary: Retrieve a target group's performance metrics description: Fetch a set of essential data points and statistical metrics related to a specific launched Target Group. tags: - Target Groups responses: '200': description: A successful response returns requested Target Group statistics. content: application/json: schema: $ref: '#/components/schemas/TargetGroupPerformance' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/completes-aggregated-by-interval: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/AggregationInterval' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_completes_aggregated_by_interval summary: Retrieve a target group's collected completes tags: - Target Groups description: Returns a list of timestamps according to the aggregation interval and the Target Group's fielding period, with a count of completes collected thus far for each interval. When no interval is provided as a parameter, the endpoint defaults to an interval of 24 hours. responses: '200': description: Successfully return list of intervals with counts. content: application/json: schema: $ref: '#/components/schemas/TargetGroupCollectedCompletesAggregatedIntervalsResponse' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' /demand/accounts/{account_id}/projects/{project_id}/target-groups/{target_group_id}/changelog: parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/ProjectID' - $ref: '#/components/parameters/TargetGroupID' - $ref: '#/components/parameters/ChangelogPageSize' - $ref: '#/components/parameters/StartAfter' - $ref: '#/components/parameters/EndBefore' - $ref: '#/components/parameters/TargetGroupChangeTypes' - $ref: '#/components/parameters/CintAPIVersion-2025-12-18' get: operationId: get_target_group_changelog summary: Retrieve a target group's Changelog tags: - Target Groups description: 'Returns a paginated list of historical changes for the target group. **Note:** The list of change types is extensible. Consumers should expect that new change types may be introduced in the future. ' responses: '200': description: Successfully return list of profiles. content: application/json: schema: $ref: '#/components/schemas/TargetGroupChangelogList' '400': $ref: '#/components/responses/Error_BadRequest' '401': $ref: '#/components/responses/Error_Unauthorized' '403': $ref: '#/components/responses/Error_Forbidden' '404': $ref: '#/components/responses/Error_NotFound' '500': $ref: '#/components/responses/Error_Internal' components: schemas: FieldingAssistantModulesAssignment: title: Fielding Assistant modules assignment description: A container for all enabled Fielding Assistant modules for a target group. Each module is optional; if a module is omitted or set to `null`, it is considered disabled. type: object properties: pricing: oneOf: - $ref: '#/components/schemas/ModuleDynamicPricing' - $ref: '#/components/schemas/ModuleRateCardPricing' nullable: true quota_overlay: allOf: - $ref: '#/components/schemas/ModuleQuotaOverlay' nullable: true pacing: oneOf: - $ref: '#/components/schemas/ModuleLinearPacing' - $ref: '#/components/schemas/ModuleAdaptivePacing' - $ref: '#/components/schemas/ModuleGeminiPacing' nullable: true soft_launch: allOf: - $ref: '#/components/schemas/ModuleSoftLaunch' nullable: true LocaleCodeWithReference: type: string description: Unique text code of the locale. Get a list of all available locales [here](#tag/Definitions/operation/get_locales). example: eng_us CreateDraftAllocationSpecificationGroupRequest: description: Create allocation specification request object. Allowing you to set which suppliers are blocked, how the allocated suppliers are distributed into groups, and what their minimum and maximum percentages are. type: object required: - open_exchange_allocations properties: open_exchange_allocations: type: object required: - blocked_supplier_ids - exchange_max_percentage - exchange_min_percentage - groups properties: blocked_supplier_ids: $ref: '#/components/schemas/SupplierIds' exchange_min_percentage: type: integer minimum: 0 maximum: 100 example: 0 exchange_max_percentage: type: integer minimum: 0 maximum: 100 example: 100 groups: type: array items: type: object required: - group_name - min_percentage - max_percentage - suppliers properties: group_name: description: only unique group names are valid. type: string example: Open group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 suppliers: $ref: '#/components/schemas/SupplierIds' private_exchange_allocations: type: object required: - blocked_supplier_ids - groups properties: blocked_supplier_ids: $ref: '#/components/schemas/SupplierIds' groups: type: array items: type: object required: - group_name - min_percentage - max_percentage - supplier_id properties: group_name: description: only unique group names are valid. type: string example: Private group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 supplier_id: type: string example: '123' PacingGeminiExposedTargetGroupId: type: string format: ulid description: A 128 bit ULID. 26 characters, consisting of 10 characters representing the timestamp at the time of creation, and 16 characters for randomness. example: 01HC2K97AV64A8KSJT7GPH4ZC7 ModuleSoftLaunch: title: Soft launch type: object description: Manages a soft launch of a target group. During a soft launch, pacing modules are ignored. properties: end_at: type: string description: The soft launch will be finished at this date, and the target group paused regardless of the fill. format: date-time example: '2023-01-01T23:00:00.000Z' filling_goal_percentage: description: The percentage of the full filling goal to collect during the soft launch phase. type: integer minimum: 1 maximum: 100 example: 1 demographics_strictness_percentage: description: Controls how strictly the soft launch's demographic distribution should follow the full launch's distribution. A value of `100` aims to match the distribution perfectly, while `0` allows any distribution. type: integer minimum: 0 maximum: 100 example: 1 required: - end_at - filling_goal_percentage - demographics_strictness_percentage schemas-TargetGroupStatus: type: array items: $ref: '#/components/schemas/TargetGroupStatus' FetchTargetGroupResponse: type: object description: Response object for a target group. properties: human_readable_id: $ref: '#/components/schemas/TargetGroupHumanReadableID' name: $ref: '#/components/schemas/TargetGroupName' business_unit_id: $ref: '#/components/schemas/BusinessUnitIDAsInteger' locale: $ref: '#/components/schemas/LocaleCode' collects_pii: $ref: '#/components/schemas/TargetGroupCollectsPII' study_type_code: $ref: '#/components/schemas/StudyTypeCode' industry_code: $ref: '#/components/schemas/IndustryCode' pricing_model: $ref: '#/components/schemas/TargetGroupPricingModel' cost_per_interview: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmount' client_cost_per_interview_note: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmount' client_id: $ref: '#/components/schemas/TargetGroupClientID' project_manager_id: $ref: '#/components/schemas/UserID' fielding_specification: $ref: '#/components/schemas/TargetGroupFieldingSpecification' completes_goal: $ref: '#/components/schemas/CompletesGoal' expected_length_of_interview_minutes: $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' expected_incidence_rate: $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' exclusion: $ref: '#/components/schemas/TargetGroupExclusionObject' respondent_activity_exclusions: $ref: '#/components/schemas/TargetGroupRespondentActivityExclusionsResponse' industry_lockout_code: $ref: '#/components/schemas/TargetGroupIndustryLockoutCode' live_url: $ref: '#/components/schemas/TargetGroupLiveUrl' test_url: $ref: '#/components/schemas/TargetGroupTestUrl' fielding_assistant_assignment: $ref: '#/components/schemas/FieldingAssistantModulesAssignment' created_at: type: string format: date-time description: The timestamp indicating when the Target Group was created (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' profiling: $ref: '#/components/schemas/ProfilingResponse' allocations: $ref: '#/components/schemas/GetDraftSupplyAllocationGroupResponse' re_entry_configuration: description: This will only be included in the response if your account has access to this feature. If your account does not have access, the response will not contain this field. For more information if you need this behaviour, please contact your account manager. allOf: - $ref: '#/components/schemas/ReEntryConfiguration' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true example: human_readable_id: 9NRV3B9 name: Test Target Group business_unit_id: '3337' locale: spa_us collects_pii: false study_type_code: adhoc industry_code: other cost_per_interview: value: '2.7352' currency_code: USD client_cost_per_interview_note: value: '2.7352' currency_code: USD project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9 client_id: 1234 fielding_specification: start_at: '2025-06-20T15:11:35.699Z' end_at: '2025-06-30T15:11:35.699Z' completes_goal: 1500 expected_length_of_interview_minutes: 2 expected_incidence_rate: 0.9 exclusion: enabled: true list: - entity_type: RID entity_ids: - 5a3b2ada-0066-4dcb-afdd-7302be78ce9e respondent_activity_exclusions: - type: target-group id: 01KH2714RHRTGCGQV47FHHY8S8 duration: P90D - type: project id: 01KH287TE2W1GKTJJ91QCCHWP9 duration: P90D industry_lockout_code: no_lock_out live_url: https://example.com/live test_url: https://example.com/test fielding_assistant_assignment: pricing: type: dynamic total_budget: value: '2.7352' currency_code: USD maximum_cpi: value: '2.7352' currency_code: USD minimum_cpi: value: '2.7352' currency_code: USD quota_overlay: prevent_overfill: true balance_fill: true pacing: type: linear increment_interval: string soft_launch: end_at: '2023-01-01T23:00:00.000Z' filling_goal_percentage: 1 demographics_strictness_percentage: 100 created_at: '2025-01-01T23:00:00.000Z' profiling: profile_adjustment_type: percentage profiles: - object: regular id: 01JY5Q1GY7JWX1JHQH8D1W2N9Z name: birth gender description: ¿Es usted…? description_translated: What is your gender? quotas_enabled: true targets: - name: SF-BirthGender-Quota-1 id: 01JY5V5NDSVHG8S3FX63Y73K3F text: Hombre text_translated: Male conditions: - object: selection question_id: 43 option: '1' quota: name: SF-BirthGender-Quota-1 completes_goal_percentage: 49.21 completes_goal: 492 quota_nominal: 492 - name: SF-BirthGender-Quota-2 id: 01JY5V67FAY2N5TB8TSK6HWM2G text: Mujer text_translated: Female conditions: - object: selection question_id: 43 option: '2' quota: name: SF-BirthGender-Quota-2 completes_goal_percentage: 50.79 completes_goal: 508 quota_nominal: 508 - object: regular id: 01JY5RJZ2BXP43NC1KHTJKH9SH description: Por favor, indique su edad. description_translated: What is your age? quotas_enabled: true targets: - name: SF-Age-15-19 id: 01JY5V6KT0FSXXXHS8CFST9NWW text: 15 to 19 text_translated: 15 to 19 conditions: - object: range question_id: 42 min: 15 max: 19 quota: completes_goal_percentage: 28.21 completes_goal: 282 quota_nominal: 282 - name: SF-Age-20-29 id: 01JY5V6ZPM95SM01DC61QA8PV4 text: 20 to 29 text_translated: 20 to 29 conditions: - object: range question_id: 42 min: 20 max: 29 quota: completes_goal_percentage: 30.79 completes_goal: 308 quota_nominal: 308 - name: SF-Age-30-39 id: 01JY5V79FGETBEWBB3Q8BZGGQQ text: 30 to 39 text_translated: 30 to 39 conditions: - object: range question_id: 42 min: 30 max: 39 quota: completes_goal_percentage: 21.4 completes_goal: 214 quota_nominal: 214 - name: SF-Age-40-99 id: 01JY5V7M90KG77VGR0Y6C6ZYDD text: 40 to 99 text_translated: 40 to 99 conditions: - object: range question_id: 42 min: 40 max: 99 quota: completes_goal_percentage: 19.6 completes_goal: 196 quota_nominal: 196 - object: regular id: 01JY5S4CXZKEYQ2HHBY8AMABCY description: ¿Cuál es su código postal? description_translated: What is your zip code? quotas_enabled: true targets: - name: SF-ZIP-1 id: 01JY5V9AXTDM6SHJEAHR9ZB87J text: ZIP_1 text_translated: ZIP_1 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '98001' - '98007' - '98125' - '98258' quota: completes_goal_percentage: 50 completes_goal: 500 quota_nominal: 500 - name: SF-ZIP-2 id: 01JY5VAENK83GWHSBP535E13KZ text: ZIP_2 text_translated: ZIP_2 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '78001' - '78007' - '78125' - '78258' quota: completes_goal_percentage: 50 completes_goal: 500 quota_nominal: 500 - object: blended id: 01JY5SFFC6AX91XSRYPRV7TGD4 name: Number of movies watched near grocery description: In the past 2 months, how many movies have you seen in a theater? English - Kosovo, Thinking about grocery shopping for your household, about how often do you shop at each of the following stores for groceries? description_translated: In the past 2 months, how many movies have you seen in a theater?, Thinking about grocery shopping for your household, about how often do you shop at each of the following stores for groceries? quotas_enabled: true targets: - name: SF-Walmart-Movies-1 id: 01JY5VVGQA2GYHQQ52NR90MQY7 text: 0 movies, Wal- Mart text_translated: 0 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-1 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-2 id: 01JY5VZ4NR4AK9C98G45DZMQAQ text: 1 movies, Wal- Mart text_translated: 1 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-2 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-3 id: 01JY5W0M1BD55GAH6JZNMTB748 text: 2 movies, Wal- Mart text_translated: 2 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-3 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-4 id: 01JY5W27HMMM64G75NEAKXRMPR text: 3 movies, Wal- Mart text_translated: 3 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-4 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-5 id: 01JY5W3XKS1PMC78M298YRY75Z text: 4 movies, Wal- Mart text_translated: 4 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-5 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-6 id: 01JY5W56Z2PVS17KAE223SYMWT text: 5 movies, Wal- Mart text_translated: 5 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-6 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Walmart-Movies-7 id: 01JY5W6C7QERBXJK94TZAP350Z text: 6 movies, Wal- Mart text_translated: 6 movies, Wal- Mart conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-7 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-1 id: 01JY5W93WT3K33YPMTSZCYPTYZ text: 0 movies, Target text_translated: 0 movies, Target conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '2' quota: name: SF-Target-1 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-2 id: 01JY5WA51A4SE3AXVDDAKBXJ5P text: 1 movies, Target text_translated: 1 movies, Target conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '2' quota: name: SF-Target-2 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-3 id: 01JY5WB080HA1CZC0532YXSPT6 text: 2 movies, Target text_translated: 2 movies, Target conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '2' quota: name: SF-Target-3 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-4 id: 01JY5WBRGCMEM7B4GD6THCGP91 text: 3 movies, Target text_translated: 3 movies, Target conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '2' quota: name: SF-Target-4 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-5 id: 01JY5WCCC9QJPA8G7E3FYY6W73 text: 4 movies, Target text_translated: 4 movies, Target conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '2' quota: name: SF-Target-5 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-6 id: 01JY5WD1S8N7SYYBK7JBX894Y9 text: 5 movies, Target text_translated: 5 movies, Target conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '2' quota: name: SF-Target-6 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-Target-Movies-7 id: 01JY5WDPWFMX6A6Q4G1FPAM16R text: 6 movies, Target text_translated: 6 movies, Target conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '2' quota: name: SF-Target-7 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-1 id: 01JY5WEA4MHF8DFXY3YV0DRAN2 text: 0 movies, CVS text_translated: 0 movies, CVS conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-1 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-2 id: 01JY5WFA8Z81MNNZ4PKJMXGE81 text: 1 movies, CVS text_translated: 1 movies, CVS conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-2 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-3 id: 01JY5WG16B26G90MY3TSBSJF0N text: 2 movies, CVS text_translated: 2 movies, CVS conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-3 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-4 id: 01JY5WGNA26K4RKST2FWH2CNXM text: 3 movies, CVS text_translated: 3 movies, CVS conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-4 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-5 id: 01JY5WH8AHVXWS76S6S7YNTSX3 text: 4 movies, CVS text_translated: 4 movies, CVS conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-5 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-6 id: 01JY5WHVES46Z3Z8D4S0N8X09R text: 5 movies, CVS text_translated: 5 movies, CVS conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-6 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-CVS-Movies-7 id: 01JY5WJJVE15JT1SW6ZD56H579 text: 6 movies, CVS text_translated: 6 movies, CVS conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-7 completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - name: SF-KROGER id: 01JY5XWWE35A9B577VCMQ0PT0V text: Group 1, Kroger text_translated: Group 1, Kroger conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 157 option: '2' - object: selection question_id: 157 option: '3' - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '8' quota: name: SF-KROGER completes_goal_percentage: 2 completes_goal: 20 quota_nominal: 20 - object: regular id: 01JY5SZRBCNCYJ96A1CCSDH9D7 description: ¿Es usted Hispano, Latino o del origen Español? description_translated: Are you of Hispanic, Latino, or Spanish origin? quotas_enabled: true targets: - name: Group-1 id: 01JY5WKJHBTPFBGK21VGK3YSK0 text: Group-1 text_translated: Group-1 conditions: - object: selection question_id: 47 option: '4' - object: selection question_id: 47 option: '5' - object: selection question_id: 47 option: '6' - object: selection question_id: 47 option: '7' quota: name: Group-1 completes_goal_percentage: 49.21 completes_goal: 492 quota_nominal: 492 - name: Guatemala id: 01JY5WMBJQBMHHBBVXNR5BRKNS text: Guatemala text_translated: Guatemala conditions: - object: selection question_id: 47 option: '8' quota: completes_goal_percentage: 50.79 completes_goal: 508 quota_nominal: 508 - object: regular id: 01JY5T5QZRVCY69TK00BWHSXRZ description: ¿Cuál es su raza? description_translated: What is your race? quotas_enabled: false targets: - name: Asiático - Chino id: 01JY5WNZGMFCAMQTJV6J3QFQAB text: Asiático - Chino text_translated: Chinese conditions: - object: selection question_id: 113 option: '5' - name: Asiático - Coreano id: 01JY5WQD67B8273R1MR3CMKPBW text: Asiático - Coreano text_translated: Korean conditions: - object: selection question_id: 113 option: '8' - name: Asiático - Filipino id: 01JY5WRH7PYZA7P776CX8G6P73 text: Asiático - Filipino text_translated: Filipino conditions: - object: selection question_id: 113 option: '6' - name: Asiático - Indio id: 01JY5WSD5BYXZ85J3JJDK4JDSE text: Asiático - Indio text_translated: Indian conditions: - object: selection question_id: 113 option: '4' - object: regular id: 01KNNMHHA3WX7ZJA5YBTBN8VNA name: STATE description: ¿Cuál es su estado? description_translated: What is your state? quotas_enabled: false targets: - id: 01KNNMJ725HPFGAWN5PRGFX85Z text: ALABAMA text_translated: ALABAMA conditions: - object: selection question_id: 96 option: '1' - id: 01KNNMJV51XJ88TF7ESTRPQBGK text: FLORIDA text_translated: FLORIDA conditions: - object: selection question_id: 96 option: '10' - id: 01KNNMKBS9EFZJZ3TS32C86VNB text: GEORGIA text_translated: GEORGIA conditions: - object: selection question_id: 96 option: '11' - object: blended blended_type: control id: 01KS0CT2B46RSYQG1VTWZR1YYE name: Control quota description: What is your gender?, What is your age?, What is your state? description_translated: What is your gender?, What is your age?, What is your state? quotas_enabled: true targets: - id: 01KS0CT2B46RSYQG1VTWZR1YYF name: Control quota 1 text: Control quota 1 text_translated: Control quota 1 conditions: - object: selection question_id: 43 option: '1' condition_name: Male condition_name_translated: Male - object: range question_id: 42 min: 20 max: 29 condition_name: 20 to 29 condition_name_translated: 20 to 29 - object: selection question_id: 96 option: '1' condition_name: Alabama condition_name_translated: Alabama quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 - id: 01KS0CT2B46RSYQG1VTWZR1YYM name: Control quota 2 text: Control quota 2 text_translated: Control quota 2 conditions: - object: selection question_id: 43 option: '2' condition_name: Female condition_name_translated: Female - object: range question_id: 42 min: 30 max: 39 condition_name: 30 to 39 condition_name_translated: 30 to 39 - object: selection question_id: 96 option: '1' condition_name: Alabama condition_name_translated: Alabama quota: completes_goal_percentage: 10.0 completes_goal: 0 quota_nominal: 0 - id: 01KS0CT2B46RSYQG1VTWZR1YYC name: Control quota 3 text: Control quota 3 text_translated: Control quota 3 conditions: - object: selection question_id: 43 option: '1' condition_name: Male condition_name_translated: Male - object: range question_id: 42 min: 30 max: 39 condition_name: 30 to 39 condition_name_translated: 30 to 39 - object: selection question_id: 96 option: '1' condition_name: Alabama condition_name_translated: Alabama quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 allocations: open_exchange_allocations: blocked_supplier_ids: - '123' - '456' exchange_min_percentage: 0 exchange_max_percentage: 100 groups: - group_name: Open group 1 min_percentage: 0 max_percentage: 100 suppliers: - '123' - '456' private_exchange_allocations: blocked_supplier_ids: - '980' groups: - group_name: Private group 1 min_percentage: 0 max_percentage: 100 supplier_id: '1966' re_entry_configuration: completes: client_side: allow_for_current_target_group: true allow_for_other_target_groups: true pre_client_survey_processes: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true financial_terms: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true terminates: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true security_failures: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true overquota: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true in_screener: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true links: test_client_survey: https://survey.someexamplesurveylink.com/s3/7189709/Example-survey?RID={RID} RespondentActivityExclusionsIDsListResponse: type: object properties: type: description: The type of entity related to the `id`. This value can either be `target-group` or `project`. type: string enum: - target-group - project example: target-group id: description: the unique entity ID. type: string format: ulid example: 01KH2714RHRTGCGQV47FHHY8S8 duration: description: the period of time the target group or project should be excluded for. This syntax follows the ISO 8601 standard for duration. type: string format: duration example: P90D TargetGroupDetails: type: object description: Contains Target Group details. required: - id - name - account_name - business_unit_id - project_manager_id - study_type_code - industry_code - locale - completes_goal - expected_length_of_interview_minutes - expected_incidence_rate - industry_lockout_code - collects_pii - created_at properties: id: type: string pattern: ^[0-9A-Z]{26}$ description: ULID identifier of the Target Group. example: 01BX5ZZKBKACTAV9WEVGEMMVS1 human_readable_id: $ref: '#/components/schemas/TargetGroupHumanReadableID' name: $ref: '#/components/schemas/TargetGroupName' account_name: type: string description: Name of the Account to which the Target Group belongs to. example: Acme Inc. business_unit_id: $ref: '#/components/schemas/BusinessUnitID' project_manager_id: $ref: '#/components/schemas/UserID' study_type_code: $ref: '#/components/schemas/StudyTypeCode' industry_code: $ref: '#/components/schemas/IndustryCode' locale: $ref: '#/components/schemas/LocaleCode' completes_goal: $ref: '#/components/schemas/CompletesGoal' expected_length_of_interview_minutes: $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' expected_incidence_rate: $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' industry_lockout_code: $ref: '#/components/schemas/TargetGroupIndustryLockoutCode' client_cost_per_interview_note: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmount' client_id: $ref: '#/components/schemas/TargetGroupClientID' collects_pii: $ref: '#/components/schemas/TargetGroupCollectsPII' live_url: $ref: '#/components/schemas/TargetGroupLiveUrl' test_url: $ref: '#/components/schemas/TargetGroupTestUrl' created_at: type: string format: date-time description: The timestamp indicating when the Target Group was created (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true RequestDraftQuotaPercentageV3: type: object description: Profile target with condition or conditions and percentage value in quota. required: - conditions - quota properties: conditions: type: array description: List of conditions for the target. minItems: 1 items: $ref: '#/components/schemas/InterlockProfileConditionsV3' quota: type: object required: - completes_goal_percentage properties: name: type: string description: Name of the quota used for tracking. This will be deprecated, functionally replaced by the `target.name` field one layer up in the contract. deprecated: true example: SF_Quota_12 completes_goal_percentage: type: number multipleOf: 0.01 minimum: 0 maximum: 100 description: Percentage of total completes goal quota applied to this condition(s). example: 40 TargetGroupCountry: type: array items: type: string pattern: ^[a-z]{2}$ example: us TargetGroupCollectedCompletesAggregatedIntervalsResponse: type: object required: - aggregated_completes_intervals properties: aggregated_completes_intervals: type: array items: $ref: '#/components/schemas/TargetGroupCollectedCompletesAggregatedIntervals' UpdateDraftTargetGroupRequest: type: object description: Request body for updating a target group in draft status. required: - name - business_unit_id - locale - project_manager_id - fielding_specification - fielding_assistant_assignment - completes_goal - expected_length_of_interview_minutes - expected_incidence_rate - allocations - collects_pii properties: project_manager_id: description: The project manager allOf: - $ref: '#/components/schemas/UserID' fielding_specification: $ref: '#/components/schemas/TargetGroupFieldingSpecification' business_unit_id: $ref: '#/components/schemas/BusinessUnitID' collects_pii: $ref: '#/components/schemas/TargetGroupCollectsPII' cost_per_interview: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmountRequestModel' client_cost_per_interview_note: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmountRequestModel' exclusion: nullable: true allOf: - $ref: '#/components/schemas/TargetGroupExclusionObject' respondent_activity_exclusions: $ref: '#/components/schemas/TargetGroupRespondentActivityExclusionsRequest' expected_incidence_rate: $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' expected_length_of_interview_minutes: allOf: - $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' completes_goal: allOf: - $ref: '#/components/schemas/CompletesGoal' client_id: $ref: '#/components/schemas/TargetGroupClientID' industry_code: $ref: '#/components/schemas/IndustryCodeWithReference' industry_lockout_code: nullable: true allOf: - $ref: '#/components/schemas/TargetGroupIndustryLockoutCodeWithReference' live_url: nullable: true maxLength: 3000 allOf: - $ref: '#/components/schemas/TargetGroupLiveUrl' locale: $ref: '#/components/schemas/LocaleCodeWithReference' name: $ref: '#/components/schemas/TargetGroupName' study_type_code: $ref: '#/components/schemas/StudyTypeCodeWithReference' test_url: nullable: true maxLength: 3000 allOf: - $ref: '#/components/schemas/TargetGroupTestUrl' fielding_assistant_assignment: $ref: '#/components/schemas/FieldingAssistantModulesAssignmentRequestModel' profiling: $ref: '#/components/schemas/ProfilingRequest' allocations: $ref: '#/components/schemas/UpdateDraftSupplyAllocationGroupRequest' re_entry_configuration: description: This field is only applicable if your account has access to this feature. If your account does not have access, including this field in the request will result in a 403 Forbidden error. If you don't require this behaviour or don't have access to the feature, simply omit this field. For more information if you need this behaviour, please contact your account manager. allOf: - $ref: '#/components/schemas/ReEntryConfiguration' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true example: name: Test Target Group business_unit_id: '3337' locale: spa_us collects_pii: false study_type_code: adhoc industry_code: other cost_per_interview: value: '2.7352' currency_code: USD client_cost_per_interview_note: value: '2.7352' currency_code: USD project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9 client_id: 1234 fielding_specification: start_at: '2025-06-20T15:11:35.699Z' end_at: '2025-06-30T15:11:35.699Z' completes_goal: 1500 expected_length_of_interview_minutes: 2 expected_incidence_rate: 0.9 exclusion: enabled: true list: - entity_type: RID entity_ids: - 5a3b2ada-0066-4dcb-afdd-7302be78ce9e respondent_activity_exclusions: - type: target-group id: 01KH2714RHRTGCGQV47FHHY8S8 - type: project id: 01KH287TE2W1GKTJJ91QCCHWP9 industry_lockout_code: no_lock_out live_url: https://example.com/live test_url: https://example.com/test fielding_assistant_assignment: pricing: type: dynamic total_budget: value: '2.7352' currency_code: USD maximum_cpi: value: '2.7352' currency_code: USD minimum_cpi: value: '2.7352' currency_code: USD quota_overlay: prevent_overfill: true balance_fill: true pacing: type: linear increment_interval: string soft_launch: end_at: '2023-01-01T23:00:00.000Z' filling_goal_percentage: 1 demographics_strictness_percentage: 100 profiling: template_id: e198c976-ce22-436d-acc1-95aa318cc54d profile_adjustment_type: percentage profiles: - object: regular name: birth gender quotas_enabled: true targets: - name: SF-BirthGender-1 conditions: - object: selection question_id: 43 option: '1' quota: name: SF-BirthGender-Quota-1 completes_goal_percentage: 49.21 - name: SF-BirthGender-2 conditions: - object: selection question_id: 43 option: '2' quota: name: SF-BirthGender-Quota-2 completes_goal_percentage: 50.79 - object: regular quotas_enabled: true targets: - name: SF-Age-1 conditions: - object: range question_id: 42 min: 15 max: 19 quota: completes_goal_percentage: 28.21 - conditions: - object: range question_id: 42 min: 20 max: 29 quota: completes_goal_percentage: 30.79 - name: SF-Age-2 conditions: - object: range question_id: 42 min: 30 max: 39 quota: completes_goal_percentage: 21.4 - name: SF-Age-3 conditions: - object: range question_id: 42 min: 40 max: 99 quota: completes_goal_percentage: 19.6 - object: regular quotas_enabled: true targets: - name: SF-Zip-1 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '98001' - '98007' - '98125' - '98258' quota: completes_goal_percentage: 50 - name: SF-Zip-2 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '78001' - '78007' - '78125' - '78258' quota: completes_goal_percentage: 50 - object: blended name: Number of movies watched near grocery quotas_enabled: true targets: - name: SF-Walmart-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-1 completes_goal_percentage: 2 - name: SF-Walmart-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-2 completes_goal_percentage: 2 - name: SF-Walmart-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-3 completes_goal_percentage: 2 - name: SF-Walmart-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-4 completes_goal_percentage: 2 - name: SF-Walmart-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-5 completes_goal_percentage: 2 - name: SF-Walmart-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-6 completes_goal_percentage: 2 - name: SF-Walmart-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-7 completes_goal_percentage: 2 - name: SF-Target-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '2' quota: name: SF-Target-1 completes_goal_percentage: 2 - name: SF-Target-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '2' quota: name: SF-Target-2 completes_goal_percentage: 2 - name: SF-Target-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '2' quota: name: SF-Target-3 completes_goal_percentage: 2 - name: SF-Target-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '2' quota: name: SF-Target-4 completes_goal_percentage: 2 - name: SF-Target-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '2' quota: name: SF-Target-5 completes_goal_percentage: 2 - name: SF-Target-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '2' quota: name: SF-Target-6 completes_goal_percentage: 2 - name: SF-Target-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '2' quota: name: SF-Target-7 completes_goal_percentage: 2 - name: SF-CVS-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-1 completes_goal_percentage: 2 - name: SF-CVS-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-2 completes_goal_percentage: 2 - name: SF-CVS-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-3 completes_goal_percentage: 2 - name: SF-CVS-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-4 completes_goal_percentage: 2 - name: SF-CVS-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-5 completes_goal_percentage: 2 - name: SF-CVS-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-6 completes_goal_percentage: 2 - name: SF-CVS-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-7 completes_goal_percentage: 2 - name: SF-KROGER conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 157 option: '2' - object: selection question_id: 157 option: '3' - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '8' quota: name: SF-KROGER completes_goal_percentage: 2 - object: regular quotas_enabled: true targets: - name: Group-1 conditions: - object: selection question_id: 47 option: '4' - object: selection question_id: 47 option: '5' - object: selection question_id: 47 option: '6' - object: selection question_id: 47 option: '7' quota: name: Group-1 completes_goal_percentage: 49.21 - name: SF-Ungrouped-1 conditions: - object: selection question_id: 47 option: '8' quota: completes_goal_percentage: 50.79 - object: regular quotas_enabled: false targets: - name: Target-1 conditions: - object: selection question_id: 113 option: '5' - name: Target-2 conditions: - object: selection question_id: 113 option: '8' - name: Target-3 conditions: - object: selection question_id: 113 option: '6' - name: Target-4 conditions: - object: selection question_id: 113 option: '4' - object: regular quotas_enabled: false targets: - conditions: - object: selection question_id: 96 option: '1' - conditions: - object: selection question_id: 96 option: '10' - conditions: - object: selection question_id: 96 option: '11' - object: blended blended_type: control name: Control quota quotas_enabled: true targets: - name: Control quota 1 conditions: - object: selection question_id: 43 option: '1' - object: range question_id: 42 min: 20 max: 29 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 - name: Control quota 2 conditions: - object: selection question_id: 43 option: '2' - object: range question_id: 42 min: 30 max: 39 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 10.0 completes_goal: 0 quota_nominal: 0 - name: Control quota 3 conditions: - object: selection question_id: 43 option: '1' - object: range question_id: 42 min: 30 max: 39 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 allocations: open_exchange_allocations: blocked_supplier_ids: - '123' - '456' exchange_min_percentage: 0 exchange_max_percentage: 100 groups: - group_name: Open group 1 min_percentage: 0 max_percentage: 100 suppliers: - '123' - '456' private_exchange_allocations: blocked_supplier_ids: - '980' groups: - group_name: Private group 1 min_percentage: 0 max_percentage: 100 supplier_id: '1966' re_entry_configuration: completes: client_side: allow_for_current_target_group: true allow_for_other_target_groups: true pre_client_survey_processes: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true financial_terms: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true terminates: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true security_failures: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true overquota: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true in_screener: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: true allow_for_other_target_groups: true ModuleDynamicPricing: title: Dynamic pricing type: object description: 'Controls the Cost Per Interview (CPI) to achieve a 100% fill rate by the target group''s end date as cost-effectively as possible. Key behaviors: * **Prerequisite:** This module can only be used for target groups configured with dynamic pricing. * You must specify either `total_budget` or `maximum_cpi`, but not both. * If you specify `minimum_cpi`, it must be lower than the `maximum_cpi`. * The `total_budget` setting can overrule the `minimum_cpi`. ' properties: type: type: string enum: - dynamic description: The type of module. For this object, the value is always 'dynamic'. total_budget: description: The maximum total amount to spend for the target number of completes. allOf: - $ref: '#/components/schemas/MonetaryAmount' maximum_cpi: description: The maximum cost per interview (CPI) that the module is allowed to set. allOf: - $ref: '#/components/schemas/MonetaryAmount' minimum_cpi: description: The minimum cost per interview (CPI) that the module is allowed to set. allOf: - $ref: '#/components/schemas/MonetaryAmount' required: - type TargetGroupRespondentActivityExclusionsRequest: type: array description: The list of target groups and projects whose respondents should be excluded from this target group's survey. items: $ref: '#/components/schemas/RespondentActivityExclusionsIDsListRequest' LocaleCode: type: string description: Unique text code of the locale. example: eng_us FillingStrategyUpdateResponse: type: object description: Response for filling strategy update. required: - filling_strategy properties: filling_strategy: $ref: '#/components/schemas/FillingStrategy' TargetGroupDetailsUpdateRequest: type: object description: The Target Group update request. required: - name - project_manager_id - expected_length_of_interview_minutes - expected_incidence_rate - live_url - test_url - industry_lockout_code properties: name: $ref: '#/components/schemas/TargetGroupName' project_manager_id: $ref: '#/components/schemas/UserID' expected_length_of_interview_minutes: $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' expected_incidence_rate: $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' industry_lockout_code: $ref: '#/components/schemas/TargetGroupIndustryLockoutCode' live_url: $ref: '#/components/schemas/TargetGroupLiveUrl' test_url: $ref: '#/components/schemas/TargetGroupTestUrl' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true client_cost_per_interview_note: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmountRequestModel' DropOffRate: type: number format: float description: Current drop-off rate of the Target Group. minimum: 0 maximum: 1 example: 0.05 PacingStrategy: description: The pacing strategy. type: string enum: - linear - adaptive - gemini example: linear FieldingRunEndAt: type: string format: date-time description: 'The timestamp the fielding run is scheduled to end at (RFC3339 UTC format, 3 fractional digits). The end time has to be after the starting time. ' example: '2023-01-01T23:00:00.000Z' TargetGroupOverviewByTargetGroupId: type: object description: Basic attributes and statistics of a Target Group. required: - account_id - project_id - project_name - target_group_name - project_manager_id - progress - pricing_model - is_pricing_restricted - current_cost_per_interview - current_cost - status - country_code - language_code - conversion_rate - drop_off_rate - incidence_rate - median_length_of_interview_seconds - created_at properties: account_id: $ref: '#/components/schemas/AccountID' project_id: $ref: '#/components/schemas/ProjectID' project_name: type: string description: Name of the Project which contains the Target Group. example: Example Project target_group_name: type: string description: Name of the Target Group. example: Example Target Group human_readable_id: $ref: '#/components/schemas/TargetGroupHumanReadableID' project_manager_id: $ref: '#/components/schemas/UserID' progress: $ref: '#/components/schemas/TargetGroupProgress' pricing_model: $ref: '#/components/schemas/TargetGroupPricingModel' is_pricing_restricted: type: boolean description: True when there are target group CPI restrictions in place from fielding assistant, otherwise false. example: true current_cost_per_interview: description: Currently active Cost per Interview for the Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' average_cost_per_interview: description: Average Cost per Interview for the Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' current_cost: description: The total cost of the completes collected so far in this Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' status: $ref: '#/components/schemas/TargetGroupStatus' country_code: type: string description: String representing country code. example: US language_code: type: string description: String representing language code. example: ENG conversion_rate: $ref: '#/components/schemas/ConversionRate' drop_off_rate: $ref: '#/components/schemas/DropOffRate' incidence_rate: $ref: '#/components/schemas/IncidenceRate' median_length_of_interview_seconds: $ref: '#/components/schemas/MedianLengthOfInterviewSeconds' study_type_code: $ref: '#/components/schemas/StudyTypeCode' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true created_at: type: string format: date-time description: Date and time when the target group was created (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' ProjectID: description: The character string representing a unique project ID (ULID format). type: string pattern: ^[0-9A-Z]{26}$ example: 01BTGNYV6HRNK8K8VKZASZCFP0 ModuleLinearPacing: title: Linear even pacing type: object description: Paces fielding by incrementing the completes goal in regular intervals until the target group's end date. properties: type: type: string enum: - linear description: The type of module. For this object, the value is always 'linear'. increment_interval: $ref: '#/components/schemas/IncrementInterval' required: - type - increment_interval ProfileTargetsResponseOpenEndedConditionsV3: oneOf: - title: Allow All Values description: If `allow_all_values` is true, `open_ended_values` must be null. type: object properties: object: type: string description: Object field to distinguish between different types of control selections. Always is `open_ended`. enum: - open_ended example: open_ended question_id: $ref: '#/components/schemas/QuestionID' allow_all_values: type: boolean enum: - true description: Flag to allow all values. open_ended_values: type: array minItems: 0 maxItems: 0 items: type: string nullable: true description: Must be null when `allow_all_values` is true. condition_name: type: string description: The name of the condition. This field will be present if the condition is part of a blended or grouped target. example: Open Ended 1 condition_name_translated: type: string description: The name of the condition translated (when appropriate and available). This field will be present if the condition is part of a blended or grouped target. example: Open Ended 1 required: - object - question_id - allow_all_values - open_ended_values - title: Specific Open End Values description: If `allow_all_values` is false, `open_ended_values` must contain at least one open end value. type: object properties: object: type: string description: Object field to distinguish between different types of control selections. Always is `open_ended`. enum: - open_ended example: open_ended question_id: $ref: '#/components/schemas/QuestionID' allow_all_values: type: boolean enum: - false description: Flag to allow only specific open end values. open_ended_values: type: array items: type: string minItems: 1 maxItems: 10000 description: List of applicable open end values. Required when `allow_all_values` is false. Note that only 10,000 values may be provided. For more than 10,000, please reach out to your integration consultant. condition_name: type: string description: The name of the condition. This field will be present if the condition is part of a blended or grouped target. example: Open Ended 1 condition_name_translated: type: string description: The name of the condition translated (when appropriate and available). This field will be present if the condition is part of a blended or grouped target. example: Open Ended 1 required: - object - question_id - allow_all_values - open_ended_values example: object: open_ended question_id: 45 open_ended_values: [] allow_all_values: true condition_name: Open Ended Values condition_name_translated: Open Ended Values Translated ExclusionEntityID: type: string description: Indicates the entity identifier of the excluded element example: 5a3b2ada-0066-4dcb-afdd-7302be78ce9e CurrencyCode: type: string description: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange. example: USD ComputeTargetGroupTransitionsRequest: type: object description: Request body for computing target group transitions. properties: search_string: $ref: '#/components/schemas/TargetGroupSearchString' filters: $ref: '#/components/schemas/ComputeTargetGroupTransitionsFilters' included_target_group_ids: $ref: '#/components/schemas/TargetGroupIds' excluded_target_group_ids: $ref: '#/components/schemas/TargetGroupIds' PacingIncrementInterval: type: string description: 'Positive duration between increment intervals. Limited to a subset of ISO-8601 duration in format PnDTnHnMnS (Java Duration without fractional seconds). The duration must be less than 398 days (13 months). ' format: duration example: PT12H UserID: type: string format: uuid description: A unique identifier for the user. example: b551326b-ac9d-4d32-8823-4f025787dab9 ProfilingDraftResponseWithTemplate: type: object required: - template_id - profile_adjustment_type - profiles properties: template_id: type: string description: "The ID of the profile template. This field will be reference to template used. \n" format: uuid example: 9284f2dc-421c-4f4a-ac68-6591c8fa4a38 profile_adjustment_type: type: string description: "The method used to specify quota targets. Must be one of:\n - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).\n - **nominal**: specify an exact number of completes as an integer.\n" example: percentage enum: - percentage - nominal profiles: type: array minItems: 1 items: $ref: '#/components/schemas/DraftRegularProfileV3' BoundRateCard: type: object description: The CPI is derived from the rate card (also known as the pricing table), using the Estimated Length of Interview (LOI) and Incidence Rate (IR) of your Target Group. It will include the Initial Volume Discount if your Project qualifies for one. This object represents a "bound" rate card, meaning that this is the version of the rate card which was active at the time when the Target Group was launched, and which is now permanently associated with the Target Group. required: - country_code - bound_rate_card_token - bound_rate_card properties: country_code: type: string description: String representing the country code. example: US bound_rate_card_token: type: string description: Rate card token. example: UkNUPUNPVU5UUlk6UkNWPTE2OkNDPVVT bound_rate_card: $ref: '#/components/schemas/RateCardData' TargetGroupsList: type: object description: Paginated list of Target Groups. required: - target_groups - url - has_more properties: url: type: string description: URL which produced this list (without query parameters). example: /accounts/543587/projects/01BX5ZZKBKACTAV9WEVGEMMVRZ/target-groups has_more: type: boolean description: If there are further results to be shown using the returned next cursor or previous cursor, this will be true, otherwise false. next_cursor: $ref: '#/components/schemas/NextCursor' target_groups: type: array description: Array of Target Group list items, representing the results of the query. items: $ref: '#/components/schemas/TargetGroupsListItem' TargetGroupClientCpiMonetaryAmount: description: This property can only be defined on a Target Group with dynamic pricing. This property must not be defined on Target Groups with rate card pricing. allOf: - $ref: '#/components/schemas/MonetaryAmount' FieldingRunStartAt: type: string format: date-time description: The timestamp the fielding run is scheduled to start at(RFC3339 UTC format, 3 fractional digits). The start time cannot be in the past. example: '2023-01-01T23:00:00.000Z' IndustryCodeWithReference: type: string description: Uniquely identifies the industry with which this Target Group is associated. Get a list of all available industries [here](#tag/Definitions/operation/get_industries). default: other example: politics TargetGroupCpiRequestModel: description: Target group CPI. allOf: - $ref: '#/components/schemas/MonetaryAmountRequestModel' TargetGroupFillingGoal: type: integer format: int32 minimum: 0 description: Indicates the new value for filling goal. example: 750 TargetGroupClientCpiMonetaryAmountRequestModel: description: This property can only be defined on a Target Group with dynamic pricing. This property must not be defined on Target Groups with rate card pricing. allOf: - $ref: '#/components/schemas/MonetaryAmountRequestModel' ProfilingDraftRequest: type: object required: - profile_adjustment_type - profiles properties: profile_adjustment_type: type: string description: "The method used to specify quota targets. Must be one of:\n - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).\n - **nominal**: specify an exact number of completes as an integer.\n" example: percentage enum: - percentage - nominal profiles: type: array minItems: 1 items: $ref: '#/components/schemas/RequestDraftRegularProfileV3' TargetGroupCpiNote: description: CPI note is mainly used for information purposes to track internal margin. This property can only be defined on a Target Group with dynamic pricing. allOf: - $ref: '#/components/schemas/MonetaryAmount' TargetGroupSearchString: type: string description: 'Search string to match against. The string will be used to search based on the target group''s name and/or the target group''s human readable ID. Supports partial matching for target group name and human readable ID. Also supports English language stemmed matching for target group name. ' example: My Target Gr StatisticsIssuesArray: type: array description: List of issues. items: $ref: '#/components/schemas/TargetGroupStatisticIssue' ProfileTargetsResponseSelectionConditionsV3: type: object required: - object - question_id - option properties: object: type: string description: Object field to distinguish between different types of control selections. Always is `selection`. enum: - selection example: selection question_id: $ref: '#/components/schemas/QuestionID' option: type: string description: the identifier for the condition example: '1' condition_name: type: string description: The name of the condition. This field will be present if the condition is part of a blended or grouped target. example: Dogs condition_name_translated: type: string description: The name of the condition translated (when appropriate and available). This field will be present if the condition is part of a blended or grouped target. example: Perros SoftLaunchFillingGoalPercentage: type: integer description: The percentage of the full filling goal to collect during the soft launch phase. minimum: 0 maximum: 100 example: 25 DraftTargetGroupLinks: type: object properties: links: type: object description: Contains external Target Group related links. properties: test_client_survey: type: string format: uri example: https://survey.someexamplesurveylink.com/s3/7189709/Example-survey?RID={RID} description: The link into the study that the respondent gets redirected to upon qualification. SupplierIds: type: array description: A list of unique supplier identifiers. items: type: string example: - '123' - '456' BusinessUnitID: type: string description: The unique ID of the business unit, which determines the currency used for the target group. example: '1234' TargetGroupReEntryAttributeConfig: description: An object that defines whether to allow re-entry for either the current target group, or for other target groups in the same project. However, only those other target groups will be considered, which have the "project-level exclusion" setting enabled for themselves, and only as long as the current target group also has "project-level exclusion" enabled. type: object required: - allow_for_current_target_group - allow_for_other_target_groups properties: allow_for_current_target_group: type: boolean example: true allow_for_other_target_groups: type: boolean example: true TargetGroupChangelogList: type: object properties: changelog: type: array items: $ref: '#/components/schemas/TargetGroupChangelogBatch' next_cursor: type: string description: Provides the UUID to use as the "start_after" value of the next request. Empty value if no further results. example: changelog: - id: 1a8fa143-22ee-4b69-9779-401a411152fa occurred_at: '2023-09-11T09:27:41Z' user: type: las_user las_user_id: 16839d21-3329-408e-aa53-a7996cb8919e changes: - object: name_change new_value: Typo Fix old_value: Tpyo Fix - object: test_url_change new_value: https://myawesomeresearch.com/test old_value: null - object: cpi_note_change new_value: value: '1' currency_code: USD currency_scale: 2 old_value: value: '5' currency_code: USD currency_scale: 2 next_cursor: '' TargetGroupTestUrl: description: 'The test link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.' type: string example: https://example.com/test RequestDraftQuotaNominalV3: type: object description: Profile target with condition or conditions and nominal value in quota. required: - conditions - quota properties: conditions: type: array description: List of conditions. minItems: 1 items: $ref: '#/components/schemas/InterlockProfileConditionsV3' quota: type: object required: - completes_goal properties: name: type: string description: Name of the quota used for tracking. This will be deprecated, functionally replaced by the `target.name` field one layer up in the contract. deprecated: true example: SF_Quota_12 completes_goal: type: number format: int32 minimum: 0 description: Total completes goal quota applied to this condition(s). example: 40 TargetGroupExclusionObject: type: object properties: enabled: type: boolean description: Whether or not the project level exclusion policy is enabled example: true list: deprecated: true description: 'Deprecated: Do not use this property. Use the [Exclusions endpoint](/demand/docs/reference/exclusion-create-upload-rids-by-file-job) instead. Note: Although this endpoint shows RID, the actual ID should be RSIDs. This naming issue has been corrected in future versions of the API.' type: array items: $ref: '#/components/schemas/ExclusionEntityList' TargetGroupName: type: string description: A human-readable name for the target group. minLength: 5 maxLength: 128 example: Test Target Group TargetGroupPricingModel: type: string description: Denotes the pricing model setting for the target group based on the business unit. enum: - rate_card - dynamic default: dynamic TargetGroupScreenerSideReEntryAttribute: description: An attribute of the re-entry configuration that applies on the screener side. type: object required: - screener_side properties: screener_side: $ref: '#/components/schemas/TargetGroupReEntryAttributeConfig' FillingStrategyUpdateRequest: type: object description: Filling strategy update request. required: - filling_strategy properties: filling_strategy: $ref: '#/components/schemas/FillingStrategy' ProfilingRequest: oneOf: - title: Only template allOf: - $ref: '#/components/schemas/ProfileTemplateIdWithProfileAdjustmentType' - title: Only profiles allOf: - $ref: '#/components/schemas/ProfilingDraftRequest' - title: Both template and profiles allOf: - $ref: '#/components/schemas/ProfilingDraftRequestWithTemplate' - title: No profiling type: object nullable: true properties: {} description: If no profiling is required, this field can be set to null or omitted. TargetGroupsListItem: type: object description: An individual Target Group in a list of Target Groups, with basic information and statistics. required: - id - name - locale - status - created_at - statistics - project_manager_id properties: id: type: string pattern: ^[0-9A-Z]{26}$ description: ULID identifier of the Target Group. example: 01BX5ZZKBKACTAV9WEVGEMMVS1 human_readable_id: $ref: '#/components/schemas/TargetGroupHumanReadableID' name: type: string description: Name of the Target Group. example: Example Target Group highlighted_name: type: string description: The name of the target group, with parts that matched the search string being highlighted between HTML emphasis tags. If there was no search string, or the search string matched this target group based on the identifier (and not based on the name), this property will be omitted. example: Example Target Group project_manager_id: type: string format: uuid example: 96C65204-90C2-4DCB-9393-B8226DD50C76 description: Project manager ID. exclusion_enabled: $ref: '#/components/schemas/TargetGroupExclusionEnabled' locale: $ref: '#/components/schemas/LocaleCode' status: $ref: '#/components/schemas/TargetGroupStatus' created_at: type: string format: date-time description: The timestamp the Target Group was created at (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' updated_at: type: string format: date-time description: The timestamp the Target Group was updated at (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' statistics: $ref: '#/components/schemas/TargetGroupStatistics' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true TargetGroupProgress: type: object description: Measurement of the type and progress of the Target Group. A Target Group is considered fulfilled when the `filling_goal` has been reached. required: - current_completes - current_prescreens - filling_goal - filling_strategy properties: current_completes: type: integer format: int32 description: Completes collected in the Target Group so far. minimum: 0 example: 1 current_prescreens: type: integer format: int32 description: Prescreens collected in the Target Group so far. minimum: 0 example: 1 filling_goal: type: integer format: int32 description: The limit of completes or prescreens to be collected in the Target Group. minimum: 1 example: 1 filling_strategy: $ref: '#/components/schemas/FillingStrategy' CreateDraftTargetGroupRequest: type: object description: Request body for creating a target group in draft status. required: - name - business_unit_id - locale - project_manager_id - fielding_specification - fielding_assistant_assignment - completes_goal - collects_pii - expected_length_of_interview_minutes - expected_incidence_rate - allocations properties: name: $ref: '#/components/schemas/TargetGroupName' business_unit_id: $ref: '#/components/schemas/BusinessUnitIDWithReference' locale: $ref: '#/components/schemas/LocaleCodeWithReference' collects_pii: $ref: '#/components/schemas/TargetGroupCollectsPII' study_type_code: $ref: '#/components/schemas/StudyTypeCodeWithReference' industry_code: $ref: '#/components/schemas/IndustryCodeWithReference' cost_per_interview: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmountRequestModel' client_cost_per_interview_note: $ref: '#/components/schemas/TargetGroupClientCpiMonetaryAmountRequestModel' project_manager_id: $ref: '#/components/schemas/UserID' client_id: $ref: '#/components/schemas/TargetGroupClientID' fielding_specification: $ref: '#/components/schemas/TargetGroupFieldingSpecification' completes_goal: $ref: '#/components/schemas/CompletesGoal' expected_length_of_interview_minutes: $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' expected_incidence_rate: $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' exclusion: $ref: '#/components/schemas/TargetGroupExclusionObject' respondent_activity_exclusions: $ref: '#/components/schemas/TargetGroupRespondentActivityExclusionsRequest' industry_lockout_code: $ref: '#/components/schemas/TargetGroupIndustryLockoutCodeWithReference' live_url: nullable: true maxLength: 3000 allOf: - $ref: '#/components/schemas/TargetGroupLiveUrl' test_url: nullable: true maxLength: 3000 allOf: - $ref: '#/components/schemas/TargetGroupTestUrl' fielding_assistant_assignment: $ref: '#/components/schemas/FieldingAssistantModulesAssignmentRequestModel' profiling: $ref: '#/components/schemas/ProfilingRequest' allocations: $ref: '#/components/schemas/CreateDraftAllocationSpecificationGroupRequest' re_entry_configuration: description: This field is only applicable if your account has access to this feature. If your account does not have access, including this field in the request will result in a 403 Forbidden error. If you don't require this behaviour or don't have access to the feature, simply omit this field. For more information if you need this behaviour, please contact your account manager. allOf: - $ref: '#/components/schemas/ReEntryConfiguration' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true example: name: Test Target Group business_unit_id: '3337' locale: spa_us collects_pii: false study_type_code: adhoc industry_code: other cost_per_interview: value: '2.7352' currency_code: USD client_cost_per_interview_note: value: '2.7352' currency_code: USD project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9 fielding_specification: start_at: '2025-06-20T15:11:35.699Z' end_at: '2025-06-30T15:11:35.699Z' completes_goal: 1500 expected_length_of_interview_minutes: 2 expected_incidence_rate: 0.9 exclusion: enabled: true respondent_activity_exclusions: - type: target-group id: 01KH2714RHRTGCGQV47FHHY8S8 - type: project id: 01KH287TE2W1GKTJJ91QCCHWP9 industry_lockout_code: no_lock_out live_url: https://example.com/live test_url: https://example.com/test fielding_assistant_assignment: pricing: type: dynamic total_budget: value: '2.7352' currency_code: USD maximum_cpi: value: '2.7352' currency_code: USD minimum_cpi: value: '2.7352' currency_code: USD quota_overlay: prevent_overfill: true balance_fill: true pacing: type: linear increment_interval: string soft_launch: end_at: '2023-01-01T23:00:00.000Z' filling_goal_percentage: 1 demographics_strictness_percentage: 100 profiling: profile_adjustment_type: percentage profiles: - object: regular name: birth gender template_id: e198c976-ce22-436d-acc1-95aa318cc54d quotas_enabled: true targets: - name: MY-QUOTANAME-FOR-BIRTHGENDER-Q1 conditions: - object: selection question_id: 43 option: '1' quota: name: SF-BirthGender-Quota-1 completes_goal_percentage: 49.21 - name: MY-QUOTANAME-FOR-BIRTHGENDER-Q2 conditions: - object: selection question_id: 43 option: '2' quota: name: SF-BirthGender-Quota-2 completes_goal_percentage: 50.79 - object: regular quotas_enabled: true targets: - name: Target-1 conditions: - object: range question_id: 42 min: 15 max: 19 quota: completes_goal_percentage: 28.21 - name: Target-2 conditions: - object: range question_id: 42 min: 20 max: 29 quota: completes_goal_percentage: 30.79 - name: Target-3 conditions: - object: range question_id: 42 min: 30 max: 39 quota: completes_goal_percentage: 21.4 - name: Target-4 conditions: - object: range question_id: 42 min: 40 max: 99 quota: completes_goal_percentage: 19.6 - object: regular quotas_enabled: true targets: - name: SF-Zip-1 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '98001' - '98007' - '98125' - '98258' quota: completes_goal_percentage: 50 - name: SF-Zip-2 conditions: - object: open_ended question_id: 45 allow_all_values: false open_ended_values: - '78001' - '78007' - '78125' - '78258' quota: completes_goal_percentage: 50 - object: blended name: Number of movies watched near grocery quotas_enabled: true targets: - name: SF-Walmart-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-1 completes_goal_percentage: 2 - name: SF-Walmart-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-2 completes_goal_percentage: 2 - name: SF-Walmart-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-3 completes_goal_percentage: 2 - name: SF-Walmart-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-4 completes_goal_percentage: 2 - name: SF-Walmart-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-5 completes_goal_percentage: 2 - name: SF-Walmart-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-6 completes_goal_percentage: 2 - name: SF-Walmart-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '1' quota: name: SF-Walmart-7 completes_goal_percentage: 2 - name: SF-Target-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '2' quota: name: SF-Target-1 completes_goal_percentage: 2 - name: SF-Target-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '2' quota: name: SF-Target-2 completes_goal_percentage: 2 - name: SF-Target-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '2' quota: name: SF-Target-3 completes_goal_percentage: 2 - name: SF-Target-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '2' quota: name: SF-Target-4 completes_goal_percentage: 2 - name: SF-Target-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '2' quota: name: SF-Target-5 completes_goal_percentage: 2 - name: SF-Target-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '2' quota: name: SF-Target-6 completes_goal_percentage: 2 - name: SF-Target-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '2' quota: name: SF-Target-7 completes_goal_percentage: 2 - name: SF-CVS-1 conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-1 completes_goal_percentage: 2 - name: SF-CVS-2 conditions: - object: selection question_id: 157 option: '2' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-2 completes_goal_percentage: 2 - name: SF-CVS-3 conditions: - object: selection question_id: 157 option: '3' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-3 completes_goal_percentage: 2 - name: SF-CVS-4 conditions: - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-4 completes_goal_percentage: 2 - name: SF-CVS-5 conditions: - object: selection question_id: 157 option: '5' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-5 completes_goal_percentage: 2 - name: SF-CVS-6 conditions: - object: selection question_id: 157 option: '6' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-6 completes_goal_percentage: 2 - name: SF-CVS-7 conditions: - object: selection question_id: 157 option: '7' - object: selection question_id: 63 option: '7' quota: name: SF-CVS-7 completes_goal_percentage: 2 - name: SF-KROGER conditions: - object: selection question_id: 157 option: '1' - object: selection question_id: 157 option: '2' - object: selection question_id: 157 option: '3' - object: selection question_id: 157 option: '4' - object: selection question_id: 63 option: '8' quota: name: SF-KROGER completes_goal_percentage: 2 - object: regular quotas_enabled: true targets: - name: Group-1 conditions: - object: selection question_id: 47 option: '4' - object: selection question_id: 47 option: '5' - object: selection question_id: 47 option: '6' - object: selection question_id: 47 option: '7' quota: name: Group-1 completes_goal_percentage: 49.21 - name: SF-Ungrouped-1 conditions: - object: selection question_id: 47 option: '8' quota: completes_goal_percentage: 50.79 - object: regular quotas_enabled: false targets: - name: MY-QUOTANAME-TARGET-1 conditions: - object: selection question_id: 113 option: '5' - name: MY-QUOTANAME-TARGET-2 conditions: - object: selection question_id: 113 option: '8' - name: MY-QUOTANAME-TARGET-3 conditions: - object: selection question_id: 113 option: '6' - name: MY-QUOTANAME-TARGET-4 conditions: - object: selection question_id: 113 option: '4' - object: regular quotas_enabled: false targets: - conditions: - object: selection question_id: 96 option: '1' - conditions: - object: selection question_id: 96 option: '10' - conditions: - object: selection question_id: 96 option: '11' - object: blended blended_type: control name: Control quota quotas_enabled: true targets: - name: Control quota 1 conditions: - object: selection question_id: 43 option: '1' - object: range question_id: 42 min: 20 max: 29 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 - name: Control quota 2 conditions: - object: selection question_id: 43 option: '2' - object: range question_id: 42 min: 30 max: 39 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 10.0 completes_goal: 0 quota_nominal: 0 - name: Control quota 3 conditions: - object: selection question_id: 43 option: '1' - object: range question_id: 42 min: 30 max: 39 - object: selection question_id: 96 option: '1' quota: completes_goal_percentage: 0.0 completes_goal: 0 quota_nominal: 0 allocations: open_exchange_allocations: blocked_supplier_ids: null exchange_min_percentage: 0 exchange_max_percentage: 100 groups: null private_exchange_allocations: blocked_supplier_ids: - '980' groups: - group_name: Private group 1 min_percentage: 0 max_percentage: 100 supplier_id: '1966' re_entry_configuration: completes: client_side: allow_for_current_target_group: false allow_for_other_target_groups: false pre_client_survey_processes: screener_side: allow_for_current_target_group: false allow_for_other_target_groups: false financial_terms: screener_side: allow_for_current_target_group: false allow_for_other_target_groups: false terminates: screener_side: allow_for_current_target_group: false allow_for_other_target_groups: false client_side: allow_for_current_target_group: false allow_for_other_target_groups: false security_failures: screener_side: allow_for_current_target_group: false allow_for_other_target_groups: false client_side: allow_for_current_target_group: false allow_for_other_target_groups: false overquota: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: false allow_for_other_target_groups: false in_screener: screener_side: allow_for_current_target_group: true allow_for_other_target_groups: true client_side: allow_for_current_target_group: false allow_for_other_target_groups: false InterlockProfileConditionsV3: description: A polymorphic object representing a single profiling condition, which can be a `selection`, `range`, or `open_ended` type. oneOf: - $ref: '#/components/schemas/ProfileTargetsSelectionConditionsV3' - $ref: '#/components/schemas/ProfileTargetsRangeConditionsV3' - $ref: '#/components/schemas/ProfileTargetsOpenEndedConditionsV3' FillingStrategy: type: string enum: - automated - prescreens - completes description: Target group filling strategy. example: completes TargetGroupStatisticsIssuesSuggestion: type: object properties: code: $ref: '#/components/schemas/ReasonCode' description: type: string example: Lower the quota. required: - code - description AccountID: description: The account's unique identifier. type: integer format: int32 example: 101 RateCard: type: object description: The CPI is derived from the rate card (also known as the pricing table), using the Estimated Length of Interview (LOI) and Incidence Rate (IR) of your Target Group. It will include the Initial Volume Discount if your Project qualifies for one. required: - country_code - token - rate_card_data properties: country_code: type: string description: String representing the country code. example: US token: type: string description: Rate card token. example: UkNUPUNPVU5UUlk6UkNWPTE2OkNDPVVT rate_card_data: $ref: '#/components/schemas/RateCardData' TargetGroupCpi: description: Target group CPI. allOf: - $ref: '#/components/schemas/MonetaryAmount' SoftLaunchDemographicsStrictnessPercentage: type: integer description: Controls how strictly should the soft launch demographics distribution follow the distribution in the full launch. A setting of 100% aims to fully match the demography, while 0% allows any distribution. minimum: 0 maximum: 100 example: 5 TargetGroupsDraftQuotaV3: type: array minItems: 1 items: $ref: '#/components/schemas/TargetGroupsDraftQuotaDetailsV3' PredictedRateCard: type: object description: The CPI is derived from the rate card (also known as the pricing table), using the Estimated Length of Interview (LOI) and Incidence Rate (IR) of your Target Group. It will include the Initial Volume Discount if your Project qualifies for one. This object represents a "predicted" rate card, meaning that this is the latest version of the rate card, which would apply to the Target Group if it were to be launched now. required: - country_code - predicted_rate_card_token - predicted_rate_card properties: country_code: type: string description: String representing the country code. example: US predicted_rate_card_token: type: string description: Rate card token. example: UkNUPUNPVU5UUlk6UkNWPTE2OkNDPVVT predicted_rate_card: $ref: '#/components/schemas/RateCardData' TargetGroupClientAndScreenerSideReEntryAttribute: description: An attribute of the re-entry configuration that applies on both the client side and screener side. type: object required: - client_side - screener_side properties: client_side: $ref: '#/components/schemas/TargetGroupReEntryAttributeConfig' screener_side: $ref: '#/components/schemas/TargetGroupReEntryAttributeConfig' TargetGroupChangeType: type: string enum: - business_unit_change - collects_pii_change - cpi_change - cpi_note_change - currency_change - expected_incidence_rate_change - expected_length_of_interview_minutes_change - external_name_change - fielding_period_end_date_change - fielding_period_start_date_change - filling_goal_change - filling_strategy_change - industry_lockout_code_change - live_url_change - locale_change - name_change - pacing_adaptive_increment_interval_change - pacing_assistance_change - pacing_gemini_exposed_target_group_id_change - pacing_linear_increment_interval_change - pricing_assistance_change - pricing_dynamic_maximum_cpi_change - pricing_dynamic_minimum_cpi_change - pricing_dynamic_total_budget_change - pricing_dynamic_unlock_max_budget_usage_change - pricing_rate_card_boost_cpi_change - pricing_rate_card_maximum_cpi_change - project_id_change - project_manager_change - quota_overlay_assisted_change - quota_overlay_balance_fill_change - quota_overlay_prevent_overfilling_change - soft_launch_assisted_change - soft_launch_demographics_strictness_percentage_change - soft_launch_end_date_change - soft_launch_filling_goal_percentage_change - status_change - study_type_change - target_group_customer_reference_number_change - test_url_change - user_requested_cpi_change - private_exchange_cpi_change BusinessUnitIDWithReference: type: string description: Determines the currency used for the Target Group. Get a list of all available business units [here](#tag/Definitions/operation/get_business_units). example: '1234' TargetGroupCollectsPII: type: boolean description: Indicates whether or not the target group collects Personally Identifiable Information (PII). example: true CompletesGoal: type: number description: Specifies the target group's required number of survey completions or pre-screen responses. Formerly referred to as the "filling goal," this value sets the benchmark for the number of valid responses needed to achieve the desired level of data reliability. format: int minimum: 1 example: 1500 TargetGroupLanguage: type: array items: type: string pattern: ^[a-z]{3}$ example: eng TargetGroupClientSideReEntryAttribute: description: An attribute of the re-entry configuration that applies on the client side. type: object required: - client_side properties: client_side: $ref: '#/components/schemas/TargetGroupReEntryAttributeConfig' ComputeTargetGroupTransitionsResponse: type: object description: Matching target group Id with their possible transitions. properties: target_groups: $ref: '#/components/schemas/TargetGroupIds' is_launch_allowed: type: boolean is_pause_allowed: type: boolean is_resume_allowed: type: boolean is_relaunch_allowed: type: boolean is_finish_allowed: type: boolean ModuleGeminiPacing: title: Gemini pacing type: object description: Always collects at most as many completes on each quota, as were collected on an exposed target group. Intended for Measurement control target groups. properties: type: type: string enum: - gemini description: The type of module. For this object, the value is always 'gemini'. exposed_target_group_id: type: string format: ulid description: Uniquely identifies exposed target group by ID. example: 01HC2Z6TM8C4F3Y5CA6S2JR475 required: - type - exposed_target_group_id TargetGroupPerformance: type: object description: Display key statistics about performance of a target group. required: - entrants - prescreens - completes properties: entrants: type: integer description: Number of entrants. example: 100 prescreens: type: integer description: Number of prescreens. example: 100 completes: type: integer description: Number of completes. example: 100 completes_cost: $ref: '#/components/schemas/MonetaryAmount' first_complete: type: string format: date-time description: First complete date. example: '2023-01-01T23:00:00.000Z' last_complete: type: string format: date-time description: Last complete date. example: '2023-01-01T23:00:00.000Z' incidence_rate: $ref: '#/components/schemas/IncidenceRate' drop_off_rate: $ref: '#/components/schemas/DropOffRate' conversion_rate: $ref: '#/components/schemas/ConversionRate' respondent_analysis: type: object description: Respondent analysis grouped status codes and counts. properties: live: type: array items: $ref: '#/components/schemas/RespondentAnalysisStatusCodes' test: type: array items: $ref: '#/components/schemas/RespondentAnalysisStatusCodes' CreatedDraftTargetGroupResponse: type: object description: Response for creating draft target Group. required: - id properties: id: $ref: '#/components/schemas/TargetGroupID' PricingAssistance: description: Assist the pricing of the target group. type: string enum: - dynamic example: dynamic LastCompleteDate: type: string format: date-time description: The timestamp the Target Groups latest complete was received (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' RespondentAnalysisStatusCodes: type: object description: Respondent analysis grouped status codes and counts. properties: status: type: string description: Status code. example: Complete, Terminate, In Survey, Overquota label: type: string description: Label of status code. example: Returned as Complete description: type: string description: Description of status code. example: Respondent completed the survey count: type: integer description: Count of status code. example: 100 TargetGroupsDraftQuotaDetailsV3: oneOf: - title: Targets with conditions and quota type: object description: Profile target with condition or conditions with quota. required: - id - conditions - quota properties: id: type: string description: The unique identifier for the quota. format: ULID example: 01JQMD8R7F0VW45KPWQ7WYNCFP name: type: string description: The name of the target. example: Target Name text: type: string description: Text of the used for display purpose. example: Condition Text text_translated: type: string description: Translated text of the condition used for display purpose. example: Condition Text conditions: type: array description: List of conditions for the quota. minItems: 1 items: $ref: '#/components/schemas/ResponseProfileConditionsV3' quota: type: object required: - completes_goal_percentage - quota_nominal - completes_goal properties: name: type: string description: Name of the quota used for tracking. This will be deprecated, functionally replaced by the `target.name` field one layer up in the contract. deprecated: true example: SF_Quota_12 completes_goal_percentage: type: number multipleOf: 0.01 minimum: 0 maximum: 100 description: Percentage of total completes goal quota applied to this condition(s). example: 40 quota_nominal: type: integer minimum: 0 description: Total desired quota nominal applied to this condition(s). example: 40 completes_goal: type: integer minimum: 0 description: Total desired completes goal applied to this condition(s). example: 40 - title: Targets with conditions and no quota type: object description: Profile target with condition or conditions with no quota. required: - id - conditions properties: name: type: string description: Name of the target group. example: MY-QUOTANAME-TARGET-1 id: type: string description: The unique identifier for the quota. format: ULID example: 01JQMD8R7F0VW45KPWQ7WYNCFP text: type: string description: Text of the used for display purpose. example: Condition Text text_translated: type: string description: Translated text of the condition used for display purpose. example: Condition Text conditions: type: array description: List of conditions for the quota. minItems: 1 items: $ref: '#/components/schemas/ResponseProfileConditionsV3' ProfilingResponse: oneOf: - title: Only profiles allOf: - $ref: '#/components/schemas/ProfilingDraftResponse' - title: Both template and profiles allOf: - $ref: '#/components/schemas/ProfilingDraftResponseWithTemplate' - title: No profiling type: object nullable: true properties: {} description: 'If no profiling is required, this field can be set to null or omitted. ' MonetaryAmountRequestModel: type: object description: Represents a monetary value, including the amount and its currency. properties: value: type: string description: The monetary value, represented as a string to maintain precision. example: '2.7352' currency_code: $ref: '#/components/schemas/CurrencyCode' Traceparent: type: string description: 'The traceparent header carries essential trace context information. This includes the trace ID and parent span ID as defined by the W3C trace context specification. It is used to pinpoint the position of an incoming request within the trace graph, facilitating the tracking of distributed operations. Note: This field is optional and will be automatically generated by the service if not provided in the request. The generated value will be included in the response header.' example: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01 SoftLaunchAssisted: description: Assists the target group with soft launch functionality. type: boolean example: true TargetGroupLinks: type: object properties: links: type: object description: Contains external Target Group related links. properties: test_screener: type: string format: uri example: https://survey.someexamplesurveylink.com/s3/7189709/Example-survey?RID={RID} description: The test link into the study that the respondent gets redirected to upon qualification. test_client_survey: type: string format: uri example: https://survey.someexamplesurveylink.com/s3/7189709/Example-survey?RID={RID} description: The link into the study that the respondent gets redirected to upon qualification. TargetGroupStatusChangeReasonCode: type: string description: The reason code for the status change. enum: - max_cpi_limit_reached - live_respondent_unique_codes_exhausted - past_scheduled_end_date - total_completes_reached - past_soft_launch_end_date - no_completes_in_several_days - no_completes_after_many_prescreens - high_median_loi - excessive_redirect_errors - excessive_encryption_errors - excessive_qualification_setup_errors - high_drop_rates - low_epc - high_client_side_termination_rate example: max_cpi_limit_reached RequestDraftNoQuotaV3: type: object description: No quotas specified. The request will proceed without applying any quotas. required: - object - conditions properties: object: type: string description: Object field to distinguish the operation. enum: - nominal example: nominal conditions: type: array description: List of conditions. minItems: 1 items: $ref: '#/components/schemas/InterlockProfileConditionsV3' MonetaryAmount: type: object description: Represents a monetary value, including the amount and its currency. properties: value: type: string description: A decimal encapsulated in a string representing the value in the denomination indicated by the code. example: '2.7352' currency_code: $ref: '#/components/schemas/CurrencyCode' currency_scale: allOf: - nullable: true - type: integer description: The number of digits after the decimal separator, as defined by ISO 4217. example: 2 Error: type: object description: The standard error object returned for all failed API requests. required: - object - detail properties: id: type: string format: uuid description: A unique identifier for this specific error instance. object: type: string description: A short informative string identifying the type of the error pattern: ^([a-z]*_)*([a-z]*)$ detail: type: string description: An error message provides a concise overview of the cause of the error. invalid_params: type: array nullable: true description: An optional field containing a list of invalid parameters may be presented in validation errors for additional information. items: $ref: '#/components/schemas/InvalidParam' FieldingAssistantModulesAssignmentRequestModel: title: Fielding Assistant modules assignment description: Having an assignment enables Fielding Assistant modules on a specified target group. All modules are optional, their omission means they are not enabled. type: object properties: pricing: description: The pricing module configuration. The `type` field within the object determines the model (`dynamic` or `rate_card`). oneOf: - $ref: '#/components/schemas/ModuleDynamicPricing' - $ref: '#/components/schemas/ModuleRateCardPricing' nullable: true quota_overlay: $ref: '#/components/schemas/ModuleQuotaOverlay' pacing: description: The pacing module configuration. The `type` field within the object determines the pacing strategy (`linear`, `adaptive`, or `gemini`). oneOf: - $ref: '#/components/schemas/ModuleLinearPacing' - $ref: '#/components/schemas/ModuleAdaptivePacing' - $ref: '#/components/schemas/ModuleGeminiPacing' nullable: true soft_launch: $ref: '#/components/schemas/ModuleSoftLaunch' TargetGroupStatisticsIssuesSuggestions: type: array description: List of suggestions how to remedy the issues on the statistic. items: $ref: '#/components/schemas/TargetGroupStatisticsIssuesSuggestion' TargetGroupRespondentActivityExclusionsResponse: type: array description: The list of target groups and projects whose respondents should be excluded from this target group's survey. items: $ref: '#/components/schemas/RespondentActivityExclusionsIDsListResponse' ReEntryConfiguration: description: The re-entry configuration of a Target Group. type: object required: - completes - pre_client_survey_processes - financial_terms - terminates - security_failures - overquota - in_screener properties: completes: allOf: - $ref: '#/components/schemas/TargetGroupClientSideReEntryAttribute' - description: Whether to allow re-entry from Complete status. pre_client_survey_processes: allOf: - $ref: '#/components/schemas/TargetGroupScreenerSideReEntryAttribute' - description: Whether to allow re-entry from Pre Client Survey Processes status. financial_terms: allOf: - $ref: '#/components/schemas/TargetGroupScreenerSideReEntryAttribute' - description: Whether to allow re-entry from Financial Terms status. terminates: allOf: - $ref: '#/components/schemas/TargetGroupClientAndScreenerSideReEntryAttribute' - description: Whether to allow re-entry from Terminates status. security_failures: allOf: - $ref: '#/components/schemas/TargetGroupClientAndScreenerSideReEntryAttribute' - description: Whether to allow re-entry from Security Failures status. overquota: allOf: - $ref: '#/components/schemas/TargetGroupClientAndScreenerSideReEntryAttribute' - description: Whether to allow re-entry from Overquota status. in_screener: allOf: - $ref: '#/components/schemas/TargetGroupClientAndScreenerSideReEntryAttribute' - description: Whether to allow re-entry from InScreener status. TargetGroupCustomerReferenceNumber: type: string pattern: ^[a-zA-Z0-9\-_ ]*$ minLength: 3 maxLength: 128 description: A customer-provided reference number for the target group. example: AB-00246246 TargetGroupExpectedIncidenceRate: type: number format: float description: Expected incidence rate of the Target Group. minimum: 0 maximum: 1 multipleOf: 0.01 example: 0.05 ModuleRateCardPricing: title: Rate Card pricing type: object description: Manages pricing for a target group that uses a rate card model. This module cannot be used with `dynamic` pricing. properties: type: type: string enum: - rate_card description: The type of module. For this object, the value is always 'rate_card'. maximum_cpi: description: The maximum cost per interview (CPI) that the module is allowed to set. allOf: - $ref: '#/components/schemas/MonetaryAmount' boost_cpi: description: Additional amount to be added to the CPI inferred from the rate card. Respects the `maximum_cpi` setting limit. allOf: - $ref: '#/components/schemas/MonetaryAmount' required: - type ModuleQuotaOverlay: title: Quota overlay type: object description: Controls how the overall completes goal is distributed across the target group's quotas. properties: prevent_overfill: type: boolean description: When `true`, this setting helps prevent quotas from exceeding their target number of completes. example: true balance_fill: type: boolean description: Whentrue, this setting ensures that quotas within the same demographic category fill at a similar rate. example: true required: - prevent_overfill - balance_fill TargetGroupLiveUrl: description: 'The link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.' type: string example: https://example.com/live ProfilingDraftRequestWithTemplate: type: object required: - template_id - profile_adjustment_type - profiles properties: template_id: type: string description: "The ID of the profile template. \nIf the template is already applied but the request body has different template id \nthen all the profiles associated to previous template will be deleted. \n" format: uuid example: 9284f2dc-421c-4f4a-ac68-6591c8fa4a38 profile_adjustment_type: type: string description: "The method used to specify quota targets. Must be one of:\n - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).\n" example: percentage enum: - percentage profiles: type: array description: "The profiles to be added to the Target Group. \n**Constraint**: If using a template, if any template profile shares the same question as \na profile in the profiles array, the profile in the array takes precedence over the template profile.\n" minItems: 1 items: $ref: '#/components/schemas/RequestDraftRegularProfileV3' TargetGroupStatisticIssueReason: type: object properties: code: $ref: '#/components/schemas/ReasonCode' description: type: string example: Statistic outside of normal range. required: - code - description ProfileTargetsSelectionConditionsV3: title: Selection condition type: object description: A profiling condition that targets a specific answer option (e.g. gender). required: - object - question_id - option properties: object: type: string description: The type of profiling condition. For this object, the value is always 'selection'. enum: - selection example: selection question_id: $ref: '#/components/schemas/QuestionID' option: type: string description: The unique identifier for the selected answer option. example: '1' RequestDraftRegularProfileV3: oneOf: - title: Regular Profile type: object required: - object - quotas_enabled - targets properties: object: type: string description: 'Object field to distinguish the operation. ' enum: - regular example: regular name: type: string description: "The name of the regular profile. \n" example: SF_YoungAge quotas_enabled: type: boolean description: Flag indicating if quotas are enabled. example: true targets: $ref: '#/components/schemas/RequestDraftQuotaV3' - title: Blended Profile type: object required: - object - name - quotas_enabled - targets properties: object: type: string description: 'Object field to distinguish the operation. ' enum: - blended example: blended blended_type: type: string description: The blended_type field defines the functional behavior of the blended profile as either interlock or control. If omitted, the system defaults to interlock. This field distinguishes between profiles requiring a full matrix expansion (interlock) and those used for isolating specific demographic segments (control). enum: - interlock - control example: interlock name: type: string description: The name of the profile. example: SF_YoungAge quotas_enabled: type: boolean description: Flag indicating if quotas are enabled. example: true targets: $ref: '#/components/schemas/RequestDraftQuotaV3' NextCursor: description: 'An identifier for pagination that indicates there are more items available. When present, use this value to retrieve the next page of results. ' type: string nullable: true example: bff6a669-a469-409d-8c94-dcf92258043a ProfilingDraftResponse: type: object required: - profile_adjustment_type - profiles properties: profile_adjustment_type: type: string description: "The method used to specify quota targets. Must be one of:\n - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).\n - **nominal**: specify an exact number of completes as an integer.\n" example: percentage enum: - percentage - nominal profiles: type: array minItems: 1 items: $ref: '#/components/schemas/DraftRegularProfileV3' IncidenceRate: type: number format: float description: Current incidence rate of the Target Group. minimum: 0 maximum: 1 example: 0.05 EarningsPerClickPerMinute: type: object description: Earnings per Click divided by median length of interview in minutes. allOf: - $ref: '#/components/schemas/MonetaryAmount' TargetGroupIndustryLockoutCode: type: string description: Blocks respondents during a certain timeframe based on whether they've taken a separate Target Group in the same industry. example: past_30_days TargetGroupExpectedLengthOfInterview: type: integer format: int32 description: Expected median length of interview of the Target Group. minimum: 1 maximum: 45 example: 1 SupplierResponse: type: object properties: id: type: integer minimum: 0 example: 420 name: type: string minLength: 1 example: Clix Sense TargetGroupChangelogItem: oneOf: - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `soft_launch_demographics_strictness_percentage_change`. enum: - soft_launch_demographics_strictness_percentage_change new_value: description: The new value for the demographics strictness. Could be null if the soft launch assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchDemographicsStrictnessPercentage' old_value: description: The old value for the demographics strictness. Could be null if the soft launch assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchDemographicsStrictnessPercentage' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `soft_launch_filling_goal_percentage_change`. enum: - soft_launch_filling_goal_percentage_change new_value: description: The new value for the filling goal. Could be null if the soft launch assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchFillingGoalPercentage' old_value: description: The old value for the filling goal. Could be null if the soft launch assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchFillingGoalPercentage' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `soft_launch_end_date_change`. enum: - soft_launch_end_date_change new_value: description: The new value for the soft launch end date. Could be null if the soft launch assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchEndDate' old_value: description: The old value for the soft launch end date. Could be null if the soft launch assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchEndDate' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `soft_launch_assisted_change`. enum: - soft_launch_assisted_change new_value: description: The new value for the soft launch assistance. Could be null if soft launch assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchAssisted' old_value: description: The old value for the soft launch assistance. Could be null if soft launch assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/SoftLaunchAssisted' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pacing_gemini_exposed_target_group_id_change`. enum: - pacing_gemini_exposed_target_group_id_change new_value: description: The new value for the exposed target group Id. Could be null if the pacing assistance is being switched off or the strategy is being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingGeminiExposedTargetGroupId' old_value: description: The old value for the exposed target group Id. Could be null if the pacing assistance was switched off or the strategy was being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingGeminiExposedTargetGroupId' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pacing_adaptive_increment_interval_change`. enum: - pacing_adaptive_increment_interval_change new_value: description: The new value for the increment interval. Could be null if the pacing assistance is being switched off or the strategy is being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingIncrementInterval' old_value: description: The old value for the increment interval. Could be null if the pacing assistance was switched off or the strategy was being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingIncrementInterval' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pacing_linear_increment_interval_change`. enum: - pacing_linear_increment_interval_change new_value: description: The new value for the increment interval. Could be null if the pacing assistance is being switched off or the strategy is being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingIncrementInterval' old_value: description: The old value for the increment interval. Could be null if the pacing assistance was switched off or the strategy was being changed. allOf: - nullable: true - $ref: '#/components/schemas/PacingIncrementInterval' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pacing_assistance_change`. enum: - pacing_assistance_change new_value: description: The new value for the pacing assistance. Could be null if the pacing assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/PacingStrategy' old_value: description: The old value for the pacing assistance. Could be null if the pacing assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/PacingStrategy' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `quota_overlay_balance_fill_change`. enum: - quota_overlay_balance_fill_change new_value: description: The new value for balance fill. Could be null if the quota assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayBalanceFill' old_value: description: The old value for balance fill. Could be null if the quota assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayBalanceFill' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `quota_overlay_prevent_overfilling_change`. enum: - quota_overlay_prevent_overfilling_change new_value: description: The new value for prevent overfilling. Could be null if the quota assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayPreventOverfilling' old_value: description: The old value for prevent overfilling. Could be null if the quota assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayPreventOverfilling' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `quota_overlay_assisted_change`. enum: - quota_overlay_assisted_change new_value: description: The new value for the quota assistance. Could be null if quota assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayAssisted' old_value: description: The old value for the quota assistance. Could be null if quota assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/QuotaOverlayAssisted' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_assistance_change`. enum: - pricing_assistance_change new_value: description: The new value for the pricing assistance. Could be null if pricing assistance is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/PricingAssistance' old_value: description: The old value for the pricing assistance. Could be null if pricing assistance was switched off. allOf: - nullable: true - $ref: '#/components/schemas/PricingAssistance' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_dynamic_total_budget_change`. enum: - pricing_dynamic_total_budget_change new_value: description: The new value for the total budget. Could be null if fielding assistant pricing is being switched off or a maximum CPI is being set. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' old_value: description: The old value for the total budget. Could be null if fielding assistant pricing was switched off or a maximum CPI was set. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_dynamic_maximum_cpi_change`. enum: - pricing_dynamic_maximum_cpi_change new_value: description: The new value for the maximum CPI. Could be null if fielding assistant pricing is being switched off or a total budget is being set. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' old_value: description: The old value for the maximum CPI. Could be null if fielding assistant pricing was switched off or a total budget was set. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_dynamic_minimum_cpi_change`. enum: - pricing_dynamic_minimum_cpi_change new_value: description: The new value for the minimum CPI. Could be null if fielding assistant pricing is being switched off. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' old_value: description: The old value for the minimum CPI. Could be null if fielding assistant pricing was switched off. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_dynamic_unlock_max_budget_usage_change`. enum: - pricing_dynamic_unlock_max_budget_usage_change new_value: description: The new value for the unlock max budget usage. Could be null if fielding assistant pricing is being switched off. allOf: - nullable: true - description: Flag controlling whether the maximum budget should be prioritized for max CPI capping - type: boolean old_value: description: The old value for the minimum CPI. Could be null if fielding assistant pricing was switched off. allOf: - nullable: true - description: Flag controlling whether the maximum budget should be prioritized for max CPI capping - type: boolean - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `pricing_rate_card_maximum_cpi_change`. enum: - pricing_rate_card_maximum_cpi_change new_value: description: The new value for the Rate Card maximum CPI. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' old_value: description: The old value for the Rate Card maximum CPI. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `name_change`. enum: - name_change new_value: description: The new value for name. allOf: - $ref: '#/components/schemas/TargetGroupName' old_value: description: The old value for name. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupName' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `external_name_change`. enum: - external_name_change new_value: description: The new value for name. allOf: - type: string description: An external name of the Target Group. example: External Target Group Name old_value: description: The old value for name. Could be null if the old value was not set. allOf: - nullable: true - type: string description: An external name of the Target Group. - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `business_unit_id_change`. enum: - business_unit_change new_value: description: The new value for business unit id. allOf: - $ref: '#/components/schemas/BusinessUnitID' old_value: description: The old value for business unit id. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/BusinessUnitID' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `project_manager_change`. enum: - project_manager_change new_value: description: The new value for project manager. allOf: - type: object properties: las_user_id: allOf: - nullable: true - $ref: '#/components/schemas/UserID' old_value: description: The old value for project manager. Could be null if the old value was not set. allOf: - nullable: true - type: object properties: las_user_id: allOf: - nullable: true - $ref: '#/components/schemas/UserID' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `filling_goal_change`. enum: - filling_goal_change new_value: description: The new value for filling goal. allOf: - $ref: '#/components/schemas/TargetGroupFillingGoal' old_value: description: The old value for filling goal. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupFillingGoal' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `expected_length_of_interview_minutes_change`. enum: - expected_length_of_interview_minutes_change new_value: description: The new value for length of interview in minutes. allOf: - $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' old_value: description: The old value for length of interview in minutes. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupExpectedLengthOfInterview' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `expected_incidence_rate_change`. enum: - expected_incidence_rate_change new_value: description: The new value for incidence rate. allOf: - $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' old_value: description: The old value for incidence rate. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupExpectedIncidenceRate' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `study_type_change`. enum: - study_type_change new_value: description: The new value for study type. allOf: - $ref: '#/components/schemas/StudyTypeCode' old_value: description: The old value for study type. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/StudyTypeCode' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `industry_lockout_code_change`. enum: - industry_lockout_code_change new_value: description: The new value for industry lockout code. allOf: - $ref: '#/components/schemas/TargetGroupIndustryLockoutCode' old_value: description: The old value for industry lockout code. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupIndustryLockoutCode' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `cpi_note_change`. enum: - cpi_note_change new_value: description: The new value for cpi note. allOf: - $ref: '#/components/schemas/TargetGroupCpiNote' old_value: description: The old value for cpi note. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCpiNote' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `live_url_change`. enum: - live_url_change new_value: description: The new value for live url. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupLiveUrl' old_value: description: The old value for live url. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupLiveUrl' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `test_url_change`. enum: - test_url_change new_value: description: The new value for test url. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupTestUrl' old_value: description: The old value for test url. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupTestUrl' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `collects_pii_change`. enum: - collects_pii_change new_value: description: The new value for name. allOf: - $ref: '#/components/schemas/TargetGroupCollectsPII' old_value: description: The old value for name. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCollectsPII' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `cpi_change`. enum: - cpi_change new_value: description: The new value for name. allOf: - $ref: '#/components/schemas/TargetGroupCpi' old_value: description: The old value for name. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCpi' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `status_change`. enum: - status_change new_value: description: The new value for the target group status. allOf: - $ref: '#/components/schemas/TargetGroupStatus' old_value: description: The old value for the target group status. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupStatus' reason_code: description: The reason code for the status change. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupStatusChangeReasonCode' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `filling_strategy_change`. enum: - filling_strategy_change new_value: description: The new value for the filling strategy. allOf: - $ref: '#/components/schemas/FillingStrategy' old_value: description: The old value for the filling strategy. allOf: - nullable: true - $ref: '#/components/schemas/FillingStrategy' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `currency_change`. enum: - currency_change new_value: description: The new value for the currency. allOf: - $ref: '#/components/schemas/CurrencyCode' old_value: description: The old value for the currency. allOf: - nullable: true - $ref: '#/components/schemas/CurrencyCode' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `locale_change`. enum: - locale_change new_value: description: The new value for the locale. allOf: - $ref: '#/components/schemas/LocaleCode' old_value: description: The old value for the locale. allOf: - nullable: true - $ref: '#/components/schemas/LocaleCode' - type: object properties: object: type: string description: Object field to distinguish between different types of change, always is `project_id_change`. enum: - project_id_change new_value: description: The new value for the Project ID. allOf: - $ref: '#/components/schemas/ProjectID' old_value: description: The old value for the Project ID. allOf: - nullable: true - $ref: '#/components/schemas/ProjectID' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `fielding_period_start_date_change`. enum: - fielding_period_start_date_change new_value: description: The new value for the fielding period start date. allOf: - $ref: '#/components/schemas/FieldingRunStartAt' old_value: description: The old value for the fielding period start date. allOf: - nullable: true - $ref: '#/components/schemas/FieldingRunStartAt' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `fielding_period_end_date_change`. enum: - fielding_period_end_date_change new_value: description: The new value for the fielding period end date. allOf: - $ref: '#/components/schemas/FieldingRunEndAt' old_value: description: The old value for the fielding period end date. allOf: - nullable: true - $ref: '#/components/schemas/FieldingRunEndAt' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `user_requested_cpi_change`. enum: - user_requested_cpi_change new_value: description: The new value for the user requested CPI. allOf: - $ref: '#/components/schemas/MonetaryAmount' old_value: description: The old value for the user requested CPI. Possible to be null. allOf: - nullable: true - $ref: '#/components/schemas/MonetaryAmount' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `target_group_customer_reference_number_change`. enum: - target_group_customer_reference_number_change new_value: description: The new value for the Target Group Customer Reference Number. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' old_value: description: The old value for the Target Group Customer Reference Number. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - type: object properties: object: type: string description: object field to distinguish between different types of change. always is `private_exchange_cpi_change`. enum: - private_exchange_cpi_change supplier_id: type: string description: The ID of the supplier for which the private exchange CPI has changed. example: '123' new_value: description: The new value for the private exchange CPI. allOf: - $ref: '#/components/schemas/TargetGroupCpi' old_value: description: The old value for the private exchange CPI. Could be null if the old value was not set. allOf: - nullable: true - $ref: '#/components/schemas/TargetGroupCpi' AverageCostPerInterview: type: object description: Average Cost per Interview for the Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' CostPerInterviewUpdateRequest: type: object description: Cost per interview update request. required: - target_group_cpi properties: target_group_cpi: $ref: '#/components/schemas/TargetGroupCpiRequestModel' ModuleAdaptivePacing: title: Adaptive even pacing type: object description: Increments quotas in regular intervals, recalculating steps after each interval to evenly pace the rest of the Completes Goal until the end date. properties: type: type: string enum: - adaptive description: The type of module. For this object, the value is always 'adaptive'. increment_interval: $ref: '#/components/schemas/IncrementInterval' required: - type - increment_interval ExclusionEntityList: type: object properties: entity_type: $ref: '#/components/schemas/ExclusionEntityType' entity_ids: type: array items: $ref: '#/components/schemas/ExclusionEntityID' ComputeTargetGroupTransitionsFilters: type: object description: Filters for computing target group transitions. properties: status: $ref: '#/components/schemas/schemas-TargetGroupStatus' country: $ref: '#/components/schemas/TargetGroupCountry' language: $ref: '#/components/schemas/TargetGroupLanguage' TargetGroupIndustryLockoutCodeWithReference: type: string description: Blocks respondents during a certain timeframe based on whether they've taken a separate Target Group in the same industry. Get a list of all available lockout timeframes [here](#tag/Definitions/operation/get_industry_lockouts). example: past_30_days QuotaOverlayAssisted: description: Assists the target group with quota overlay functionality. type: boolean example: true TargetGroupChangelogBatch: type: object properties: id: type: string description: ID of the batch of changes applied. occurred_at: type: string description: Timestamp of when the batch of changes were applied. user: description: The details of the user who caused the batch of changes. oneOf: - type: object properties: type: type: string description: object field to distinguish between different types of users. always is `las_user`. enum: - las_user las_user_id: description: The LAS id of the user causing the change. allOf: - $ref: '#/components/schemas/UserID' - type: object properties: type: type: string description: object field to distinguish between different types of users. always is `system_marketplace_user`. enum: - system_marketplace_user - type: object properties: type: type: string description: object field to distinguish between different types of users. always is `system_user`. enum: - system_user changes: type: array description: 'An array of changelog items containing the new and old value for a property. While both the new and the old value are nullable, at any given time at most one of them will be null. ' items: $ref: '#/components/schemas/TargetGroupChangelogItem' InvalidParam: type: object description: Describes a single invalid parameter in a request. properties: name: type: string description: The name of the parameter that failed validation. reason: type: string description: A short explanation of why the parameter was invalid. required: - name - reason IncrementInterval: type: string format: duration example: P1DT5H description: 'The duration between each quota increment, in ISO-8601 format. Key details: * **Format:** Must follow the `PnDTnHnMnS` pattern (e.g., `P1D` for one day, `PT12H` for 12 hours). * **Limit:** The duration must be less than 398 days. ' QuestionID: type: integer description: The unique identifier for a profiling question. example: 12413 TargetGroupExclusionEnabled: type: boolean description: Whether or not the given target groups exclusion status within the given exclusion policy is set to active StudyTypeCodeWithReference: type: string description: Uniquely identifies the Study Type that indicates the Target Group limits and purpose. Get a list of all available Study Types [here](#tag/Definitions/operation/get_study_types). default: adhoc example: diary TargetGroupStatus: type: string enum: - draft - scheduled - live - paused - completed - archived description: Target Group Status. example: draft TargetGroupOverview: type: object description: Basic attributes and statistics of a Target Group. required: - project_name - target_group_name - project_manager_id - progress - pricing_model - is_pricing_restricted - current_cost_per_interview - current_cost - status - country_code - language_code - conversion_rate - drop_off_rate - incidence_rate - created_at properties: project_name: type: string description: Name of the Project which contains the Target Group. example: Example Project target_group_name: type: string description: Name of the Target Group. example: Example Target Group human_readable_id: $ref: '#/components/schemas/TargetGroupHumanReadableID' project_manager_id: $ref: '#/components/schemas/UserID' progress: $ref: '#/components/schemas/TargetGroupProgress' pricing_model: $ref: '#/components/schemas/TargetGroupPricingModel' is_pricing_restricted: type: boolean description: True when there are target group CPI restrictions in place from fielding assistant, otherwise false. example: true current_cost_per_interview: description: Currently active Cost per Interview for the Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' average_cost_per_interview: description: Average Cost per Interview for the Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' current_cost: description: The total cost of the completes collected so far in this Target Group. allOf: - $ref: '#/components/schemas/MonetaryAmount' status: $ref: '#/components/schemas/TargetGroupStatus' country_code: type: string description: String representing country code. example: US language_code: type: string description: String representing language code. example: ENG conversion_rate: $ref: '#/components/schemas/ConversionRate' drop_off_rate: $ref: '#/components/schemas/DropOffRate' incidence_rate: $ref: '#/components/schemas/IncidenceRate' median_length_of_interview_seconds: allOf: - $ref: '#/components/schemas/MedianLengthOfInterviewSeconds' - nullable: true study_type_code: $ref: '#/components/schemas/StudyTypeCode' target_group_customer_reference_number: allOf: - $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' - nullable: true created_at: type: string format: date-time description: Date and time when the target group was created (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' TargetGroupStatisticIssue: type: object description: Issue connected to a target group statistic properties: reason: $ref: '#/components/schemas/TargetGroupStatisticIssueReason' issue_type: $ref: '#/components/schemas/TargetGroupStatisticsIssueType' suggestions: $ref: '#/components/schemas/TargetGroupStatisticsIssuesSuggestions' required: - suggestions - issue_type TargetGroupClientID: type: integer format: int32 description: Client ID associated with the created Target Group example: 1234 nullable: true ProfileTargetsResponseRangeConditionsV3: type: object required: - object - question_id - min - max properties: object: type: string description: Object field to distinguish between different types of control selections. Always is `range`. enum: - range example: range question_id: $ref: '#/components/schemas/QuestionID' min: type: integer format: int32 minimum: 1 maximum: 99 description: The minimum numeric value (inclusive). example: 18 max: type: integer format: int32 minimum: 1 maximum: 99 description: The maximum numeric value (inclusive). example: 24 condition_name: type: string description: The name of the condition. This field will be present if the condition is part of a blended or grouped target. example: 18 to 24 condition_name_translated: type: string description: The name of the condition translated (when appropriate and available). This field will be present if the condition is part of a blended or grouped target. example: 18 to 24 TargetGroupID: description: A unique identifier for the target group, in ULID format. type: string pattern: ^[0-9A-Z]{26}$ example: 01BTGNYV6HRNK8K8VKZASZCFP1 ProfileTemplateIdWithProfileAdjustmentType: type: object required: - template_id - profile_adjustment_type properties: template_id: type: string description: "The unique ID of the template. \nThis can be fetched from getProfileTemplate endpoint.\n" format: uuid example: 9284f2dc-421c-4f4a-ac68-6591c8fa4a38 profile_adjustment_type: type: string description: '`percentage` will be the only profile adjustment type supported if template_id is provided.' enum: - percentage example: percentage TargetGroupStatistics: type: object description: Statistics relevant for the Target Group, each statistic might include one or more issue descriptors. required: - progress properties: progress: type: object required: - value - issues properties: value: $ref: '#/components/schemas/TargetGroupProgress' issues: $ref: '#/components/schemas/StatisticsIssuesArray' last_complete_date: type: object required: - value - issues properties: value: $ref: '#/components/schemas/LastCompleteDate' issues: $ref: '#/components/schemas/StatisticsIssuesArray' earnings_per_click: type: object required: - value - issues properties: value: $ref: '#/components/schemas/EarningsPerClick' issues: $ref: '#/components/schemas/StatisticsIssuesArray' earnings_per_click_per_minute: type: object required: - value - issues properties: value: $ref: '#/components/schemas/EarningsPerClickPerMinute' issues: $ref: '#/components/schemas/StatisticsIssuesArray' average_cost_per_interview: type: object required: - value - issues properties: value: $ref: '#/components/schemas/AverageCostPerInterview' issues: $ref: '#/components/schemas/StatisticsIssuesArray' median_length_of_interview_seconds: type: object required: - value - issues properties: value: $ref: '#/components/schemas/MedianLengthOfInterviewSeconds' issues: $ref: '#/components/schemas/StatisticsIssuesArray' incidence_rate: type: object required: - value - issues properties: value: $ref: '#/components/schemas/IncidenceRate' issues: $ref: '#/components/schemas/StatisticsIssuesArray' drop_off_rate: type: object required: - value - issues properties: value: $ref: '#/components/schemas/DropOffRate' issues: $ref: '#/components/schemas/StatisticsIssuesArray' conversion_rate: type: object required: - value - issues properties: value: $ref: '#/components/schemas/ConversionRate' issues: $ref: '#/components/schemas/StatisticsIssuesArray' TargetGroupFieldingSpecification: type: object description: Contains Target Group fielding details. required: - start_at - end_at properties: start_at: type: string format: date-time description: The timestamp the Target Group is scheduled to start at (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' end_at: type: string format: date-time description: The timestamp the Target Group is scheduled to end at (RFC3339 UTC format, 3 fractional digits). example: '2023-01-01T23:00:00.000Z' IndustryCode: type: string description: Uniquely identifies the industry with which this Target Group is associated. default: other example: politics ProfileTargetsRangeConditionsV3: title: Range condition type: object description: A profiling condition that targets a numeric range (e.g. age). required: - object - question_id - min - max properties: object: type: string description: The type of profiling condition. For this object, the value is always 'range'. enum: - range example: range question_id: $ref: '#/components/schemas/QuestionID' min: type: integer format: int32 minimum: 1 maximum: 99 description: The minimum numeric value (inclusive). example: 18 max: type: integer format: int32 minimum: 1 maximum: 99 description: The maximum numeric value (inclusive). example: 24 ResponseProfileConditionsV3: oneOf: - $ref: '#/components/schemas/ProfileTargetsResponseSelectionConditionsV3' - $ref: '#/components/schemas/ProfileTargetsResponseRangeConditionsV3' - $ref: '#/components/schemas/ProfileTargetsResponseOpenEndedConditionsV3' DraftRegularProfileV3: oneOf: - title: Regular Profile type: object required: - object - id - quotas_enabled - name - description - targets properties: object: type: string description: Object field to distinguish the operation. enum: - regular example: regular id: type: string description: The unique identifier for the profile. format: ULID example: 01JQM2QN1FDN1WZA3JZX639MAR quotas_enabled: type: boolean description: Flag indicating if quotas are enabled. example: true name: type: string description: The name of the profile. example: HISPANIC description: type: string description: A short summary of the profile. Summary language will be based on the target group's locale. example: Are you of Hispanic, Latino, or Spanish origin? description_translated: type: string description: A short summary of the profile by default english language. example: Are you of Hispanic, Latino, or Spanish origin? targets: $ref: '#/components/schemas/TargetGroupsDraftQuotaV3' - title: Blended Profile type: object required: - object - id - quotas_enabled - name - description - targets properties: object: type: string description: Object field to distinguish the operation. enum: - blended example: blended blended_type: type: string description: The blended_type field defines the functional behavior of the blended profile as either interlock or control. If omitted, the system defaults to interlock. This field distinguishes between profiles requiring a full matrix expansion (interlock) and those used for isolating specific demographic segments (control). enum: - interlock - control example: interlock id: type: string description: The unique identifier for the profile. format: ULID example: 01JQM2QN1FDN1WZA3JZX639MAR quotas_enabled: type: boolean description: Flag indicating if quotas are enabled. example: true name: type: string description: The name of the profile. example: HISPANIC description: type: string description: A short summary of the profile. Summary language will be based on the target group's locale. example: Are you of Hispanic, Latino, or Spanish origin? description_translated: type: string description: A short summary of the profile by default english language. example: Are you of Hispanic, Latino, or Spanish origin? targets: $ref: '#/components/schemas/TargetGroupsDraftQuotaV3' MedianLengthOfInterviewSeconds: type: integer format: int32 description: Current median length of interview of the Target Group in seconds. minimum: 0 example: 1 TargetGroupIds: type: array description: An array of unique target group identifiers to be processed in a bulk job. minItems: 1 items: $ref: '#/components/schemas/TargetGroupID' BusinessUnitIDAsInteger: type: integer description: Determines the currency used for the Target Group. example: 1234 UpdateDraftSupplyAllocationGroupRequest: type: object required: - open_exchange_allocations properties: open_exchange_allocations: type: object required: - blocked_supplier_ids - groups - exchange_min_percentage - exchange_max_percentage properties: blocked_supplier_ids: $ref: '#/components/schemas/SupplierIds' exchange_min_percentage: type: integer minimum: 0 maximum: 100 example: 0 exchange_max_percentage: type: integer minimum: 0 maximum: 100 example: 100 groups: type: array required: - group_id - group_name - min_percentage - max_percentage - suppliers items: type: object properties: group_id: description: id of group. type: string example: '123' group_name: description: only unique group names are valid. type: string example: Open group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 suppliers: $ref: '#/components/schemas/SupplierIds' private_exchange_allocations: type: object required: - blocked_supplier_ids - groups properties: blocked_supplier_ids: $ref: '#/components/schemas/SupplierIds' groups: type: array required: - group_id - group_name - min_percentage - max_percentage - supplier_id items: type: object properties: group_id: description: id of group. type: string example: '123' group_name: description: only unique group names are valid. type: string example: Private group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 supplier_id: type: string example: '43' ConversionRate: type: number format: float description: The current conversion rate of the target group. minimum: 0 maximum: 1 example: 0.05 QuotaOverlayBalanceFill: type: boolean description: Does not let quotas fill faster than the others within the same demography. example: true ReasonCode: type: string example: '2131' TargetGroupCollectedCompletesAggregatedIntervals: type: object required: - timestamp - count properties: timestamp: type: string format: date-time description: The timestamp that represents the time when the aggregated interval ends. RFC3339 UTC format, 3 fractional digits. example: '2023-01-01T23:00:00.000Z' count: type: integer description: The count of collected completes by the end of the aggregated interval. QuotaOverlayPreventOverfilling: type: boolean description: Applies a translation to prescreen quota calculation type, that prevents overfills. example: true SoftLaunchEndDate: type: string format: date-time description: The soft launch will be finished at this date, and the target group paused regardless of the fill. example: '2023-01-01T23:00:00.000Z' TargetGroupHumanReadableID: description: The target group's human-readable ID. This ID is unique within the scope of an account. type: string minLength: 7 maxLength: 7 example: 9NRV3B9 GetDraftSupplyAllocationGroupResponse: type: object properties: open_exchange_allocations: type: object properties: exchange_suppliers: type: array items: $ref: '#/components/schemas/SupplierResponse' blocked_suppliers: type: array items: $ref: '#/components/schemas/SupplierResponse' exchange_min_percentage: type: integer minimum: 0 maximum: 100 example: 0 exchange_max_percentage: type: integer minimum: 0 maximum: 100 example: 100 groups: type: array items: type: object properties: group_id: description: id of group. type: string example: '123' group_name: description: only unique group names are valid. type: string example: Open group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 suppliers: type: array items: $ref: '#/components/schemas/SupplierResponse' private_exchange_allocations: type: object properties: blocked_suppliers: type: array items: $ref: '#/components/schemas/SupplierResponse' groups: type: array items: type: object properties: group_id: description: id of group. type: string example: '123' group_name: description: only unique group names are valid. type: string example: Private group 1 min_percentage: type: integer minimum: 0 maximum: 100 example: 0 max_percentage: type: integer minimum: 0 maximum: 100 example: 100 supplier: $ref: '#/components/schemas/SupplierResponse' RequestDraftQuotaV3: description: "A request targets block must be one of:\n • a nominal target based on profile adjustement type (see RequestDraftGroupedQuotaNominalV3)\n • a percentage target based on profile adjustment type (see RequestDraftGroupedQuotaV3)\n • no target (empty object) should be in alignment with quota_enabled field as false.\n" oneOf: - title: Targets with nominal value in quota type: array minItems: 1 items: $ref: '#/components/schemas/RequestDraftQuotaNominalV3' - title: Targets with percentage value in quota type: array minItems: 1 items: $ref: '#/components/schemas/RequestDraftQuotaPercentageV3' - title: Targets with conditions and no quota type: array minItems: 1 items: $ref: '#/components/schemas/RequestDraftNoQuotaV3' Tracestate: type: string description: 'The tracestate header provides additional contextual information to the traceparent header. This enriches the tracing context and offers more fine-grained control Note: This field is optional and will be automatically generated by the service if not provided in the request. The generated value will be included in the response header.' example: ot=foo:bar;k1:13 StudyTypeCode: type: string description: Uniquely identifies the Study Type that indicates the Target Group limits and purpose. default: adhoc example: diary RespondentActivityExclusionsIDsListRequest: type: object required: - type - id properties: type: description: The type of entity related to the `id`. This value can either be `target-group` or `project`. type: string enum: - target-group - project example: target-group id: description: the unique entity ID. type: string format: ulid example: 01KH2714RHRTGCGQV47FHHY8S8 duration: description: 'The exclusion period for this item in ISO-8601 period format (date-based only, e.g. P30D, P2W, P3M, P1Y). Must be between 1 and 396 days. Time-based values such as PT1H are not supported. If no value is provided, it defaults to P90D (90 days). **Note**: month-based periods are calendar-aware and adjust to the last valid day of the resulting month. For example, looking back one month from March 31 results in February 28 (or February 29 in a leap year). If the duration is provided using week format (e.g. P2W), the week value will be translated and persisted in days as a normalization process (e.g. P2W becomes P14D).' type: string format: duration default: P90D RateCardData: type: object properties: data_format: type: string enum: - loi_ir_matrix example: loi_ir_matrix length_of_interview_minutes: type: array minItems: 1 items: type: number format: int32 minimum: 1 example: - 3 - 6 - 10 - 15 - 20 - 25 - 30 - 35 - 40 - 45 - 50 - 55 - 60 incidence_rate_percents: type: array minItems: 1 items: type: number format: int32 minimum: 0 maximum: 100 example: - 75 - 50 - 30 - 20 - 15 - 10 - 7 - 5 - 3 - 1 pricing_table_currency_code: type: string description: Represents the currency code for the pricing table. example: USD pricing_table_data: type: array minItems: 1 items: type: array minItems: 1 items: type: number format: int32 minimum: 0 example: - - 32 - 373 - 495 - 67 - 898 - 1248 - 1895 - 277 - 347 - 4695 - - 374 - 427 - 549 - 724 - 952 - 1302 - 1949 - 2824 - 3524 - 4749 - - 434 - 487 - 609 - 784 - 1012 - 1362 - 2009 - 2884 - 3584 - 4809 - - 494 - 547 - 669 - 844 - 1072 - 1422 - 2069 - 2944 - 3644 - 4869 - - 554 - 607 - 729 - 904 - 1132 - 1482 - 2129 - 3004 - 3704 - 4929 - - 614 - 667 - 789 - 964 - 1192 - 1542 - 2189 - 3064 - 3764 - 4989 - - 739 - 791 - 914 - 1089 - 1316 - 1666 - 2314 - 3189 - 3889 - 5114 - - 849 - 902 - 1024 - 1199 - 1427 - 1777 - 2424 - 3299 - 3999 - 5224 - - 972 - 1024 - 1147 - 1322 - 1549 - 1899 - 2547 - 3422 - 4122 - 5347 - - 1056 - 1108 - 1231 - 1406 - 1633 - 1983 - 2631 - 3506 - 4206 - 5431 - - 114 - 1192 - 1315 - 149 - 1717 - 2067 - 2715 - 359 - 429 - 5515 - - 1224 - 1276 - 1399 - 1574 - 1801 - 2151 - 2799 - 3674 - 4374 - 5599 - - 1308 - 136 - 1483 - 1658 - 1885 - 2235 - 2883 - 3758 - 4458 - 5683 ProfileTargetsOpenEndedConditionsV3: title: Open-ended condition description: A profiling condition that targets open-ended text values. oneOf: - title: Allow All Values description: If `allow_all_values` is true, `open_ended_values` must be null. type: object properties: object: type: string description: The type of profiling condition. For this object, the value is always 'open_ended'. enum: - open_ended example: open_ended question_id: $ref: '#/components/schemas/QuestionID' allow_all_values: type: boolean enum: - true description: Flag to allow all values. open_ended_values: type: array minItems: 0 maxItems: 0 items: type: string nullable: true description: Must be null when `allow_all_values` is true. required: - object - question_id - allow_all_values - open_ended_values - title: Specific Open End Values description: If `allow_all_values` is false, `open_ended_values` must contain at least one open end value. type: object properties: object: type: string description: Object field to distinguish between different types of control selections. Always is `open_ended`. enum: - open_ended example: open_ended question_id: $ref: '#/components/schemas/QuestionID' allow_all_values: type: boolean enum: - false description: Flag to allow only specific open end values. open_ended_values: type: array items: type: string minItems: 1 maxItems: 10000 description: List of applicable open end values. Required when `allow_all_values` is false. Note that only 10,000 values may be provided. For more than 10,000, please contact your integration consultant. required: - object - question_id - allow_all_values - open_ended_values example: object: open_ended question_id: 45 open_ended_values: [] allow_all_values: true EarningsPerClick: type: object description: Current Cost per Interview multiplied by completes so far, divided by the number of entrants. allOf: - $ref: '#/components/schemas/MonetaryAmount' TargetGroupStatisticsIssueType: type: string description: The type of issue. enum: - warning - error example: warning ExclusionEntityType: type: string description: Indicates the entity type of the excluded element. Possible values are `RID` (Respondent ID) or `CID` (Access Respondent GUID) enum: - RID - CID example: RID CostPerInterviewUpdateResponse: type: object description: Response for cost per interview update. required: - target_group_cpi properties: target_group_cpi: $ref: '#/components/schemas/TargetGroupCpi' parameters: TargetGroupLanguage: name: language in: query description: Target Group language(s) to match against. schema: type: array items: type: string pattern: ^[a-z]{3}$ example: eng TargetGroupName: name: name in: query deprecated: true description: 'The (partial) name of the target group to match against. Supports partial and stemmed matching. This query parameter is deprecated and replaced by the `search_string` parameter. If only the `name` parameter is supplied, it will be used as if it was the `search_string`. If both `name` and `search_string` are supplied, `name` will be ignored. ' schema: type: string example: My Target Gr ProjectManagerIDFilter: name: project_manager_id in: query description: Filters the list of projects by the assigned project manager's ID. schema: $ref: '#/components/schemas/UserID' TargetGroupChangeTypes: name: change_types in: query description: Filter parameter to return only changes of given types. schema: type: array items: $ref: '#/components/schemas/TargetGroupChangeType' PageSize: name: page_size in: query description: A limit on the number of objects to be returned, between 1 and 100. schema: type: integer default: 10 example: 15 AggregationInterval: name: aggregation_interval description: An ISO-8601 formatted interval which is used to aggregate a time series. in: query schema: type: string example: P1DT5H AccountID: name: account_id description: The account's unique identifier. in: path required: true schema: $ref: '#/components/schemas/AccountID' ProjectID: name: project_id description: A unique identifier for the project, in ULID format. in: path required: true schema: $ref: '#/components/schemas/ProjectID' BusinessUnitID: in: path name: business_unit_id schema: $ref: '#/components/schemas/BusinessUnitID' required: true description: The unique identifier for the business unit. ChangelogPageSize: name: page_size in: query description: 'A limit on the number of objects to be returned, between 1 and 50. ' schema: type: integer default: 50 example: 15 TargetGroupExclusionStatus: name: exclusion_status in: query description: Only return target groups with the specified exclusion status. schema: type: boolean example: false TargetGroupSearchString: name: search_string in: query description: 'Search string to match against. The string will be used to search based on the target group''s name and/or the target group''s human readable ID. Supports partial matching for target group name and human readable ID. Also supports English language stemmed matching for target group name. ' schema: type: string example: My Target Gr TargetGroupHumanReadableIds: name: human_readable_ids in: query description: 'An array of target group human readable ID''s to filter by. When there are no other filter or search parameters supplied, the call will return a list of target groups that match these ID''s. ' schema: type: array items: $ref: '#/components/schemas/TargetGroupHumanReadableID' CintAPIVersion-2025-12-18: name: Cint-API-Version in: header required: true schema: type: string example: 2025-12-18 description: 'This header is MANDATORY for all API requests. The API version format is `YYYY-MM-DD`. ' EndBefore: name: end_before in: query description: Returns a list of objects that come before the provided pagination cursor. This is used for navigating to a previous page. schema: type: string example: 7daa40ad-303b-40a2-89df-a9760400cde7 TargetGroupCountry: name: country in: query description: Target Group country or countries to match against. Get a list of all available countries [here](#tag/Definitions/operation/list_all_question_categories). schema: type: array items: type: string pattern: ^[a-z]{2}$ example: us StartAfter: name: start_after in: query description: Returns a list of objects after the provided pagination cursor, using the next_cursor from the previous response. schema: type: string example: bff6a669-a469-409d-8c94-dcf92258043a TargetGroupStatus: name: status in: query description: Target Group status(es) to match against. schema: type: array items: $ref: '#/components/schemas/TargetGroupStatus' TargetGroupID: name: target_group_id description: A unique identifier for the target group, in ULID format. in: path required: true schema: $ref: '#/components/schemas/TargetGroupID' CountryCode: in: query name: country_code schema: type: string required: true example: US description: Country code to find the rate card for. TargetGroupCustomerReferenceNumbers: name: target_group_customer_reference_numbers in: query description: 'An array of target group customer reference numbers to filter by. When there are no other filter or search parameters supplied, the call will return a list of target groups that match these values. ' required: false schema: type: array items: $ref: '#/components/schemas/TargetGroupCustomerReferenceNumber' responses: Error_Unauthorized: description: A request is unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: 1dcf0f40-f0d1-4cf6-8c00-c3d019d32faf object: authorization_error detail: no valid authorization provided for this operation Error_NotFound: description: A requested resource isn't found. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: 7a5972ba-0825-4360-b852-fa2430e47034 object: not_found_error detail: resource not found Error_Internal: description: A request failed due to an internal error. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: d94b8bb2-a540-4a91-9c05-2aa3ae9a5e1e object: unexpected_internal_error detail: an internal error has led to the failure of this operation Error_MethodNotAllowed: description: A request is valid but not supported by the current state of the target resource. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: 10e53384-803e-4cb6-b8c2-d93fa196ea8e object: method_not_allowed_error detail: Cannot complete a target group which is paused. Error_BadRequest: description: A request is not valid and can't be processed. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: 9e278238-d011-4e05-8327-1ce1d5d26254 object: bad_request_error detail: Expected field 'foo' is missing. Error_Forbidden: description: A requested is forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' example: id: fe68cdd2-ee87-4dbf-8950-63c5cbca94c7 object: authorization_error detail: you don't have the right permissions to perform this operation headers: Traceparent: description: The `traceparent` header carries the trace ID and parent span ID, as defined by the W3C Trace Context specification. It's used to trace a single request as it moves through multiple services. required: false schema: $ref: '#/components/schemas/Traceparent' Tracestate: description: The `tracestate` header complements the `traceparent` header by carrying vendor-specific trace information. This allows different services to add their own data to a trace. required: false schema: $ref: '#/components/schemas/Tracestate' Location: description: 'Contains the URL where a new resource can be found, often returned with a `201 Created` response. It follows the format defined in RFC 7231. ' required: true schema: type: string format: uri-reference description: A reference to the resource's location. This can be a full URL, a relative path, or just the resource ID. example: full-url: summary: A full URL to the resource value: https://api.cint.com/demand/business-units relative-path: summary: A relative path to the resource value: /demand/business-units resource-id: summary: A resource ID value: fe666fcd-490c-4cb4-b4e0-2f86e15c27e6 securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: Bearer token used for authentication and authorization. See [Authentication Process](https://developer.cint.com/en/guides#authentication-process) documentation for more information. ApiKeyAuth: type: apiKey in: header name: Authorization description: API Key Authentication