---
title: "Confirm the review page and return preliminary offers."
method: POST
path: "/api/agent/umbrella/quotes"
---

# Confirm the review page and return preliminary offers.

`POST /api/agent/umbrella/quotes`

## Request

- Base URL: `https://api.coveragecat.com`
- URL: `https://api.coveragecat.com/api/agent/umbrella/quotes`
- Auth: HTTP bearer

Only call this after the user has reviewed the latest review JSON and approved or corrected any estimated values. Preliminary umbrella quotes do not require credit consent; Coverage Cat collects the soft-credit pull authorization at `select`. If the review token is stale or the application changed, go back to the draft step and obtain a fresh review token. Once a session has moved into bind or post-select checkout, do not replay an old review token through this endpoint. Sandbox sessions return mocked quote data and stop at the `status` endpoint rather than continuing into select/bind.

## Headers

- `Coverage-Cat-API-Version` 'v1'
- `Idempotency-Key` string

## Request body

- QuoteRequest
  - `review_confirmed` true, required
  - `review_token` string, required: Token returned from the latest ready_for_review draft response.
  - `sandbox` boolean: Optional mocked-mode flag. Once a delegated umbrella session is created with `sandbox: true`, later `quotes` and `status` calls may omit it because the uid stays sandbox-scoped.
  - `uid` string, required

## Response `200`

Offers or a no-quotes response.

- QuoteResponse
  - `agent_instructions` string[]
  - `compare_details_url` string, uri
  - `field_estimates` UmbrellaFieldEstimate[]: The estimated-field state that was present on the reviewed application. Use it to keep CRM estimate badges aligned with the review page the user approved.
    - `confidence` 'low' | 'medium' | 'high'
    - `confirmed_by_user` boolean: Whether a later draft update re-sent the same value as a confirmed answer.
    - `estimated_at` string, date-time
    - `field` string: Intake dot-path for the estimated answer.
    - `review_path` string[]: Path to the same value inside the `review` object.
    - `source` string: Provenance label for the estimate.
    - `value` string: Current serialized intake value for the estimated field.
  - `offers` AgentOffer[]
    - `annual_price` integer
    - `carrier` string
    - `choice_guidance` string
    - `coverage_limit` string
    - `display_notes` string[]
    - `is_estimate` boolean
    - `price_range` object, nullable
      - `high` integer
      - `low` integer
    - `rank` integer
    - `recommended` boolean
    - `sample_policy_url` string, uri: Public specimen-policy PDF for this carrier in the shopper's state, when Coverage Cat has one on file.
    - `selection_token` string
  - `response_summary` string
  - `sandbox` boolean: True when the offer response is mocked sandbox data.
  - `selection_guidance` object
    - `default_selection_token` string
    - `display_note` string
    - `summary` string
  - `status` 'quoted' | 'no_quotes'
  - `uid` string

## Other responses

- `400`: Missing confirmation or malformed request.
- `401`: Invalid or missing API key.
- `404`: Unknown delegated umbrella session.
- `409`: Review state is stale or more info is still required.
- `429`: Too many failed authentication attempts or delegated-agent requests. Honor the Retry-After header before retrying.

---

[API](https://skmtc.dev/coveragecat/apis/coverage-cat-delegated-insurance-purchase-apis.md) · [All operations](https://skmtc.dev/coveragecat/apis/coverage-cat-delegated-insurance-purchase-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/coveragecat/apis/coverage-cat-delegated-insurance-purchase-apis/revisions/b80fe29790dc?raw)
