Skip to content

Poll market events across every submission of your brokerage

GET
/broker/events
curl --request GET \
--url 'https://api.hedgespecialty.com/api/v1/broker/events?limit=50' \
--header 'Authorization: Bearer <token>'

The brokerage-wide change feed: one poll instead of one per submission. Same event types, object, visibility rules and cursor contract as GET /broker/submissions/{submission_id}/events, plus submission_id on every event and, on quote_received, the quote’s documents (the same entries GET /broker/submissions/{submission_id}/quotes lists; download_path is served by GET /broker/finalized-documents/{document_id}/pdf, carrier_url is carrier-hosted). documents is null on every other type, and an empty list when the quote has no document.

The end-of-stream signal is the cursor, never page length. A non-null next_cursor means more events may exist: store it and poll again with since=next_cursor until you receive a null. A page may hold fewer than limit events, or none at all, with a non-null cursor; never treat a short page as the tail. next_cursor is null only when the request proved your position is the tail of the currently-visible stream; resume later polls from your last non-null cursor. Dedupe by event id.

A machine token issued to a partner reads only the submissions that partner created.

since
string

Opaque cursor from a previous page’s next_cursor; returns events strictly after it. Omit to read from the beginning.

limit
integer
default: 50

Max events per page (internal audit rows are not counted). Values outside [1, 100] are clamped, never rejected.

One page of events plus the follow-up cursor

Media typeapplication/json
object
events
Array<object>
object
id
string format: uuid
submission_id
string format: uuid
type
string
Allowed values: market_attached quote_received status_changed declined withdrawn blocked bound
occurred_at
string format: date-time
market
object
name
string
lines
Array<string>
lane_id
string format: uuid
nullable
category

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.

string
Allowed values: instant_quote binding specialty
status
string
status_label
string
detail
string
nullable
documents
Array<object>
nullable

download_path is an authenticated Hedge route (call it with the same token) that serves a PDF Hedge stored; carrier_url is a carrier-hosted https link (Coterie’s proposal, for example).

kind: hedge_quote_pdf is Hedge’s own quote PDF, the cover Hedge’s quote emails carry: the price with its taxes and fees, and the quote’s terms. It is listed first. Hedge prepares it when the quote is first read after release and again whenever the quote’s terms change, so a quote can list it a few seconds after the quote itself appears; read again to pick it up. Other kinds are the carrier’s documents (quote_pdf, quote_proposal, exclusion_form, …).

object
kind
string
nullable
file_name
string
nullable
download_path
string
nullable
carrier_url
string
nullable
next_cursor
string
nullable
Example
{
"events": [
{
"type": "market_attached",
"market": {
"category": "instant_quote"
},
"documents": [
{
"kind": "hedge_quote_pdf"
}
]
}
]
}

Invalid since cursor