Stateless quote rating is live — both
POST /api/v1/companies/{companyId}/quotes/rate (rate a prospective quote from a request body) and POST /api/v1/companies/{companyId}/quotes/{quoteId}/rate (rate an already-saved quote by id) compute rating results and return them without persisting anything. Hosted rating supports new-business, renewal, and endorsement quotes. External rating (“bring your own engine”) works today via the existing entity-update endpoints (see below). See the Roadmap for overall API direction.Hosted Rating
Invoke the AI Insurance-configured rating engine for a quote. The system runs the configured rating workflow (per company) and computes the rating results. Hosted rating is stateless. The computed rating outputs are returned in the response, enriched onto the quote’s field bag — nothing is written to the quote, and no rating run is recorded. If you want to keep the results, persisting them is a separate update you make with the entity-update endpoints (see External Rating below). Hosted rating supports quote typesnewBusiness, renewal, and endorsement. It does not rate cancellation or reinstatement quotes: those transactions preserve the source policy’s rating result and derive cancellation pricing from earned amounts or restore pre-cancellation pricing. Either unsupported quote type returns a structured 400 InvalidRequest before a configured rater or vendor is called.
Live Endpoints
The stateless rate endpoint takes
{ ratingWorkflowName, data }, where data is the exact create-quote field bag. It validates data with the create-quote pipeline (a body create-quote would reject fails with the identical 400), runs the named rating workflow, and returns { data } — the same bag enriched with rating outputs. It writes no quote and records no rating run. ratingWorkflowName is required: a missing/unknown name returns a 400 listing the configured names, and a company with no workflows configured returns a 422.
Because embedded exposures are referenced by id over the API (you cannot inline-create an exposure), exposure id references are looked up and merged: 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. Fields you supply inline win over the stored values (the body is a draft-edit over the stored exposure). This lookup is read-only. If a rating target the selected workflow requires — e.g. quote.exposures — is empty or missing on the quote after this merge, the endpoint returns a 400 naming the workflow and the target path.
The by-id rate endpoint takes just { ratingWorkflowName } in the body and the quote id in the path. It loads the saved quote’s stored field bag and runs the identical pipeline — the same create-quote validation, the same exposure id hydration, the same rating workflow — returning { data }, the saved quote’s bag enriched with rating outputs. It never modifies the quote: no field is written and no rating run is recorded, so the quote row is byte-identical before and after. For a supported quote type, any saved quote rates regardless of its quoteStatus (including bound and cancelled); this status promise does not make unsupported cancellation or reinstatement quote types ratable. There are deliberately no data overrides — to rate what-if values, use the full-body /quotes/rate endpoint instead (GET the quote, tweak, and POST it there). ratingWorkflowName behaves identically (missing/unknown → 400 listing the configured names; no workflows configured → 422), an unknown / deleted / other-company / non-quote id returns a 404, and a saved quote whose stored data no longer validates against your current configuration returns the same structured 400.
Planned Endpoints
How It Works
- Call the appropriate rating endpoint for your use case
- The system invokes the rating engine configured for your company
- The computed rating results are returned in the response, enriched onto the quote’s field bag — nothing is persisted
- To keep the results, write them back yourself with the entity-update endpoints (see External Rating below)
When to Use
- You use AI Insurance’s built-in rating engine
- You want the system to compute premium based on your configured rating logic
- You want to preview or recompute premium without changing the stored quote
External Rating (Bring Your Own Engine)
External rating is available today — no new endpoint is needed. If you compute rating externally, write your rating results directly to the quote (or policy endorsement) using the existing update endpoints.How It Works
- Compute rating results in your own system
- Update the quote via
PATCH(orPUTalias)/api/v1/companies/{companyId}/entities/quote/{entityId}withpolicyRatingResponseandexposureRatingResponsefields populated. For an in-force policy, write rating results through a policyendorsetransaction instead. - The system treats these as regular field data — no special handling required
When to Use
- You have a proprietary rating engine
- Rating is computed outside AI Insurance
- You need full control over the rating calculation
Both Approaches Work Together
The API doesn’t require rating results to come from any specific source. Whether you use hosted rating, external rating, or a combination, the downstream workflow is the same: once rating fields are populated on a quote or endorsement, it can proceed through the workflow.Permissions
Related Resources
- Entities API — create and manage quotes
- Policy API — create policies from rated quotes via the transaction model
- Roadmap — overall API direction
