---
title: "Get a link to bind a quote (the broker's bind checklist, or the insured's pay-and-bind page)"
method: POST
path: "/broker/submissions/{submission_id}/quotes/{quote_id}/bind-link"
tags: ["Binding"]
---

# Get a link to bind a quote (the broker's bind checklist, or the insured's pay-and-bind page)

`POST /broker/submissions/{submission_id}/quotes/{quote_id}/bind-link`

## Request

- Base URL: `https://api.hedgespecialty.com/api/v1`
- URL: `https://api.hedgespecialty.com/api/v1/broker/submissions/{submission_id}/quotes/{quote_id}/bind-link`
- 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`

Quote over the API, bind via link. `quote_id` is a quote from
`GET .../quotes` that can be bound now (`bind.available`); any other
quote is refused with the quote read's own `bind.blocked_reason`.

- `for: broker` (the default) returns a one-time sign-in link into the
  Hedge portal's bind checklist for this quote (or the quote itself
  when the carrier binds it on its own portal). It signs in the
  token's user, or `producer_email` for an API client credential,
  which must be an active portal user of your brokerage. It works
  once and expires after 24 hours (sooner if the API key that minted
  it is revoked). The session it starts lasts up to 12 hours and can
  bind, quote, reply and service; it cannot change API keys,
  webhooks, team, payout or mailing settings (sign in to Hedge
  directly for those). The URL is a credential: give it only to that
  person and never log it.
- `for: insured` returns the insured's pay-and-bind link, where the
  quote's market takes the insured's own payment (Coterie direct
  bill today; 409 `insured_link_unavailable` elsewhere). It drafts the
  bind request as `POST .../bind-requests` does, so the assumptions
  Hedge made for the quote must be confirmed first
  (`attest_assumptions`, 409 `assumptions_unconfirmed` otherwise).
  The first call emails the link to `insured_email`, copying the
  producer; later calls return the live link without emailing again
  (a different `insured_email` sends a new one). `emailed` says
  whether this call emailed the insured (`false`: the email did not
  go out, so share the URL yourself; `null`: an earlier call sent
  it). `expires_at` is the end of the last day the insured can pay.

The existing `bind-requests` endpoints remain for markets that bind
without a card.

## Path parameters

- `submission_id` string, uuid, required
- `quote_id` string, uuid, required

## Request body

- object
  - `for` 'broker' | 'insured'
  - `producer_email` string, nullable: Required for API client (machine) credentials; the active portal user the link signs in and the bind is attributed to.
  - `insured_email` string, nullable: `for: insured` only: where Hedge emails the insured's link. Required on the first call.
  - `attest_assumptions` union: `for: insured` only. `true` confirms every assumption Hedge made for the quote; a list confirms those keys.
    - boolean
    - string[]

## Response `201`

The link (the response carries `Cache-Control: no-store`)

- object
  - `url` string, required
  - `expires_at` string, date-time, nullable
  - `for` 'broker' | 'insured', required
  - `emailed` boolean, nullable: `for: insured` only.

## Other responses

- `403`: Missing broker_submit scope, a staff impersonation session, or `use_partner_bind_links` (partners, and sessions a partner's link started, use partner-bind-links)
- `404`: Not found (or not your brokerage's)
- `409`: `quote_not_available`, `quote_expired`, `quote_not_bindable` (with `reason`), `brokerage_portal_disabled`, `insured_link_unavailable`, `insured_link_refused` or `assumptions_unconfirmed`
- `422`: `producer_email` missing or not an active portal user, `insured_email_required`, `insured_email_invalid`, or a body validation error
- `429`: Rate limited (20 links an hour per quote)
- `503`: `proposal_unavailable`: try again shortly

## Changes

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

[Operation history](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/changes/broker/submissions/:submission_id/quotes/:quote_id/bind-link/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)
