Skip to main content
Version: 2025-05-27

Validate profiles

POST 

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

Validate profiles and provide warnings or errors.

Note there is no storage or persistence behind this endpoint; POST is used to enable requestors to send full profiles payload to check that it is valid before saving and launching a Fielding Run.

Important Note-1 on Integration

Problem: A common integration issue occurs when the response from the generateInterlocked endpoint is incorrectly used as input for the calculateFeasibility endpoint. This misuse leads to processing failures.

Background: Within quota objects in the interlocked profile, related conditions can be structured in two formats:

  1. Map of Related Conditions
  2. Array of Related Conditions The generateInterlocked endpoint returns maps of related conditions. However, the calculateFeasibility endpoint expects an array format. Passing the map format directly causes the feasibility calculation to fail.

Recommended Mitigation: To ensure successful processing, the map structure must be converted to the expected array format.

Step 1: Example Response from generateInterlocked

"related_condition": {
"42": [
{
"text": "35-39",
"text_translated": "35-39",
"min": 35,
"max": 39
}
],
"43": [
{
"text": "Female",
"text_translated": "Female",
"option": "2"
}
]
}

Step 2: Transform to Array Format

"related_condition": [
{
"question_id": 42,
"conditions": [
{
"text": "35-39",
"text_translated": "35-39",
"min": 15,
"max": 39
}
]
},
{
"question_id": 43,
"conditions": [
{
"text": "Female",
"text_translated": "Female",
"option": "2"
}
]
}
]

Step 3: Submit the transformed data to the calculateFeasibility endpoint. The endpoint will then process the request successfully.

Root Cause: This issue arises due to schema version inconsistencies across clients. An upcoming release will consolidate all versions into a single, unified schema.

Request

Responses

Successfully validated profile