Skip to content

The Hedge supplemental questions for a risk (no submission needed)

POST
/broker/hedge-questions
curl --request POST \
--url https://api.hedgespecialty.com/api/v1/broker/hedge-questions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "lines": [ "example" ], "state": "example", "naics": "example", "program_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "description": "example" }'

Deterministic and read-only. Returns the curated core questions of the Hedge supplemental form(s) that apply to the risk, merged so a shared key is asked once. Forms resolve in this order, at most four: the Hedge forms the selected program_ids require, the class form for the NAICS (the most specific prefix), or for the business description when the NAICS names no class form, then the coverage form of each requested line (liquor, auto, cyber, workers’ comp and so on; the general GL and property forms only when no class form covers the line). A form Hedge asks about but does not send as a PDF (the general GL supplemental) is not in forms; its questions are. An empty forms and sections is a valid answer: send the note and documents only.

Answer with POST /broker/submissions/{submission_id}/answers (source: hedge_questions).

Media typeapplication/json
object
lines
required

Canonical lines of business.

Array<string>
>= 1 items <= 10 items
state

Two-letter US state.

string
naics

2 to 6 digits.

string
program_ids

The selected Hedge (portal and email) programs.

Array<string>
<= 100 items
description

Optional: the agency’s description of the business, which class keywords match (for example cannabis, which has no NAICS).

string
<= 1000 characters
Examplegenerated
{
"lines": [
"example"
],
"state": "example",
"naics": "example",
"program_ids": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"description": "example"
}

The resolved forms and their questions

Media typeapplication/json
object
version
required

Changes when the question sets change, e.g. HEDGE_14@2026-09-28.1; none when no form applies.

string
forms
required
Array<object>
object
form_key
required

The Hedge form’s key, e.g. HEDGE_14_RESTAURANT_BAR_AND_TAVERN_SUPPLEMENTAL.

string
title
required
string
sections
required
Array<object>
object
id
required
string
title
required
string
questions
required
Array<object>
object
id
required

The program’s own answer path, stable within the set (an object’s parts are <object>.<part>).

string
key
required

Shared answer key: Hedge’s fact key when the question means that fact in the same form, else program.<program_slug>.<id>.

string
label
required
string
help
required
string
nullable
type
required

list: the answer is a JSON array; rows shaped by item_questions, or plain text values when item_questions is absent.

string
Allowed values: text textarea number currency percent integer boolean select multiselect date state address list
options
required

Choices for select / multiselect (empty otherwise). Send value unchanged; it may be a string, number or boolean.

Array<object>
object
value
required
label
required
string
required
required

Required whenever the question is shown.

boolean
show_if
required
Array<object>

One condition on another question’s answer, found by that question’s key. Conditions in a list are ANDed. Semantics: eq and in compare type and value exactly; ne / not_in are false for an unanswered question; truthy is true unless the answer is null, false, 0, “” or an empty list or object; falsy is exactly false, 0 or “” (an unanswered question is not falsy); gt / gte / lt / lte compare numbers; exists is whether the question is answered. any_of / all_of group conditions (then key is null). any_item: the answer is a list and one item must satisfy op / value. A condition whose key no question carries refers to a fact Hedge sets itself; treat it as unanswered.

object
key
required
string
nullable
op
required
string
Allowed values: eq ne in not_in truthy falsy gt gte lt lte exists any_of all_of
value
required

Comparison value (JSON)

any_item
boolean
reference

A keyed-row lookup Hedge evaluates natively.

object
conditions
Array<object> recursive
required_if

When present, the question is required only while these conditions hold.

Array<object>

One condition on another question’s answer, found by that question’s key. Conditions in a list are ANDed. Semantics: eq and in compare type and value exactly; ne / not_in are false for an unanswered question; truthy is true unless the answer is null, false, 0, “” or an empty list or object; falsy is exactly false, 0 or “” (an unanswered question is not falsy); gt / gte / lt / lte compare numbers; exists is whether the question is answered. any_of / all_of group conditions (then key is null). any_item: the answer is a list and one item must satisfy op / value. A condition whose key no question carries refers to a fact Hedge sets itself; treat it as unanswered.

object
key
required
string
nullable
op
required
string
Allowed values: eq ne in not_in truthy falsy gt gte lt lte exists any_of all_of
value
required

Comparison value (JSON)

any_item
boolean
reference

A keyed-row lookup Hedge evaluates natively.

object
conditions
Array<object> recursive
one_of_group

An answer to any question in the same group satisfies the group.

string
section
required
string
nullable
assumed_default
required

The answer Hedge would assume when unanswered, when one is fixed in advance; null otherwise (Hedge then decides from the file at quote time).

nullable
prefill_from
required
string
nullable
item_questions
Array<object> recursive
Example
{
"sections": [
{
"questions": [
{
"type": "text",
"show_if": [
{
"op": "eq"
}
],
"required_if": [
{
"op": "eq"
}
]
}
]
}
]
}

Invalid body, or {code: unknown_line} for a line Hedge does not write

hedge_questions_unavailable: try again shortly