---
title: "Everything Hedge needs to quote the chosen instant markets"
method: POST
path: "/broker/requirements"
tags: ["Requirements"]
---

# Everything Hedge needs to quote the chosen instant markets

`POST /broker/requirements`

## Request

- Base URL: `https://api.hedgespecialty.com/api/v1`
- URL: `https://api.hedgespecialty.com/api/v1/broker/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 file's `core` fields (the create body's own) and each chosen Hedge
Instant Quote market's questions, per market and never deduplicated,
built from the same application builders the portal workspace uses.
Available for every instant program, whether or not Hedge has quoted
it before. Read scope.

A question's `key` is the canonical fact when it is bound to one
(`annual_revenue`), else `program.<slug>.<id>`: answer a canonical
key once in `shared_answers` and every market that asks it is
prefilled. Program-only questions are answered per market by `id`
(`answers[program_id]`).

## Request body

- object
  - `program_ids` string[], required: From `POST /broker/appetite/instant`.
  - `state` string, required
  - `lines` string[], required

## Response `200`

Core fields and each market's questions

- object
  - `core` object[], required
    - `key` string, required: The create-body path.
    - `label` string, required
    - `type` string, required
    - `required` boolean, required
    - `validations` object
  - `markets` object[], required
    - `program_id` string, uuid, required
    - `program` string, required
    - `market` string, required
    - `schema_version` string, required: Changes whenever `questions` change.
    - `questions` FlowQuestion[], required
      - `id` string, required: The program's own answer path, stable within the set (an object's parts are `<object>.<part>`).
      - `key` string, required: Shared answer key: Hedge's fact key when the question means that fact in the same form, else `program.<program_slug>.<id>`.
      - `label` string, required
      - `help` string, nullable, required
      - `type` 'text' | 'textarea' | 'number' | 'currency' | 'percent' | 'integer' | 'boolean' | 'select' | 'multiselect' | 'date' | 'state' | 'address' | 'list', required: `list`: the answer is a JSON array; rows shaped by `item_questions`, or plain text values when `item_questions` is absent.
      - `options` object[], required: Choices for select / multiselect (empty otherwise). Send `value` unchanged; it may be a string, number or boolean.
        - `value` unknown, required
        - `label` string, required
      - `required` boolean, required: Required whenever the question is shown.
      - `show_if` SharedQuestionCondition[], required
        - `key` string, nullable, required
        - `op` 'eq' | 'ne' | 'in' | 'not_in' | 'truthy' | 'falsy' | 'gt' | 'gte' | 'lt' | 'lte' | 'exists' | 'any_of' | 'all_of', required
        - `value` unknown, required
        - `any_item` boolean
        - `reference` object: A keyed-row lookup Hedge evaluates natively.
        - `conditions` SharedQuestionCondition[]
      - `required_if` SharedQuestionCondition[]: When present, the question is required only while these conditions hold.
        - `key` string, nullable, required
        - `op` 'eq' | 'ne' | 'in' | 'not_in' | 'truthy' | 'falsy' | 'gt' | 'gte' | 'lt' | 'lte' | 'exists' | 'any_of' | 'all_of', required
        - `value` unknown, required
        - `any_item` boolean
        - `reference` object: A keyed-row lookup Hedge evaluates natively.
        - `conditions` SharedQuestionCondition[]
      - `one_of_group` string: An answer to any question in the same group satisfies the group.
      - `section` string, nullable, required
      - `assumed_default` unknown, required
      - `prefill_from` string, nullable, required
      - `item_questions` SharedQuestion[]: For a `list`: each row's questions. Keys are `<list key>.<id>`; a row condition on a sibling uses the sibling's key.
        - `id` string, required: The program's own answer path, stable within the set (an object's parts are `<object>.<part>`).
        - `key` string, required: Shared answer key: Hedge's fact key when the question means that fact in the same form, else `program.<program_slug>.<id>`.
        - `label` string, required
        - `help` string, nullable, required
        - `type` 'text' | 'textarea' | 'number' | 'currency' | 'percent' | 'integer' | 'boolean' | 'select' | 'multiselect' | 'date' | 'state' | 'address' | 'list', required: `list`: the answer is a JSON array; rows shaped by `item_questions`, or plain text values when `item_questions` is absent.
        - `options` object[], required: Choices for select / multiselect (empty otherwise). Send `value` unchanged; it may be a string, number or boolean.
          - `value` unknown, required
          - `label` string, required
        - `required` boolean, required: Required whenever the question is shown.
        - `show_if` SharedQuestionCondition[], required
          - `key` string, nullable, required
          - `op` 'eq' | 'ne' | 'in' | 'not_in' | 'truthy' | 'falsy' | 'gt' | 'gte' | 'lt' | 'lte' | 'exists' | 'any_of' | 'all_of', required
          - `value` unknown, required
          - `any_item` boolean
          - `reference` object: A keyed-row lookup Hedge evaluates natively.
          - `conditions` SharedQuestionCondition[]
        - `required_if` SharedQuestionCondition[]: When present, the question is required only while these conditions hold.
          - `key` string, nullable, required
          - `op` 'eq' | 'ne' | 'in' | 'not_in' | 'truthy' | 'falsy' | 'gt' | 'gte' | 'lt' | 'lte' | 'exists' | 'any_of' | 'all_of', required
          - `value` unknown, required
          - `any_item` boolean
          - `reference` object: A keyed-row lookup Hedge evaluates natively.
          - `conditions` SharedQuestionCondition[]
        - `one_of_group` string: An answer to any question in the same group satisfies the group.
        - `section` string, nullable, required
        - `assumed_default` unknown, required
        - `prefill_from` string, nullable, required
        - `item_questions` SharedQuestion[]: For a `list`: each row's questions. Keys are `<list key>.<id>`; a row condition on a sibling uses the sibling's key.
      - `prefilled_from` string, nullable: The create-body field (a `core` key) that fills this question, or null: the business's name, mailing address, contact and effective date included, whichever market asks them (an address leaf names `applicant.mailing_address`; its `key` says which part). Such a question shares its `key` across markets and is answered through the core field, never per market.
      - `validations` object: The checks Hedge applies, where its builder knows them: `min`, `max`, `min_length`, `max_length`, `pattern`. A missing key means unknown, not unchecked.
        - `min` number
        - `max` number
        - `min_length` integer
        - `max_length` integer
        - `pattern` string

## Other responses

- `422`: Invalid body, `{code: unknown_lines}`, or `{code: not_instant, program_ids}` for a program that is not a Hedge Instant Quote market you can reach

## Changes

- **2026-10-30** `2c547f24a42f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/changes/broker/requirements/post.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)
