---
title: "Select a quoted homeowners or umbrella offer on the consumer direct-follow-up path."
method: POST
path: "/api/intake/{uid}/select"
---

# Select a quoted homeowners or umbrella offer on the consumer direct-follow-up path.

`POST /api/intake/{uid}/select`

## Request

- Base URL: `https://api.coveragecat.com`
- URL: `https://api.coveragecat.com/api/intake/{uid}/select`
- Auth: HTTP bearer

Use this only after `GET /api/intake/{uid}/issues` returns structured offers with `selection_token`. Authenticate with `Authorization: Bearer <intake_access_token>` from the latest consumer-prefill follow-up response. For homeowners, this stages the selected offer for one final bind approval and returns `purchase_preview`, `preview_token`, carrier-direct payment guidance, and the registered notification channel; it does not collect payment and does not start carrier bind follow-up yet. For umbrella, Coverage Cat collects consent for a soft credit check here, after the user chooses an offer. If an umbrella offer exposes `um_uim_selection`, send the shopper's include-or-decline choice here as `um_uim_election` on the first select call. If the umbrella quote payload exposed `selection_guidance.same_reply_requirements` for the chosen offer, send those answers under `intake` on this first select call so the shopper can finish selection in one reply. If Coverage Cat still returns `credit_consent_required` with a bind-stage `next_question`, ask for both the soft-credit-check consent and those bind details in one shopper-facing turn, then retry this same endpoint with both `credit_consent` and the bind-stage answers under `intake`. Successful responses return detailed post-choose states rather than collapsing back into a coarse quoted bucket. For homeowners, any carrier payment or signing link will later be sent directly to the customer's email on file. For Monoline and Markel umbrella offers, once declarations uploads are on file, `documents_pending_review` usually transitions to `payment_needed` with a secure `payment_url` within about 5-10 minutes while declarations verification continues in parallel.

## Path parameters

- `uid` string, required

## Headers

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

## Request body

- union
  - ConsumerUmbrellaSelectRequest
    - `credit_consent` object: Real-user consent for a soft credit check, collected on the selection turn when Coverage Cat asks for it.
      - `answer` 'Yes', required: The shopper's own answer to Coverage Cat's credit_consent_question.
      - `collected_from_user` true, required: Attests that the shopper gave this answer directly in the conversation rather than the agent inferring it.
    - `intake` object: Optional bind-stage answers for the current next_question. Use this when Coverage Cat asked for consent for a soft credit check and bind details in the same shopper-facing turn, so you can retry select with both the consent and the answers together.
    - `selection_confirmed` true, required
    - `selection_token` string, required: Offer-selection token returned by the quoted umbrella follow-up payload.
    - `um_uim_election` union: Optional. Use this when the shopper wants to include or decline the offer's $1M excess UM/UIM option in the same selection reply.
      - boolean
      - 'include' | 'decline'
      - object
        - `elected` boolean, required
  - ConsumerHomeownersSelectRequest
    - `selection_confirmed` true, required: Must be true. Confirms the shopper chose this exact homeowners offer.
    - `selection_token` string, required: Offer-selection token returned by the quoted homeowners follow-up payload.

## Response `200`

Selection accepted or the next bind-stage state is ready.

- IntakeAssistantResponse: REST consumer follow-up payload for the `/api/intake/{uid}` surface.
  - `poll_after_seconds` integer
  - `documents` object[]
    - `content_type` string
    - `download_url` string, uri: Short-lived browser continuation for this policy document.
    - `label` string
    - `name` string
    - `type` string
  - `payment_setup` object
    - `environment` 'test' | 'live'
    - `payment_method_types` string[]
    - `provider` string
    - `setup_intent_id` string
    - `usage` string
  - `detail_status` 'abandoned' | 'blocked' | 'bound' | 'cancelled' | 'chosen' | 'credit_consent_pending' | 'credit_consent_required' | 'dev_success' | 'documents_needed' | 'documents_pending_review' | 'email_sent' | 'in_review' | 'ineligible' | 'info_requested' | 'needs_more_info' | 'needs_more_info_to_bind' | 'no_policy' | 'no_chosen_offer' | 'no_quotes' | 'no_selection' | 'ok' | 'payment_collection_ready' | 'payment_needed' | 'pending' | 'pending_quotes' | 'queued' | 'quote_rate_limited' | 'quoted' | 'ready_for_review' | 'ready_for_submission' | 'ready_to_finalize' | 'review_pending' | 'service_preview' | 'service_requested' | 'sandbox_unsupported' | 'stale_selection' | 'verifying_documents' | 'waiting_on_carrier' | 'waiting_on_documents' | 'waiting_on_payment'
  - `required_upload_types` string[]
  - `payment_ui` object
    - `availability` 'ready' | 'unknown' | 'unsupported'
    - `fallback_reason` string
    - `mode` string
  - `uid` string, required: Coverage Cat intake uid for the current handoff.
  - `payment_url` string, uri: Coverage Cat browser URL for secure payment fallback.
  - `known_summary` object: Structured facts Coverage Cat can safely summarize at this stage.
  - `compare_details_url` string, uri: Coverage Cat browser URL for compare-details follow-up.
  - `uploaded_count` integer
  - `response_summary` string
  - `schema` object: Supplemental schema hints for homeowners review payloads.
  - `user_action_required` string
  - `expires_at` string, date-time: When the current consumer handoff expires.
  - `agent_instructions` string[]
  - `review_token` string: Opaque review token for delegated review-style submit paths.
  - `status` 'abandoned' | 'blocked' | 'bound' | 'cancelled' | 'chosen' | 'credit_consent_pending' | 'credit_consent_required' | 'dev_success' | 'documents_needed' | 'documents_pending_review' | 'email_sent' | 'in_review' | 'ineligible' | 'info_requested' | 'needs_more_info' | 'needs_more_info_to_bind' | 'no_policy' | 'no_chosen_offer' | 'no_quotes' | 'no_selection' | 'ok' | 'payment_collection_ready' | 'payment_needed' | 'pending' | 'pending_quotes' | 'queued' | 'quote_rate_limited' | 'quoted' | 'ready_for_review' | 'ready_for_submission' | 'ready_to_finalize' | 'review_pending' | 'service_preview' | 'service_requested' | 'sandbox_unsupported' | 'stale_selection' | 'verifying_documents' | 'waiting_on_carrier' | 'waiting_on_documents' | 'waiting_on_payment', required
  - `intake_access_token` string: Short-lived follow-up bearer. On REST, send it back as Authorization for the next `/api/intake/{uid}` call. On MCP, retry the same follow-up tool with this token only when your host cannot preserve Coverage Cat's hidden shopper session. Never display it to the shopper.
  - `selected_offer` object
    - `address` object
      - `city` string
      - `state` string
      - `street` string
      - `zip` string
    - `annual_price` number
    - `carrier` string
    - `coverage_limit` string
    - `coverage_summary` object: Homeowners or umbrella coverage details Coverage Cat can safely summarize.
    - `deductible` number
    - `dwelling_coverage` number
    - `is_estimate` boolean
    - `minimum_auto_limits` object: Underlying auto-limit requirements for this offer.
    - `personal_liability` number
    - `policy_subtype` string
    - `policy_subtype_display` string
    - `price_range` object
      - `high` number
      - `low` number
    - `quote_number` string
    - `recommended` boolean
    - `sample_policy_url` string, uri
    - `selection_guidance` object: Offer-specific same-reply requirements and guidance.
    - `selection_token` string
    - `um_uim_selection` object: Optional excess UM/UIM election details for this offer.
  - `line` 'umbrella' | 'homeowners'
  - `support` object
    - `contact_url` string, uri: Coverage Cat support route for billing, cancellations, and quote follow-up.
    - `email` string
    - `phone` string
  - `purchase_preview` object
    - `action_summary` string
    - `approval_required` boolean
    - `carrier_conditions` string[]
    - `coverage_summary` object: Coverage details tied to the current previewed offer.
    - `effective_date` string, date
    - `effective_period` object
      - `ends_on` string, date
      - `starts_on` string, date
    - `payment_timing` string
    - `price` object
      - `annual_premium` number
      - `currency` string
      - `payment_method` string
    - `status` string
    - `uncertainty` string
  - `service_request` object
    - `action_summary` string
    - `billing_effect` string
    - `carrier_conditions` string[]
    - `coverage_effect` string
    - `details` string
    - `estimated_refund_status` 'not_applicable' | 'unknown_pending_review'
    - `final_outcome` object: Final carrier or billing outcome once Coverage Cat can confirm it.
    - `reason` string
    - `request_id` string
    - `request_type` 'policy_cancellation' | 'refund_request' | 'support_case'
    - `requested_at` string, date-time
    - `requested_effective_date` string, date
    - `status` 'pending_review' | 'completed'
    - `uncertainty` string
  - `conversation` object
    - `messages` object[]
      - `author_label` string
      - `delivery_state` 'received' | 'queued' | 'sent'
      - `direction` 'incoming' | 'outgoing'
      - `medium` 'email' | 'app' | 'sms'
      - `message_id` integer
      - `subject` string
      - `text` string
      - `timestamp` string, date-time
    - `reply_pending` boolean
    - `reply_supported` boolean
    - `reply_to_message_id` integer
    - `reply_via` string
  - `offers_url` string, uri: Coverage Cat browser URL for the selected offer or offer-tracking page.
  - `service_requests` object[]
    - `action_summary` string
    - `billing_effect` string
    - `carrier_conditions` string[]
    - `coverage_effect` string
    - `details` string
    - `estimated_refund_status` 'not_applicable' | 'unknown_pending_review'
    - `final_outcome` object: Final carrier or billing outcome once Coverage Cat can confirm it.
    - `reason` string
    - `request_id` string
    - `request_type` 'policy_cancellation' | 'refund_request' | 'support_case'
    - `requested_at` string, date-time
    - `requested_effective_date` string, date
    - `status` 'pending_review' | 'completed'
    - `uncertainty` string
  - `payment_collection_supported` boolean
  - `review_estimates` object[]
  - `notification_channel` object
    - `customer_owned_inbox_required` boolean
    - `destination_hint` string
    - `events` string[]
    - `registered` boolean
    - `role` string
    - `type` string
  - `credit_consent_question` string
  - `next_action` object: A structured hint for the next allowed tool or endpoint action.
  - `application_submitted` boolean
  - `uploaded` object[]
    - `filename` string
    - `type` string
  - `review` object: Structured review card or selected-offer review block.
  - `missing_fields` object[]: Structured missing-value hints for homeowners pre-submit review.
  - `next_question` object: The current shopper-owned question bundle or bind-stage question.
  - `sandbox` boolean: True when Coverage Cat is returning consumer sandbox test data rather than a live shopper workflow.
  - `selection_guidance` object: Guidance for completing an offer choice in one shopper-facing reply.
  - `review_items` object[]
    - `description` string
    - `display_value` string
    - `enum` string[]
    - `label` string
    - `number` integer
    - `path` union[]
      - union
        - string
        - integer
    - `suggested_value` unknown
  - `payment_status` object
    - `channel` string
    - `customer_owned_inbox_required` boolean
    - `destination_hint` string
    - `payment_intent_id` string
    - `payment_method_saved_at` string, date-time
    - `provider` string
    - `state` string
    - `timing` string
  - `preview_token` string: Opaque bind-preview token for the next homeowners bind confirmation.
  - `offers` object[]
    - `address` object
      - `city` string
      - `state` string
      - `street` string
      - `zip` string
    - `annual_price` number
    - `carrier` string
    - `coverage_limit` string
    - `coverage_summary` object: Homeowners or umbrella coverage details Coverage Cat can safely summarize.
    - `deductible` number
    - `dwelling_coverage` number
    - `is_estimate` boolean
    - `minimum_auto_limits` object: Underlying auto-limit requirements for this offer.
    - `personal_liability` number
    - `policy_subtype` string
    - `policy_subtype_display` string
    - `price_range` object
      - `high` number
      - `low` number
    - `quote_number` string
    - `recommended` boolean
    - `sample_policy_url` string, uri
    - `selection_guidance` object: Offer-specific same-reply requirements and guidance.
    - `selection_token` string
    - `um_uim_selection` object: Optional excess UM/UIM election details for this offer.
  - `service_preview` object
    - `action_summary` string
    - `approval_required` boolean
    - `billing_effect` string
    - `carrier_conditions` string[]
    - `coverage_effect` string
    - `details` string
    - `estimated_refund_status` 'not_applicable' | 'unknown_pending_review'
    - `reason` string
    - `request_type` 'policy_cancellation' | 'refund_request' | 'support_case'
    - `requested_effective_date` string, date
    - `status` 'preview'
    - `uncertainty` string
  - `post_choose` object: Structured post-choose state after a quoted umbrella offer is selected.
  - `pending_fields` object[]: Structured missing-value hints for umbrella pre-submit review.
  - `offer_summary` object
    - `cheapest_annual_premium` number
    - `cheapest_carrier` string
    - `quote_count` integer
    - `recommended_annual_premium` number
    - `recommended_carrier` string
  - `policy` object
    - `cancellation_note` string
    - `cancelled_at` string, date
    - `carrier` string
    - `confirmation_timestamp` string, date-time
    - `coverage_summary` object: Carrier-confirmed policy coverage details Coverage Cat can safely return.
    - `effective_date` string, date
    - `effective_period` object
      - `ends_on` string, date
      - `starts_on` string, date
    - `policy_number` string
    - `state` 'bound' | 'cancelled'
  - `field_estimates` object[]

## Other responses

- `400`: Invalid selection request.
- `401`: Invalid, missing, or stale intake access token.
- `404`: No intake exists for that uid.
- `409`: The selection token is stale, consent is missing, or the intake is not ready for selection.
- `429`: Too many consumer intake follow-up requests. Honor the Retry-After header before retrying, and always retry with the newest intake access token.

---

[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)
