---
title: "Create a target group in draft status"
method: POST
path: "/demand/accounts/{account_id}/projects/{project_id}/target-groups"
tags: ["Target Groups"]
---

# Create a target group in draft status

`POST /demand/accounts/{account_id}/projects/{project_id}/target-groups`

## Request

- Base URL: `https://api.cint.com/v1`
- URL: `https://api.cint.com/v1/demand/accounts/{account_id}/projects/{project_id}/target-groups`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/cint/apis/demand-api/docs/demand/accounts/:account_id/projects/:project_id/target-groups/post.ts> (a function with typed inputs; its response is checked against the schema)

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.

## Request body

- union: Request body for creating a target group in draft status.
  - object
    - `name` string, required: A human-readable name for the target group.
    - `business_unit_id` integer, required: Determines the currency used for the Target Group.
    - `locale` string, required: Unique text code of the locale. Get a list of all available locales [here](#tag/Definitions/operation/get_locales).
    - `collects_pii` boolean, required: Indicates whether or not the target group collects Personally Identifiable Information (PII).
    - `study_type_code` string: 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).
    - `industry_code` string: Uniquely identifies the industry with which this Target Group is associated. Get a list of all available industries [here](#tag/Definitions/operation/get_industries).
    - `cost_per_interview` TargetGroupClientCpiMonetaryAmountRequestModel: Represents a monetary value, including the amount and its currency.
      - `value` string: The monetary value, represented as a string to maintain precision.
      - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
    - `client_cost_per_interview_note` TargetGroupClientCpiMonetaryAmountRequestModel: Represents a monetary value, including the amount and its currency.
      - `value` string: The monetary value, represented as a string to maintain precision.
      - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
    - `project_manager_id` string, uuid, required: A unique identifier for the user.
    - `client_id` integer, nullable: Client ID associated with the created Target Group
    - `fielding_specification` TargetGroupFieldingSpecification, required: Contains Target Group fielding details.
      - `start_at` string, date-time, required: The timestamp the Target Group is scheduled to start at (RFC3339 UTC format, 3 fractional digits).
      - `end_at` string, date-time, required: The timestamp the Target Group is scheduled to end at (RFC3339 UTC format, 3 fractional digits).
    - `completes_goal` number, required: 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.
    - `expected_length_of_interview_minutes` integer, required: Expected median length of interview of the Target Group.
    - `expected_incidence_rate` number, float, required: Expected incidence rate of the Target Group.
    - `exclusion` TargetGroupExclusionObject
      - `enabled` boolean: Whether or not the project level exclusion policy is enabled
      - `list` ExclusionEntityList[]: 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.
        - `entity_type` 'RID' | 'CID': Indicates the entity type of the excluded element. Possible values are `RID` (Respondent ID) or `CID` (Access Respondent GUID)
        - `entity_ids` ExclusionEntityID[]
    - `respondent_activity_exclusions` RespondentActivityExclusionsIDsListRequest[]: The list of target groups and projects whose respondents should be excluded from this target group's survey.
      - `type` 'target-group' | 'project', required: The type of entity related to the `id`. This value can either be `target-group` or `project`.
      - `id` string, ulid, required: the unique entity ID.
      - `duration` string, duration: 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).
      - `respondent_statuses` string[]: This field is only applicable if your account has access to this feature. If your account does not have access, including any respondent status other than "Complete" will cause the request to be rejected with an HTTP 400 Bad Request response and the message "Not allowed to use respondent_statuses other than 'Complete'". If you don't require this behavior or don't have access to the feature, simply omit this field. This is an optional configuration of which respondent statuses to consider in the defined exclusion.
    - `industry_lockout_code` string: 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).
    - `live_url` string: The link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.
    - `test_url` string: The test link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.
    - `fielding_assistant_assignment` FieldingAssistantModulesAssignmentRequestModel, required: Having an assignment enables Fielding Assistant modules on a specified target group. All modules are optional, their omission means they are not enabled.
      - `pricing` union: The pricing module configuration. The `type` field within the object determines the model (`dynamic` or `rate_card`).
        - ModuleDynamicPricing: 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`.
          - `type` 'dynamic', required: The type of module. For this object, the value is always 'dynamic'.
          - `total_budget` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `maximum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `minimum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
        - ModuleRateCardPricing: Manages pricing for a target group that uses a rate card model. This module cannot be used with `dynamic` pricing.
          - `type` 'rate_card', required: The type of module. For this object, the value is always 'rate_card'.
          - `maximum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `boost_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
      - `quota_overlay` ModuleQuotaOverlay: Controls how the overall completes goal is distributed across the target group's quotas.
        - `prevent_overfill` boolean, required: When `true`, this setting helps prevent quotas from exceeding their target number of completes.
        - `balance_fill` boolean, required: Whentrue, this setting ensures that quotas within the same demographic category fill at a similar rate.
      - `pacing` union: The pacing module configuration. The `type` field within the object determines the pacing strategy (`linear`, `adaptive`, or `gemini`).
        - ModuleLinearPacing: Paces fielding by incrementing the completes goal in regular intervals until the target group's end date.
          - `type` 'linear', required: The type of module. For this object, the value is always 'linear'.
          - `increment_interval` string, duration, required: 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.
        - ModuleAdaptivePacing: Increments quotas in regular intervals, recalculating steps after each interval to evenly pace the rest of the Completes Goal until the end date.
          - `type` 'adaptive', required: The type of module. For this object, the value is always 'adaptive'.
          - `increment_interval` string, duration, required: 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.
        - ModuleGeminiPacing: Always collects at most as many completes on each quota, as were collected on an exposed target group. Intended for Measurement control target groups.
          - `type` 'gemini', required: The type of module. For this object, the value is always 'gemini'.
          - `exposed_target_group_id` string, ulid, required: Uniquely identifies exposed target group by ID.
      - `soft_launch` ModuleSoftLaunch: Manages a soft launch of a target group. During a soft launch, pacing modules are ignored.
        - `end_at` string, date-time, required: The soft launch will be finished at this date, and the target group paused regardless of the fill.
        - `filling_goal_percentage` integer, required: The percentage of the full filling goal to collect during the soft launch phase.
        - `demographics_strictness_percentage` integer, required: 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.
    - `filling_strategy` 'automated' | 'prescreens' | 'completes': Target group filling strategy.
    - `profiling` union
      - object
        - `template_id` string, uuid, required: The ID of the profile template. If the template is already applied but the request body has different template id then all the profiles associated to previous template will be deleted.
        - `profile_adjustment_type` 'percentage', required: The method used to specify quota targets. Must be one of: - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).
        - `profiles` RequestDraftRegularProfileV3[], required: The profiles to be added to the Target Group. **Constraint**: If using a template, if any template profile shares the same question as a profile in the profiles array, the profile in the array takes precedence over the template profile.
          - union
            - object
              - …
            - object
              - …
      - null, nullable: If no profiling is required, this field can be set to null or omitted.
    - `allocations` CreateDraftAllocationSpecificationGroupRequest, required: 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.
      - `open_exchange_allocations` object, required
        - `blocked_supplier_ids` string[], required: A list of unique supplier identifiers.
        - `exchange_min_percentage` integer, required
        - `exchange_max_percentage` integer, required
        - `groups` object[], required
          - `group_name` string, required: only unique group names are valid.
          - `min_percentage` integer, required
          - `max_percentage` integer, required
          - `suppliers` string[], required: A list of unique supplier identifiers.
      - `private_exchange_allocations` object
        - `blocked_supplier_ids` string[], required: A list of unique supplier identifiers.
        - `groups` object[], required
          - `group_name` string, required: only unique group names are valid.
          - `min_percentage` integer, required
          - `max_percentage` integer, required
          - `supplier_id` string, required
    - `allocation_template` AllocationTemplateReference: Reference to an existing allocation template to load and apply as the Target Group's allocation specification. Mutually exclusive with `allocations`.
      - `id` string, ulid, required: A unique identifier for the template.
      - `type` 'global' | 'account' | 'country', required: The scope of the allocation template to load.
    - `re_entry_configuration` ReEntryConfiguration: The re-entry configuration of a Target Group.
      - `completes` object, required: Whether to allow re-entry from Complete status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `pre_client_survey_processes` object, required: Whether to allow re-entry from Pre Client Survey Processes status.
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `financial_terms` object, required: Whether to allow re-entry from Financial Terms status.
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `terminates` object, required: Whether to allow re-entry from Terminates status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `security_failures` object, required: Whether to allow re-entry from Security Failures status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `overquota` object, required: Whether to allow re-entry from Overquota status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `in_screener` object, required: Whether to allow re-entry from InScreener status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
    - `target_group_customer_reference_number` string, nullable: A customer-provided reference number for the target group.
  - object
    - `name` string, required: A human-readable name for the target group.
    - `business_unit_id` integer, required: Determines the currency used for the Target Group.
    - `locale` string, required: Unique text code of the locale. Get a list of all available locales [here](#tag/Definitions/operation/get_locales).
    - `collects_pii` boolean, required: Indicates whether or not the target group collects Personally Identifiable Information (PII).
    - `study_type_code` string: 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).
    - `industry_code` string: Uniquely identifies the industry with which this Target Group is associated. Get a list of all available industries [here](#tag/Definitions/operation/get_industries).
    - `cost_per_interview` TargetGroupClientCpiMonetaryAmountRequestModel: Represents a monetary value, including the amount and its currency.
      - `value` string: The monetary value, represented as a string to maintain precision.
      - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
    - `client_cost_per_interview_note` TargetGroupClientCpiMonetaryAmountRequestModel: Represents a monetary value, including the amount and its currency.
      - `value` string: The monetary value, represented as a string to maintain precision.
      - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
    - `project_manager_id` string, uuid, required: A unique identifier for the user.
    - `client_id` integer, nullable: Client ID associated with the created Target Group
    - `fielding_specification` TargetGroupFieldingSpecification, required: Contains Target Group fielding details.
      - `start_at` string, date-time, required: The timestamp the Target Group is scheduled to start at (RFC3339 UTC format, 3 fractional digits).
      - `end_at` string, date-time, required: The timestamp the Target Group is scheduled to end at (RFC3339 UTC format, 3 fractional digits).
    - `completes_goal` number, required: 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.
    - `expected_length_of_interview_minutes` integer, required: Expected median length of interview of the Target Group.
    - `expected_incidence_rate` number, float, required: Expected incidence rate of the Target Group.
    - `exclusion` TargetGroupExclusionObject
      - `enabled` boolean: Whether or not the project level exclusion policy is enabled
      - `list` ExclusionEntityList[]: 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.
        - `entity_type` 'RID' | 'CID': Indicates the entity type of the excluded element. Possible values are `RID` (Respondent ID) or `CID` (Access Respondent GUID)
        - `entity_ids` ExclusionEntityID[]
    - `respondent_activity_exclusions` RespondentActivityExclusionsIDsListRequest[]: The list of target groups and projects whose respondents should be excluded from this target group's survey.
      - `type` 'target-group' | 'project', required: The type of entity related to the `id`. This value can either be `target-group` or `project`.
      - `id` string, ulid, required: the unique entity ID.
      - `duration` string, duration: 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).
      - `respondent_statuses` string[]: This field is only applicable if your account has access to this feature. If your account does not have access, including any respondent status other than "Complete" will cause the request to be rejected with an HTTP 400 Bad Request response and the message "Not allowed to use respondent_statuses other than 'Complete'". If you don't require this behavior or don't have access to the feature, simply omit this field. This is an optional configuration of which respondent statuses to consider in the defined exclusion.
    - `industry_lockout_code` string: 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).
    - `live_url` string: The link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.
    - `test_url` string: The test link into the study that the respondent gets redirected to upon qualification. Note: This url must be HTTPS.
    - `fielding_assistant_assignment` FieldingAssistantModulesAssignmentRequestModel, required: Having an assignment enables Fielding Assistant modules on a specified target group. All modules are optional, their omission means they are not enabled.
      - `pricing` union: The pricing module configuration. The `type` field within the object determines the model (`dynamic` or `rate_card`).
        - ModuleDynamicPricing: 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`.
          - `type` 'dynamic', required: The type of module. For this object, the value is always 'dynamic'.
          - `total_budget` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `maximum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `minimum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
        - ModuleRateCardPricing: Manages pricing for a target group that uses a rate card model. This module cannot be used with `dynamic` pricing.
          - `type` 'rate_card', required: The type of module. For this object, the value is always 'rate_card'.
          - `maximum_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
          - `boost_cpi` MonetaryAmount: Represents a monetary value, including the amount and its currency.
            - `value` string: A decimal encapsulated in a string representing the value in the denomination indicated by the code.
            - `currency_code` string: The three-letter ISO 4217 currency code, in uppercase. The code must correspond to a currency supported by Cint Exchange.
            - `currency_scale` integer, nullable: The number of digits after the decimal separator, as defined by ISO 4217.
      - `quota_overlay` ModuleQuotaOverlay: Controls how the overall completes goal is distributed across the target group's quotas.
        - `prevent_overfill` boolean, required: When `true`, this setting helps prevent quotas from exceeding their target number of completes.
        - `balance_fill` boolean, required: Whentrue, this setting ensures that quotas within the same demographic category fill at a similar rate.
      - `pacing` union: The pacing module configuration. The `type` field within the object determines the pacing strategy (`linear`, `adaptive`, or `gemini`).
        - ModuleLinearPacing: Paces fielding by incrementing the completes goal in regular intervals until the target group's end date.
          - `type` 'linear', required: The type of module. For this object, the value is always 'linear'.
          - `increment_interval` string, duration, required: 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.
        - ModuleAdaptivePacing: Increments quotas in regular intervals, recalculating steps after each interval to evenly pace the rest of the Completes Goal until the end date.
          - `type` 'adaptive', required: The type of module. For this object, the value is always 'adaptive'.
          - `increment_interval` string, duration, required: 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.
        - ModuleGeminiPacing: Always collects at most as many completes on each quota, as were collected on an exposed target group. Intended for Measurement control target groups.
          - `type` 'gemini', required: The type of module. For this object, the value is always 'gemini'.
          - `exposed_target_group_id` string, ulid, required: Uniquely identifies exposed target group by ID.
      - `soft_launch` ModuleSoftLaunch: Manages a soft launch of a target group. During a soft launch, pacing modules are ignored.
        - `end_at` string, date-time, required: The soft launch will be finished at this date, and the target group paused regardless of the fill.
        - `filling_goal_percentage` integer, required: The percentage of the full filling goal to collect during the soft launch phase.
        - `demographics_strictness_percentage` integer, required: 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.
    - `filling_strategy` 'automated' | 'prescreens' | 'completes': Target group filling strategy.
    - `profiling` union
      - object
        - `template_id` string, uuid, required: The ID of the profile template. If the template is already applied but the request body has different template id then all the profiles associated to previous template will be deleted.
        - `profile_adjustment_type` 'percentage', required: The method used to specify quota targets. Must be one of: - **percentage**: specify a proportion of the total as a decimal with up to two decimal places (e.g. `12.34` for 12.34%).
        - `profiles` RequestDraftRegularProfileV3[], required: The profiles to be added to the Target Group. **Constraint**: If using a template, if any template profile shares the same question as a profile in the profiles array, the profile in the array takes precedence over the template profile.
          - union
            - object
              - …
            - object
              - …
      - null, nullable: If no profiling is required, this field can be set to null or omitted.
    - `allocations` CreateDraftAllocationSpecificationGroupRequest: 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.
      - `open_exchange_allocations` object, required
        - `blocked_supplier_ids` string[], required: A list of unique supplier identifiers.
        - `exchange_min_percentage` integer, required
        - `exchange_max_percentage` integer, required
        - `groups` object[], required
          - `group_name` string, required: only unique group names are valid.
          - `min_percentage` integer, required
          - `max_percentage` integer, required
          - `suppliers` string[], required: A list of unique supplier identifiers.
      - `private_exchange_allocations` object
        - `blocked_supplier_ids` string[], required: A list of unique supplier identifiers.
        - `groups` object[], required
          - `group_name` string, required: only unique group names are valid.
          - `min_percentage` integer, required
          - `max_percentage` integer, required
          - `supplier_id` string, required
    - `allocation_template` AllocationTemplateReference, required: Reference to an existing allocation template to load and apply as the Target Group's allocation specification. Mutually exclusive with `allocations`.
      - `id` string, ulid, required: A unique identifier for the template.
      - `type` 'global' | 'account' | 'country', required: The scope of the allocation template to load.
    - `re_entry_configuration` ReEntryConfiguration: The re-entry configuration of a Target Group.
      - `completes` object, required: Whether to allow re-entry from Complete status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `pre_client_survey_processes` object, required: Whether to allow re-entry from Pre Client Survey Processes status.
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `financial_terms` object, required: Whether to allow re-entry from Financial Terms status.
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `terminates` object, required: Whether to allow re-entry from Terminates status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `security_failures` object, required: Whether to allow re-entry from Security Failures status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `overquota` object, required: Whether to allow re-entry from Overquota status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
      - `in_screener` object, required: Whether to allow re-entry from InScreener status.
        - `client_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
        - `screener_side` TargetGroupReEntryAttributeConfig, required: 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.
          - `allow_for_current_target_group` boolean, required
          - `allow_for_other_target_groups` boolean, required
    - `target_group_customer_reference_number` string, nullable: A customer-provided reference number for the target group.

## Response `201`

Successfully created a Target Group in draft status.

- CreatedDraftTargetGroupResponse: Response for creating draft target Group.
  - `id` string, required: A unique identifier for the target group, in ULID format.

## Other responses

- `400`: A request is not valid and can't be processed.
- `401`: A request is unauthorized.
- `403`: A requested is forbidden.
- `404`: A requested resource isn't found.
- `422`: The request is well-formed, but it cannot be applied in the current state. The response body lists the reasons in `errors`.
- `500`: A request failed due to an internal error.

---

[API](https://skmtc.dev/cint/apis/demand-api.md) - [All operations](https://skmtc.dev/cint/apis/demand-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cint/apis/demand-api/revisions/077a4bdda5cb?raw)
