---
title: "What this submission still needs"
method: GET
path: "/broker/submissions/{submission_id}/requirements"
tags: ["Requirements"]
---

# What this submission still needs

`GET /broker/submissions/{submission_id}/requirements`

## Request

- Base URL: `https://api.hedgespecialty.com/api/v1`
- URL: `https://api.hedgespecialty.com/api/v1/broker/submissions/{submission_id}/requirements`
- Auth: OAuth 2
  - Authorization code: `https://api.hedgespecialty.com/api/v1/oauth/authorize`
  - Client credentials
  - Token URL: `https://api.hedgespecialty.com/api/v1/oauth/token`

The contract centerpiece, per-market readiness (`needs_from_you` =
items only you can supply), live carrier question gaps, the resolved
form set, and documents already on file. Deterministic and fast; poll
it between uploads/answers and finalize.

## Path parameters

- `submission_id` string, uuid, required

## Response `200`

Requirements view

- Requirements: The live "what's still needed" view.
  - `submission_id` string, uuid
  - `insured_name` string
  - `lines` string[]
  - `effective_date` string, date
  - `state` string
  - `forms` string[]: Application forms Hedge prepares for this risk (ACORD baseline + recommended carrier supplements).
  - `marketing_status` 'not_started' | 'matching' | 'matched' | 'no_markets_matched' | 'awaiting_finalization' | 'instant_quote': Where the asynchronous marketing pipeline is. Matching runs for a few minutes after `finalize`, so an empty `markets` list means "still matching" when this is `matching`; not "no appetite". `instant_quote`: a file a connected app or machine credential created, which is never marketed or finalized; answer it with `PATCH .../answers` and request quotes with `POST .../quote`.
  - `marketing_hint` string, nullable: Human-readable next step for the current marketing_status.
  - `form_fill_active` boolean: A live form-fill session owns the form set.
  - `markets` object[]: Per-market readiness (deterministic, no model on this read).
    - `market_name` string
    - `ready` boolean
    - `needs_from_you` string[]: Items only you can supply.
    - `hedge_obtains` string[]: Items Hedge fetches itself; informational.
    - `lane_id` string, uuid, nullable: The market lane this row belongs to (same id as rail.lanes[].submission_market_id).
    - `program` string, nullable
    - `program_category` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
    - `category_label` string, nullable
    - `broker_label` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
  - `carrier_api_sessions` object[]: Instant-quote (carrier API) sessions and their open question gaps.
    - `session_id` string, uuid
    - `carrier_slug` string
    - `program` string
    - `status` string
    - `outcome` string, nullable
    - `completion_pct` number
    - `missing_questions` object[]
    - `has_quote` boolean
  - `documents_on_file` object[]
    - `kind` string
    - `kind_label` string
    - `display_name` string
  - `assessment` RequirementsAssessment: Every matched program with what it needs. `gapped` lists lanes an enforcing program is holding for a broker-supplied item; `submitted_or_ready` lists lanes that are ready or already sent. Programs with `enforcement: report_only` list `unmet` items but are NOT held; never render them as waiting on you.
    - `submission_id` string, uuid
    - `generated_at` string, date-time
    - `submitted_or_ready` string[]
    - `gapped` string[]
    - `programs` object[]
      - `submission_market_id` string, uuid
      - `market_name` string, nullable
      - `program_id` string, uuid, nullable
      - `program_display_name` string, nullable
      - `channel` 'email' | 'api' | 'portal' | 'null', nullable
      - `program_category` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
      - `broker_label` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
      - `enforcement` 'enforce' | 'report_only' | 'none'
      - `submit_ready` boolean
      - `met` AssessedRequirement[]
        - `key` string, nullable
        - `label` string
        - `severity` string: hard or preferred
        - `resolution` string: broker (you supply), auto (Hedge fetches) or internal
        - `repr` string: structured, free_text, form or file
        - `form_key` string, nullable
        - `due_stage` string: quote or bind
        - `satisfied` boolean, nullable
        - `blocks_submission` boolean, nullable
      - `unmet` AssessedRequirement[]
        - `key` string, nullable
        - `label` string
        - `severity` string: hard or preferred
        - `resolution` string: broker (you supply), auto (Hedge fetches) or internal
        - `repr` string: structured, free_text, form or file
        - `form_key` string, nullable
        - `due_stage` string: quote or bind
        - `satisfied` boolean, nullable
        - `blocks_submission` boolean, nullable
      - `deferred` AssessedRequirement[]
        - `key` string, nullable
        - `label` string
        - `severity` string: hard or preferred
        - `resolution` string: broker (you supply), auto (Hedge fetches) or internal
        - `repr` string: structured, free_text, form or file
        - `form_key` string, nullable
        - `due_stage` string: quote or bind
        - `satisfied` boolean, nullable
        - `blocks_submission` boolean, nullable
      - `evaluated_at` string, date-time
  - `rail` MarketRail
    - `generated_at` string, date-time
    - `lanes` RailLane[]
      - `submission_market_id` string, uuid: The lane id used across this API (lane_id elsewhere).
      - `market_id` string, uuid, nullable
      - `market_name` string, nullable
      - `program` string, nullable
      - `program_id` string, uuid, nullable
      - `program_category` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
      - `broker_label` 'instant_quote' | 'binding' | 'specialty': The Hedge category of a market program, derived from how Hedge submits to it. `instant_quote` ("Hedge Instant Quote"): carrier API, Hedge fills gaps with favorable assumptions and quotes in minutes; every assumption is listed for the retail agent to confirm before bind. `binding` ("Hedge Binding"): carrier portal, Hedge quotes on your behalf. `specialty` ("Hedge Specialty"): email to an underwriter; completed ACORDs, program supplements and loss runs are needed and a human reads them, so Hedge does not assume.
      - `lines` string[]
      - `status` string
      - `status_label` string
      - `status_detail` string, nullable: A closed market's reason. Beside "Declined", the carrier's own words; beside "Not a fit", one fixed reason.
      - `submit_ready` boolean
      - `gapped` boolean: Held for something only you can supply (see `unmet_labels`).
      - `unmet_labels` string[]
      - `quotes` object[]
        - `quote_id` string, uuid
        - `premium_display` string
        - `total_cents` integer
        - `lines` string[]
        - `is_revision` boolean, nullable
      - `source_offers` object[]: Carrier-original quote or indication documents.
        - `presentation_id` string, uuid
        - `kind` 'quote' | 'indication'
        - `label` string
        - `document_url` string
        - `filename` string, nullable
      - `bound` boolean
      - `chip` 'bound' | 'quoted' | 'not_available' | 'needs_info' | 'in_progress'
      - `carrier_api_session_ids` string[], nullable
    - `quote_history` object[]: Expired or invalidated quotes, for context.
      - `history_key` string
      - `market_name` string
      - `program` string, nullable
      - `outcome` 'expired' | 'invalid'
      - `observed_at` string, date-time
      - `next_step` string, nullable
    - `quote_history_unavailable` boolean
    - `online_in_progress_lines` string[]: Lines (canonical slugs) online markets are still quoting without having been named to you yet. Show one unnamed "Online quotes in progress" line each; the markets appear in `lanes` once they quote, decline or ask you something.
    - `no_market_lines` string[]: Lines (canonical slugs) no market is working or shows; every market on them closed.

## Changes

- **2026-10-30** `db75fb8812f5`: 2 warning
  - added the new `awaiting_finalization` enum value to the `marketing_status` response property for the response status `200`
  - added the new `instant_quote` enum value to the `marketing_status` response property for the response status `200`
- **2026-10-28** `14824ccf180c`: 3 info
  - added the optional property `assessment/allOf[#/components/schemas/RequirementsAssessment]/programs/items/broker_label` to the response with the `200` status
  - added the optional property `markets/items/broker_label` to the response with the `200` status
  - added the optional property `rail/allOf[#/components/schemas/MarketRail]/lanes/items/broker_label` to the response with the `200` status
- **2026-10-22** `f51fe7503e9c`: 3 info
  - added the optional property `rail/allOf[#/components/schemas/MarketRail]/lanes/items/status_detail` to the response with the `200` status
  - added the optional property `rail/allOf[#/components/schemas/MarketRail]/no_market_lines` to the response with the `200` status
  - added the optional property `rail/allOf[#/components/schemas/MarketRail]/online_in_progress_lines` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/changes/broker/submissions/:submission_id/requirements/get.md)

---

[API](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api.md) - [All operations](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/revisions/beefa9cdc11c?raw)
