---
title: "Patch and optionally submit a first-party homeowners or umbrella intake."
method: PATCH
path: "/api/intake/{uid}"
---

# Patch and optionally submit a first-party homeowners or umbrella intake.

`PATCH /api/intake/{uid}`

## Request

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

Applies top-level intake edits for the consumer-prefill follow-up API. Authenticate with `Authorization: Bearer <intake_access_token>` from the latest consumer-prefill follow-up response. Use this after gathering context-backed answers; for homeowners, recover core shopper and occupancy facts from user-controlled context first, then let Coverage Cat carry estimated home-editor fields into one final review card. After a homeowners application is submitted, this same patch route can answer messy carrier or shopper follow-up in-thread with `message_reply`; when `GET /api/intake/{uid}/issues` shows `conversation.reply_pending`, echo the answer here and pass `reply_to_message_id` from that conversation payload when Coverage Cat returned one. For umbrella, use the staged review turn to send the bundled shopper-owned details and any corrections, then set `confirm_submission: true` on that same final turn. Use canonical umbrella count corrections such as `umbrella_details.motorized_vehicle_count`, never send `vehicles` rows on this pre-submit patch, and omit top-level `field_estimates` unless you are certain each field path matches a current umbrella review field. Until that final submit happens, say explicitly that the application is not submitted yet, ask for any remaining items in plain English, and present gathered details plus remaining items as short labeled bullets or sections rather than a prose paragraph. If any shown value is estimated, mark each estimated bullet label or value with `*`, include the short note `* = estimated` once above and once below the list, and do not prefix every estimated line with `[Estimated]`. If the staged review shows a wrong estimated umbrella count from context, patch the canonical `umbrella_details.*` count field before you show the final review. Coverage Cat will not resume or expose a prior consumer umbrella draft based on email alone. Continue an existing consumer draft only through the issued `uid` plus the current hidden MCP session or latest `intake_access_token` handoff. Normalize shopper birthdays from MM-DD-YYYY to YYYY-MM-DD before you send them. Reserve a single human interruption for the final review-and-submit step, keep umbrella credit consent out of this turn, and keep offer selection and post-choose bind continuation on the dedicated `/select`, `/bind`, and `/attach` routes.

## Path parameters

- `uid` string, required

## Headers

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

## Request body

- IntakeAssistantPatchRequest: Partial intake patch for the first-party assistant follow-up API. Send user-confirmed edits directly as top-level intake fields. For homeowners after submission, this same patch call can also send `message_reply` to answer insurer or shopper follow-up already surfaced under `conversation.messages`, and `reply_to_message_id` pins the reply to one returned conversation message when Coverage Cat marks `conversation.reply_pending`. For umbrella intakes, top-level field_estimates[] rows may accompany inferred values when you are certain each field path matches a current umbrella review field. Use canonical umbrella count corrections such as `umbrella_details.motorized_vehicle_count` and never send `vehicles` rows on this pre-submit patch. `current_auto_coverages` is a banded enum, not free text: send one of `unsure` for I'm not sure; `500k/1m` for $500k/$1 Million/$100k or higher; `500k/500k` for $500k/$500k/$100k or $500k CSL; `300k/300k` for $250k/$500k/$100k or $300k/$300k/$100k or $300k CSL; `100k/300k` for $100k/$300k/$100k or lower. Coverage Cat rejects the shopper's raw limits, so translate them into the strongest band those limits fully satisfy. Underlying auto limits gate umbrella eligibility, so reserve `unsure` for limits the shopper genuinely does not know rather than using it to skip the translation. Normalize shopper birthdays from MM-DD-YYYY to YYYY-MM-DD before sending them. Set confirm_submission: true on the final one-time review turn to submit and start quote generation.
  - `confirm_submission` boolean: Set to true on the single human review turn once the user has reviewed the application and wants Coverage Cat to submit now. Homeowners also require credit_check_authorized: true on that same final turn; umbrella consent for a soft credit check is collected later at select.
  - `current_auto_coverages` 'unsure' | '500k/1m' | '500k/500k' | '300k/300k' | '100k/300k': Band for the shopper's current underlying auto liability limits: `unsure` means I'm not sure; `500k/1m` means $500k/$1 Million/$100k or higher; `500k/500k` means $500k/$500k/$100k or $500k CSL; `300k/300k` means $250k/$500k/$100k or $300k/$300k/$100k or $300k CSL; `100k/300k` means $100k/$300k/$100k or lower. Choose the strongest band the shopper's actual limits fully satisfy. Underlying auto limits gate umbrella eligibility, so reserve `unsure` for limits the shopper genuinely does not know.
  - `field_estimates` UmbrellaFieldEstimateInput[]: Umbrella-only estimate metadata for inferred values included in the same patch. Omit it unless you are certain each field path matches a current umbrella review field. Homeowners estimate provenance stays under intake.home[].field_estimates[].
    - `confidence` 'low' | 'medium' | 'high', required
    - `field` string, required: Intake dot-path for the inferred answer, such as `marital_status`, `address.zip`, or `additional_drivers.0.license_state`.
    - `source` string, required: Opaque operator-side provenance label such as `crm`, `email_thread`, `policy_declarations`, or `historical_mode`.
  - `message_reply` string: Homeowners post-submit only. Send the reply text Coverage Cat should deliver in-thread when the latest issues payload shows `conversation.reply_pending`, such as answering a carrier underwriting question.
  - `reply_to_message_id` integer: Optional homeowners post-submit target from `conversation.messages[].message_id`. Use it when Coverage Cat returned a specific follow-up message to answer in-thread.

## Response `202`

Patch accepted. The response either reflects the updated review checkpoint or the post-submit quote-progress state.

- 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 patch or invalid confirm_submission value.
- `401`: Invalid, missing, or stale intake access token.
- `404`: No intake exists for that uid.
- `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)
