Run a prequalification

Evaluates an applicant against the requested carrier products and returns one prequalify_result entry per product. The v3 request splits the flat v2 body into three envelopes — applicant (demographics, conditions, medications, nicotine), coverage (face amount in integer cents and state), and products (a list of product ids or carrier slugs) — so each surface evolves independently. Money is always integer cents paired with a server-formatted display string, and each entry collapses the v2 premium/other_offers split into a single uniform pricing[] table with one row per rate class.

Ineligible rate classes surface by default as rows with eligibility.eligible: false, a populated rate_class, and generic eligibility.reasons. Pass include_ineligible: false to return only qualifying rows. Pass coverage.quote_options to evaluate several face amounts or monthly budgets in one call; the response stays a flat plans array. Face-amount offers carry death_benefit (period null); monthly-budget offers carry budget (period monthly). Group client-side by the requested dimension — death_benefit.amount.cents for face-amount requests, budget.amount.cents for monthly-budget requests — for side-by-side comparison tables. The response shape never changes with the number of amounts.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for POST /v3/prequalify. The v3 shape splits the applicant from the coverage envelope and the product roster: applicant carries demographics, conditions, medications, and nicotine; coverage carries the two-letter US state plus either a single face_amount_cents target or quote_options matching the Get a quote coverage input; products lists the carrier products to evaluate — each entry a canonical product id (prod_<UUID>, family-level) or a carrier slug (variant-level). Every request — single face_amount_cents or multi-amount quote_options — returns a flat plans array. Face-amount offers carry death_benefit (period null); monthly-budget offers carry budget (period monthly), so a multi-amount response groups client-side by the requested dimension without the shape ever changing. The shape replaces the v2 flat PrequalifyRequest inheritance the v3 path quietly carried; v2 consumers are unaffected.

applicant
object
required

The applicant envelope for POST /v3/prequalify. Demographic fields (sex, dob, height_inches, weight_lbs) are required; conditions, medications, and nicotine are optional and omitted when the applicant has nothing to disclose.

coverage
object
required

Coverage envelope for POST /v3/prequalify. Supply exactly one of face_amount_cents (a single face-amount target in integer cents) or quote_options (one or more face amounts, or one or more monthly budgets, evaluated together). quote_options mirrors the Get a quote coverage input so a single coverage shape spans both endpoints. The response is always a flat plans array. Face-amount offers carry death_benefit (period null); monthly-budget offers carry budget (period monthly), so a multi-amount response groups client-side by the requested dimension without the shape ever changing. Supplying both face_amount_cents and quote_options, or neither, is a validation_error naming the offending field — the server enforces the exactly-one rule.

products
array of strings
required
length ≥ 1

Carrier products to evaluate, in caller-preferred order. Each entry is either a canonical product id (prod_<UUID> — family-level: expands to every ZDRM sharing that id) or a specific carrier slug (variant-level: that one ZDRM). Mix freely. Unknown ids return a 422 validation error naming the offending products[N] index.

products*
boolean
Defaults to true

Defaults to true: products and rate-class rows the applicant does not qualify for are returned with eligibility.eligible: false, a populated rate_class, and generic reasons. Pass false to return only qualifying products and rows.

Headers
uuid

Client-supplied idempotency token for mutating /v3/* requests.

When the service has already completed a request for the same account, route, key, and identical JSON body within the 24-hour replay window, it returns the stored HTTP status and body instead of executing again. Reusing the same key with a different body returns 409 Conflict.

Unlike /v1 and /v2, the /v3 surface accepts only a UUID v4 value — non-UUID and SHA-256-derived keys are rejected with validation_error. Mint a fresh UUID v4 per distinct logical operation and reuse it across retries of that same operation.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json