Rate Quote (Stateless)
Rates the quote a create-quote request WOULD create, and returns the rating results — without persisting anything. No quote is stored, no rating run is recorded. Use it to preview premium for a prospective quote, or to rate a quote you manage in your own system.
The request body carries the exact create-quote payload under data (the
same flat field bag you would POST to
/api/v1/companies/{companyId}/entities/quote), plus the
ratingWorkflowName naming which configured rating workflow to run.
Semantics — “rate the quote this body would create.” The data bag is
validated with the identical create-quote pipeline (shape, resolution,
tenant invariants, entity invariants) with the same rules an external
create applies: embedded exposures must reference existing Exposure records
by id (id-less / draft embedded values are rejected). A body that
create-quote would reject fails here with the identical structured 400.
Then the named rating workflow runs over the resolved quote.
Hosted rating supports newBusiness, renewal, and endorsement quote
types. cancellation and reinstatement return a structured
400 InvalidRequest before any rater or vendor call because those
transactions preserve the source policy rating result and derive or restore
pricing instead of repricing.
Exposure id references are looked up and merged. Because an API-key
caller references exposures by id (embedded exposures cannot be
inline-created over the API), each referenced Exposure’s stored fields are
fetched and merged under the reference before rating, so the exposure is
rated against its real stored data rather than a blank record. Fields you
supply inline win over the stored values, per top-level field (the body
is treated as a draft-edit over the stored exposure). This lookup is
read-only — nothing is persisted. (Note: this is an interim behavior for
EmbeddedExposure exposure references; join-linked entities are not
hydrated.)
The 200 response echoes the same bag back 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
Body
The create-quote payload — the flat field bag, unchanged.
Custom fields are validated against your company's field
configuration (unknown fields rejected, required fields
enforced, values matched to their configured types). Embedded
exposure values are validated per-field against the Exposure
configuration and must reference existing Exposure records by
id; each referenced exposure's stored fields are then merged
in for rating, with any fields you supply inline winning over
the stored values.
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.
"standard"
Response
The quote data enriched with rating outputs. Nothing is persisted.
The same field bag from the request, enriched with rating
outputs (per-exposure exposureRatingResponse, and the
full-term policy rating containers).
