Skip to main content
POST
A deal we can’t finance is still a 201: eligibility.status is ineligible, eligibility.reasons says why, and options is empty. A 422 means only that the request was malformed, and it lists every problem at once in details.

Authorizations

Authorization
string
header
required

bl_live_… or bl_test_… API key.

Headers

Bridgeline-Version
string

API version (a date). Defaults to 2026-09-23; echoed on every response.

Pattern: ^\d{4}-\d{2}-\d{2}$
Idempotency-Key
string

Retrying with the same key and body within 24h replays the original response.

Required string length: 1 - 255

Body

application/json
insured
object
required
policies
object[]
required
Minimum array length: 1
broker_email
string<email> | null
Pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
client_reference_id
string | null
Required string length: 1 - 255
metadata
object | null

Response

The quote, eligible or not.

An indicative quote: a stored snapshot, not a price lock.

id
string
required

qte_…

object
string
required
Allowed value: "quote"
livemode
boolean
required
status
enum<string>
required
Available options:
active,
interested,
expired
client_reference_id
string | null
required
metadata
object
required
broker
object | null
required
created_at
string
required
expires_at
string
required
hosted_url
string | null
required

Returned when the quote is created; null when retrieved.

selected_option_id
string | null
required
interest
object | null
required

The insured's response on the hosted page; null unless status is interested. This object is also the payload the Phase 3 quote.interest_expressed webhook will reuse.

totals
object
required
policies
object[]
required
eligibility
object
required
assumptions
object[]
required
warnings
object[]
required
binding_readiness
object
required
options
object[]
required