---
title: "Poll market events across every submission of your brokerage"
method: GET
path: "/broker/events"
tags: ["Submissions"]
---

# Poll market events across every submission of your brokerage

`GET /broker/events`

## Request

- Base URL: `https://api.hedgespecialty.com/api/v1`
- URL: `https://api.hedgespecialty.com/api/v1/broker/events`
- 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 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.

## Query parameters

- `since` string
- `limit` integer

## Response `200`

One page of events plus the follow-up cursor

- object
  - `events` object[]
    - `id` string, uuid
    - `submission_id` string, uuid
    - `type` 'market_attached' | 'quote_received' | 'status_changed' | 'declined' | 'withdrawn' | 'blocked' | 'bound'
    - `occurred_at` string, date-time
    - `market` object
      - `name` string
      - `lines` string[]
      - `lane_id` string, uuid, nullable
      - `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.
    - `status` string
    - `status_label` string
    - `detail` string, nullable
    - `documents` QuoteDocument[], nullable
      - `kind` string, nullable
      - `file_name` string, nullable
      - `download_path` string, nullable
      - `carrier_url` string, nullable
  - `next_cursor` string, nullable

## Other responses

- `422`: Invalid since cursor

## Changes

- **2026-10-30** `bfb25d77c599`: 1 info
  - endpoint added

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