Profiling Helper

Validates a profile

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.

post/demand/accounts/{account_id}/profiles/validate

Request

Request body

localestring required
completes_goalnumber 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.

Example request

{
  "locale": "eng_us",
  "completes_goal": 1000,
  "profiling": {
    "profile_adjustment_type": "percentage",
    "profiles": [
      {
        "object": "regular",
        "name": "GENDER",
        "quotas_enabled": true,
        "targets": [
          {
            "name": "Target-Male",
            "conditions": [
              {
                "object": "selection",
                "question_id": 43,
                "option": "1"
              }
            ],
            "quota": {
              "completes_goal_percentage": 50
            }
          },
          {
            "name": "Target-Female",
            "conditions": [
              {
                "object": "selection",
                "question_id": 43,
                "option": "2"
              }
            ],
            "quota": {
              "completes_goal_percentage": 50
            }
          }
        ]
      },
      {
        "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,
              "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,
              "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,
              "completes_goal": 0,
              "quota_nominal": 0
            }
          }
        ]
      }
    ]
  }
}

Response

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

Changes

No recorded changes to this operation across all 1 revision of this API.