---
title: "Validates a profile"
method: POST
path: "/demand/accounts/{account_id}/profiles/validate"
tags: ["Profiling Helper"]
---

# Validates a profile

`POST /demand/accounts/{account_id}/profiles/validate`

## Request

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

Validates a complete profile and target configuration without creating or modifying any resources.

You can use this stateless endpoint to check your profile logic for business rule violations (e.g., overlapping quotas) before you use it to create or update a target group.
It provides detailed warnings and errors to help you build a valid configuration.

The API automatically removes duplicate open-ended values in this request before validation, but rejects duplicates in selection or range conditions.

## Request body

- ValidateProfilesRequestV3: The request body for validating a profile configuration.
  - `locale` string, required
  - `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.
  - `profiling` object, required: The core profiling configuration to be validated.
    - `profile_adjustment_type` 'percentage' | 'nominal', required: Defines how quotas are specified in the `profile` object. Use `percentage` to define quotas as a percentage of the `completes_goal`, or `nominal` to define them as a specific number of completes.
    - `profiles` RequestDraftRegularProfileV3[], required
      - union
        - object
          - `object` 'regular', required: Object field to distinguish the operation.
          - `name` string: The name of the regular profile.
          - `quotas_enabled` boolean, required: Flag indicating if quotas are enabled.
          - `targets` union, required: A request targets block must be one of: • a nominal target based on profile adjustement type (see RequestDraftGroupedQuotaNominalV3) • a percentage target based on profile adjustment type (see RequestDraftGroupedQuotaV3) • no target (empty object) should be in alignment with quota_enabled field as false.
            - RequestDraftQuotaNominalV3[]
              - …
            - RequestDraftQuotaPercentageV3[]
              - …
            - RequestDraftNoQuotaV3[]
              - …
        - object
          - `object` 'blended', required: Object field to distinguish the operation.
          - `blended_type` 'interlock' | 'control': 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).
          - `name` string, required: The name of the profile.
          - `quotas_enabled` boolean, required: Flag indicating if quotas are enabled.
          - `targets` union, required: A request targets block must be one of: • a nominal target based on profile adjustement type (see RequestDraftGroupedQuotaNominalV3) • a percentage target based on profile adjustment type (see RequestDraftGroupedQuotaV3) • no target (empty object) should be in alignment with quota_enabled field as false.
            - RequestDraftQuotaNominalV3[]
              - …
            - RequestDraftQuotaPercentageV3[]
              - …
            - RequestDraftNoQuotaV3[]
              - …

## Response `204`

The profile configuration is valid and has no errors or warnings.

## Other responses

- `400`: The request is malformed or contains syntactically invalid parameters.
- `401`: A request is unauthorized.
- `403`: A requested is forbidden.
- `422`: The request is well-formed, but the profile configuration is invalid (e.g., overlapping quotas, incorrect logic). The response body contains detailed validation errors.
- `500`: An unexpected internal error occurred.

---

[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)
