curl --request POST \
--url https://www.getprescience.com/api/partner/v1/groups/{groupId}/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"quote_id": "qt_5b9e2c7f10ad",
"status": "ready",
"group_id": "grp_8c2f41d09a3e",
"expires_at": "2026-11-01T17:22:05Z",
"plan_year_start_date": "2026-11-01",
"census": {
"employees": 3,
"covered_lives": 4
},
"plans": [
{
"id": "diamond",
"plan_name": "Prescience Diamond",
"status": "ready",
"monthly_premium_cents": 200000,
"pmpm_cents": 50000,
"rates_by_household": [
{
"label": "Employee only",
"households": 2,
"monthly_cents": 50000
},
{
"label": "Employee + 1",
"households": 1,
"monthly_cents": 100000
}
],
"deductible_cents": 0,
"oop_max_cents": 150000,
"max_extra_cents": 600000
},
{
"id": "value",
"plan_name": "Prescience Value",
"status": "ready",
"monthly_premium_cents": 160000,
"pmpm_cents": 40000,
"rates_by_household": [
{
"label": "Employee only",
"households": 2,
"monthly_cents": 40000
},
{
"label": "Employee + 1",
"households": 1,
"monthly_cents": 80000
}
],
"deductible_cents": 300000,
"oop_max_cents": 300000,
"max_extra_cents": 700000
}
]
}Create a quote
Rates the stored census against the group’s current local market-plan snapshot and returns a complete preliminary quote synchronously once the census-triggered market comparison is ready. Returns 409 rates_pending while that comparison is running. Groups requiring human review return status: in_review and are finalized by underwriting (webhook quote.finalized). Quotes expire per configuration (default 30 days). A new pricing run may change available plans or rates. Rate limit: 60 quote creates per hour. Field names are snake_case for broker keys. HR platform partners use camelCase (company_name is companyName). Asking again for the same census and pricing run returns the quote already made; a changed census or a new pricing run makes a new one.
curl --request POST \
--url https://www.getprescience.com/api/partner/v1/groups/{groupId}/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'{
"quote_id": "qt_5b9e2c7f10ad",
"status": "ready",
"group_id": "grp_8c2f41d09a3e",
"expires_at": "2026-11-01T17:22:05Z",
"plan_year_start_date": "2026-11-01",
"census": {
"employees": 3,
"covered_lives": 4
},
"plans": [
{
"id": "diamond",
"plan_name": "Prescience Diamond",
"status": "ready",
"monthly_premium_cents": 200000,
"pmpm_cents": 50000,
"rates_by_household": [
{
"label": "Employee only",
"households": 2,
"monthly_cents": 50000
},
{
"label": "Employee + 1",
"households": 1,
"monthly_cents": 100000
}
],
"deductible_cents": 0,
"oop_max_cents": 150000,
"max_extra_cents": 600000
},
{
"id": "value",
"plan_name": "Prescience Value",
"status": "ready",
"monthly_premium_cents": 160000,
"pmpm_cents": 40000,
"rates_by_household": [
{
"label": "Employee only",
"households": 2,
"monthly_cents": 40000
},
{
"label": "Employee + 1",
"households": 1,
"monthly_cents": 80000
}
],
"deductible_cents": 300000,
"oop_max_cents": 300000,
"max_extra_cents": 700000
}
]
}Authorizations
Partner API key. psk_test_<32 hex> for test mode, psk_live_<32 hex> for live mode. Store them in your secrets manager on issue. Live keys are shown once; the scoped partner portal can show an active sandbox key again.
Headers
Any non-empty string; deterministic keys from your own IDs work best. Repeating the same key with the same body on the same endpoint and mode within 24 hours returns the stored successful response (with Idempotent-Replay: true) instead of re-executing. Error responses are not stored.
Path Parameters
Group ID, e.g. grp_8c2f41d09a3e.
^grp_[0-9a-f]{12}$Query Parameters
Broker keys only. numbers (the default) returns each plan's prices, deductible, out-of-pocket maximum and the most extra the company pays. full adds what each plan is: description, benefits, logos. Other partners always get the whole quote.
numbers, full Comma-separated fields to return, e.g. plans.pmpm_cents. Reach into the plans with plans.<field>. quote_id, group_id and status are always returned. Also accepted as fields in a POST body.
Comma-separated fields to leave out, e.g. plans.logos. Logo URLs do not change, so fetch them once, cache them and exclude them after. Also accepted as exclude in a POST body.
Body
- Option 1
- Option 2
Defaults to the first of the month at least 60 days out.
"2026-09-01"
When the quote is priced, your team's listed addresses get two emails: the materials to forward to the employer (each PDF attached) and a For you email with the quote, the client email draft and Presenting Prescience. Send false to turn both off for this group; the choice holds until you send it again.
Optional legacy input. New integrations should omit it; market-rate savings use the local platinum PPO benchmark.
80000
As the view query parameter.
numbers, full As the fields query parameter, as a list.
["plans.pmpm_cents"]
As the exclude query parameter, as a list.
["plans.logos"]
Response
The quote.
- Option 1
- Option 2
The quote as a broker gets it: numbers only by default, and what each plan is with view=full.
ready, in_review, expired Show child attributes
Show child attributes
Quote-specific sales previews for employees and employers. Forwardable links include an interactive view and PDF. Pending group links become available when pricing completes; a changed census requires a new quote. Preview terms are subject to underwriting and enrollment. Links are omitted when signing is unavailable.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Plans you sent that were skipped, and why.
Show child attributes
Show child attributes