| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
Returns the current validation status for a proposal, including the overall status and the list of individual validation items from the most recent validation run. This endpoint does not perform a new evaluation; it reads the stored results. To trigger a new evaluation, call POST .../Validations/Run or POST .../Validations/Queue first.
The ValidationStatus field indicates the overall result of the last run. Possible values: NotRun, Running, Queued, Valid, ValidWithWarning, Error, ValidToRate, ValidToRateBind, Exception.
For statuses where no validation list is available (NotRun, Queued, Exception), the List field is null.
Sample validation workflow
- Run or queue validations (
POST .../Validations/Runor.../Validations/Queue). - Check overall status with this endpoint to see whether the proposal passed, failed, or has warnings. The response includes the complete list of validation items across all domains.
- Drill into a specific record with
GET .../Validations/{domain}/{id}to retrieve only the validations for one domain and record (e.g., a single location or coverage), rather than the full proposal-wide list. The items returned by that endpoint have the same shape as the items in theListarray here.
Examples
Scenario 1: Validations have been run and the proposal is valid:
GET /api/Quotes/Proposals/12345/Validations/Status200 OK
{
"ProposalID": 12345,
"LastValidationRunDateUTC": "2026-05-10T14:30:00Z",
"DeepModifiedDateUTC": "2026-05-10T14:25:00Z",
"ValidationStatus": "Valid",
"List": []
}Scenario 2: Validations found errors:
GET /api/Quotes/Proposals/12345/Validations/Status200 OK
{
"ProposalID": 12345,
"LastValidationRunDateUTC": "2026-05-10T14:30:00Z",
"DeepModifiedDateUTC": "2026-05-10T14:25:00Z",
"ValidationStatus": "Error",
"List": [
{
"ProposalValidationID": 1001,
"PolicyLineID": 5,
"StateID": null,
"CoverageID": null,
"DomainName": "ProposalLocation",
"DomainDisplayName": "Location",
"SubjectID": 200,
"ValidationType": "Error",
"Message": "Address is required.",
"FieldName": "Address1",
"FieldDisplayName": "Street Address",
"PreventBind": true,
"Waived": false,
"WaivedByUserID": null,
"WaivedReason": null,
"PreventRating": true,
"RecordChanged": false
}
]
}Scenario 3: Validations have not been run:
GET /api/Quotes/Proposals/99999/Validations/Status200 OK
{
"ProposalID": 99999,
"LastValidationRunDateUTC": null,
"DeepModifiedDateUTC": "2026-05-09T10:00:00Z",
"ValidationStatus": "NotRun",
"List": null
}