Validate Scenario
Check whether a scenario configuration is valid and ready for execution.
Validate Scenario
Validates a scenario's configuration -- confirms that all referenced personas, agents, and the scorecard exist and that the prompt is well-formed. Returns a list of errors if the scenario is not runnable.
Endpoint
POST /api/v1/scenarios/:id/validate
curl -X POST "https://api.chanl.ai/api/v1/scenarios/scenario_abc123/validate" \
-H "Authorization: Bearer <access_token>"const response = await fetch('https://api.chanl.ai/api/v1/scenarios/scenario_abc123/validate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
},
});
const data = await response.json();import requests
response = requests.post(
'https://api.chanl.ai/api/v1/scenarios/scenario_abc123/validate',
headers={'Authorization': f'Bearer {access_token}'},
)
data = response.json()Path Parameters
idstringrequiredThe scenario ID (e.g., scenario_abc123).
Response
Response
{
"success": true,
"data": {
"valid": true,
"checks": {
"personas": { "status": "pass", "count": 2 },
"agents": { "status": "pass", "count": 1 },
"scorecard": { "status": "pass" },
"prompt": { "status": "pass" },
"variables": { "status": "pass", "unresolved": [] }
}
}
}When validation fails, the response includes details on each failing check:
Response
{
"success": true,
"data": {
"valid": false,
"checks": {
"personas": { "status": "fail", "count": 0, "message": "At least one persona is required" },
"agents": { "status": "pass", "count": 1 },
"scorecard": { "status": "fail", "message": "Scorecard scorecard_999 not found" },
"prompt": { "status": "pass" },
"variables": { "status": "warn", "unresolved": ["charge_amount"] }
},
"errors": [
"At least one persona is required",
"Scorecard scorecard_999 not found"
],
"warnings": [
"Prompt variable 'charge_amount' has no default value and must be provided at execution time"
]
}
}Errors
| Status | Code | Description |
|---|---|---|
| 401 | unauthorized | Missing or invalid access token |
| 404 | not_found | Scenario not found |