Rate Saved Quote by Id (Stateless)
Rates an already-saved quote, named by id, and returns the rating
results — without persisting anything. The quote is never modified: no
field is written, no rating run is recorded, and the quote row is
byte-identical before and after. This is the by-id sibling of
POST /api/v1/companies/{companyId}/quotes/rate; the only difference is
where the field bag comes from — loaded from the saved quote here, supplied
in the request body there.
The quote id is a path parameter; the request body carries only
ratingWorkflowName. There are deliberately no data overrides — to
rate what-if values (“as if field X were Y”), GET the quote, tweak it, and
POST the full-body /quotes/rate endpoint, which supports inline overrides.
Semantics. The saved quote’s stored field bag is validated with the
identical create-quote pipeline (shape, resolution, tenant invariants, entity
invariants), embedded exposure id references are looked up and merged from
their stored data exactly as the full-body endpoint does, and then the named
rating workflow runs. For a supported quote type there is no quote-status
gate — any saved quote rates regardless of quoteStatus (bound and
cancelled included), because rating a saved quote is a read-only
computation that can corrupt nothing. This status promise does not expand
the supported quote types: cancellation and reinstatement return a
structured 400 InvalidRequest before any rater or vendor call because
those transactions preserve rating and derive or restore pricing.
The 200 response returns the saved quote’s bag under data, enriched with
the rating outputs (e.g. exposureRatingResponse on each exposure and the
full-term policy rating containers).
Required permission: company.quote:rate
Authorizations
API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.
Path Parameters
Company identifier
Quote identifier
Body
The configured rating workflow to run. Required in practice —
there is no default even when a single workflow is configured —
but it is not schema-required: rather than a shape rejection, a
missing or unknown name returns a 400 listing the configured
workflow names (and a company with no workflows configured
returns a 422), so callers get an actionable error naming the
valid options. There is no fallback to any per-quote persisted
selection.
"standard"
Response
The saved quote's data enriched with rating outputs. Nothing is persisted.
The saved quote's stored field bag, enriched with rating
outputs (per-exposure exposureRatingResponse, and the
full-term policy rating containers).
