Quote and buy Eventual's Premium Lock for home and auto insurance premiums.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Finish an in-conversation purchase with the payment_session_id the checkout returned. The checkout calls this itself; call it only to check on a purchase it reported pending. Answers active once bought or pending while the payment clears. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
The quote to buy.
The `session_id` the embedded checkout posted back.
Required to start. When finishing, optional, and it must be the consent given at the start.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http premium-lock https://prod.api.eventualclimate.com/mcp/premium-lock
Finish an in-conversation purchase with the payment_session_id the checkout returned. The checkout calls this itself; call it only to check on a purchase it reported pending. Answers active once bought or pending while the payment clears. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
| Argument | Type | Description |
|---|---|---|
| consent | any | Required to start. When finishing, optional, and it must be the consent given at the start. |
| quote_id* | string | The quote to buy. |
| payment_session_id* | any | The `session_id` the embedded checkout posted back. |
{
"type": "object",
"$defs": {
"PurchaseConsentInput": {
"type": "object",
"title": "PurchaseConsentInput",
"required": [
"terms_versions",
"disclosure_set_id",
"disclosure_text_sha256",
"affirmations"
],
"properties": {
"affirmations": {
"type": "object",
"title": "Affirmations",
"description": "`admitted_carrier`, `subscription_36_months` and `not_insurance`, each true, and the consumer's `no_claims` answer.",
"additionalProperties": {
"type": "boolean"
}
},
"terms_versions": {
"type": "object",
"title": "Terms Versions",
"description": "The Terms of Service version shown for each line bought, e.g. `{\"home\": \"home-2026-07-30\"}`.",
"additionalProperties": {
"type": "string"
}
},
"disclosure_set_id": {
"type": "string",
"title": "Disclosure Set Id",
"maxLength": 64,
"description": "The quote's `disclosure_set_id`, echoed."
},
"disclosure_text_sha256": {
"type": "string",
"title": "Disclosure Text Sha256",
"pattern": "^[0-9a-f]{64}$",
"description": "The quote's `disclosure_text_sha256`, echoed."
}
},
"description": "What the agent showed the consumer and what they affirmed (plan §4B, PRD R6.1)."
},
"ProtectionContractBillingInterval": {
"enum": [
"monthly",
"yearly"
],
"type": "string",
"title": "ProtectionContractBillingInterval"
}
},
"required": [
"quote_id",
"payment_session_id"
],
"properties": {
"consent": {
"anyOf": [
{
"$ref": "#/$defs/PurchaseConsentInput"
},
{
"type": "null"
}
],
"default": null,
"description": "Required to start. When finishing, optional, and it must be the consent given at the start."
},
"quote_id": {
"type": "string",
"format": "uuid",
"description": "The quote to buy."
},
"payment_session_id": {
"anyOf": [
{
"type": "string",
"pattern": "^sub_[A-Za-z0-9]+$",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Payment Session Id",
"default": null,
"description": "The `session_id` the embedded checkout posted back."
}
},
"additionalProperties": false
}Start pricing a Premium Lock quote for the consumer, whose email goes in insured.email. Returns a quote_id; poll get_quote until its status is complete. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
| Argument | Type | Description |
|---|---|---|
| auto | any |
What Premium Lock is, per product line and for the bundle: marketing's approved description, example fees and disclosures. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}The quote's status and, once complete, its pricing, checkout_url, purchase_options and required_disclosures. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
| Argument | Type | Description |
|---|---|---|
| quote_id* | string | The quote_id create_quote returned. |
Buy a complete quote. First show the consumer every disclosure in the quote's required_disclosures word for word and the Terms of Service, and ask the no_claims question; pass what they affirmed as consent, echoing the quote's disclosure_set_id and disclosure_text_sha256, and the billing_interval they chose. When the quote's purchase_options include mcp_app and this app can show embedded checkouts, the answer is requires_payment and the checkout opens in the conversation; once the consumer pays it finishes the purchase itself. Otherwise the answer is requires_hosted_checkout with the checkout_url for the consumer to open and pay on Eventual's site. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
Read a home or auto insurance declarations page (PDF, PNG or JPEG, up to 10 MB). Returns the detected product line, the create_quote fields it found, and missing_required: the fields to ask the consumer for before calling create_quote. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
| Argument | Type | Description |
|---|---|---|
Email the consumer on the quote a link to buy it on Eventual's site. Use it when the consumer would rather finish later or when another tool answers daily_cap. Gathering order: first ask for the consumer's email. Then look for their home or auto insurance declarations page in their email and files; if you find one, send it to read_declarations_page and pass the fields it returns to create_quote. Otherwise ask the consumer for the fields create_quote needs. Before any purchase, show the consumer every disclosure in the quote's required_disclosures word for word. Currently: - Premium Lock is not a car insurance policy. It does not insure your car against collision or accident, fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your car insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is a guarantee of Eventual's premium prediction service and is not insurance or a financial derivative. - Reimbursements begin only above your Payout Threshold and stop once they reach your Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service shown at purchase. - Premium Lock is not a home insurance policy. It does not insure your home against fire, theft, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your home insurance premiums for you. You must keep paying your premiums to your insurance carrier, agent or lender. - Premium Lock is not an insurance policy. It does not insure your home or your cars against fire, theft, collision or accident, wind, hail, flooding, earthquake, or any other peril or loss. - Eventual does not pay your insurance premiums for you. You must keep paying your premiums to your insurance carriers, agent or lender. - Reimbursements begin only above each policy's Payout Threshold and stop once they reach that policy's Warranty Payment Cap. - Premium Lock is governed by the Premium Lock Terms of Service for each line, shown at purchase.
| Argument | Type | Description |
|---|---|---|
| quote_id* |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 6, 2026.
| policy | any |
| insured | any |
| partner_ref | any | The partner's own policy/quote identifier, echoed back on every response and webhook. |
| product_line | string |
| referral_token | any | A referral partner's signed token, when one sent the consumer. Recorded as that referrer's claim on the quote; a token that does not verify is ignored and the quote is made anyway. |
| idempotency_key | string | Optional. Defaults to a hash of the body, so a repeated call returns the first quote instead of creating another. |
{
"type": "object",
"$defs": {
"CarrierName": {
"enum": [
"aaa",
"aegis",
"acuity",
"agraria",
"alfainsurance",
"alliedtrust",
"allstate",
"americaneuropean",
"americanguaranteeandliability",
"americanintegrityinsurance",
"americanmodern",
"americannational",
"americanrisk",
"americanstrategic",
"americantraditions",
"amfam",
"amica",
"amshield",
"amwins",
"andover",
"arbella",
"arkansasfarmbureau",
"assurant",
"auros",
"autoowners",
"bamboo",
"bearrivermutual",
"benchmark",
"bentoakmutual",
"berkshirehathawayguardinsurancecompanies",
"berkshirehathwayhomestate",
"bloomfieldmutual",
"branch",
"brethrenmutual",
"bristolwestinsurance",
"burnswilcox",
"cabrillocoastal",
"cajununderwriters",
"californiacasualty",
"celina",
"centralinsurancecompanies",
"chubb",
"cincinnatifinancialgroup",
"coastal",
"coloradofarmbureau",
"connectbyamfam",
"countryfinancial",
"csaa",
"cse",
"cumberlandmutual",
"cure",
"cypress",
"dairyland",
"dbinsurance",
"directauto",
"donegalgroup",
"edison",
"elephant",
"encompass",
"enumclaw",
"erie",
"esurance",
"evanston",
"farmers",
"farmersunion",
"farmbureaufinancialservices",
"fednatinsuranceflorida",
"firstacceptance",
"firstcapital",
"floridafarmbureau",
"floridapeninsulainsurance",
"fmne",
"foremost",
"fortegra",
"frankenmuth",
"franklinmutual",
"fredloya",
"frontline",
"gainsco",
"geico",
"georgiafarmbureau",
"germania",
"goodvillemutual",
"goauto",
"grange",
"greaternewyorkmutualinsurancecompany",
"greatnorthwest",
"gulfstate",
"hagerty",
"hanover",
"hcigroup",
"henrycountymutual",
"heritageinsurance",
"hippo",
"homeownersofamerica",
"homesite",
"homesteadmutual",
"horacemann",
"idahofarmbureau",
"inclinecasualtycompany",
"indianafarmbureau",
"integritypc",
"iowafarmbureau",
"ironinsurancepartners",
"kemperauto",
"kemperpersonalinsurance",
"kentuckyfarmbureau",
"kingstone",
"kininsurance",
"lemonade",
"libertymutual",
"lilypad",
"loggerhead",
"louisianafarmbureau",
"lumenselect",
"mangrovepropertyinsurancecompany",
"mapfre",
"mcmillanwarner",
"meemic",
"mercury",
"metlife",
"metromile",
"michiganfarmbureau",
"midvaleinsuranceauto",
"midvaleinsurancehome",
"mississippifarmbureau",
"missourifarmbureau",
"mmg",
"nationalfarmersunion",
"nationalgeneral",
"nationwide",
"njm",
"northernneck",
"northcarolinafarmbureau",
"northstar",
"nycm",
"oceanharbor",
"oldrepublicunion",
"olympusinsurance",
"openly",
"orion180",
"oswegocountymutual",
"other",
"pacificspecialty",
"patriot",
"pekininsurance",
"pemcomutual",
"pennnational",
"peoplestrust",
"pioneer",
"plymouthrock",
"praetorian",
"preferredmutual",
"progressive",
"propertyinsurancecompanyamerica",
"providence",
"pureinsurance",
"quincymutual",
"root",
"rvos",
"safeco",
"safepoint",
"safetyinsurance",
"safeway",
"sagesure",
"securityfirstflorida",
"selective",
"shelter",
"slideinsurance",
"southernfarmbureau",
"southernoakins",
"southcarolinafarmbureau",
"stateauto",
"statefarm",
"sterling",
"stillwater",
"strathmoreinsurancecompany",
"summitspecialtyinsurancecompany",
"surechoice",
"suttonnational",
"swyfft",
"tennesseefarmbureau",
"tesla",
"texasfarmbureau",
"thegeneral",
"thehartford",
"towerhillinsurance",
"travelers",
"trexis",
"21stcentury",
"uaic",
"unionmutual",
"universalnorthamerica",
"universalproperty",
"upcinsurance",
"usaa",
"utica",
"vault",
"vermontmutual",
"vyrd",
"wawanesa",
"wayne",
"westchestersurpluslines",
"westernnational",
"westfield",
"westbend",
"americaninternationalgroup",
"berkley",
"brookfieldwealthsolutionsgrp",
"clearblueinsurance",
"encova",
"iatreinsco",
"kwspecialty",
"lloyds",
"mainstreetamerica",
"markelinsurance",
"munich",
"philadelphia",
"qbe",
"sh1holdings",
"tokiomarine",
"wrightflood",
"zurich",
"aiua",
"cpfa",
"citizenspropertyinsurance",
"guaa",
"illinoisfairplan",
"louisianacitizens",
"mbpia",
"missourifairplan",
"mjia",
"mpiua",
"mrpiua",
"nccoastalpool",
"ncjua",
"newjerseyfair",
"nypiua",
"ohiofairplan",
"rijra",
"texasfairplan",
"vpia"
],
"type": "string",
"title": "CarrierName"
},
"AutoPolicyBlock": {
"type": "object",
"title": "AutoPolicyBlock",
"required": [
"carrier_name",
"state",
"policy_start_date",
"policy_term_months",
"vehicles"
],
"properties": {
"state": {
"type": "string",
"title": "State",
"maxLength": 2,
"minLength": 2
},
"vehicles": {
"type": "array",
"items": {
"$ref": "#/$defs/AutoVehicleInput"
},
"title": "Vehicles",
"maxItems": 10,
"minItems": 1
},
"no_claims": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "No Claims",
"default": null,
"description": "True for no car insurance claim in the last 12 months. Unanswered prices as no claim."
},
"carrier_name": {
"$ref": "#/$defs/CarrierName"
},
"garaging_address": {
"anyOf": [
{
"type": "string",
"maxLength": 255,
"minLength": 1
},
{
"type": "null"
}
],
"title": "Garaging Address",
"default": null,
"description": "Where the cars are kept. On a bundle, the home's address when omitted."
},
"policy_start_date": {
"type": "string",
"title": "Policy Start Date",
"format": "date"
},
"policy_term_months": {
"enum": [
6,
12
],
"type": "integer",
"title": "Policy Term Months"
},
"carrier_friendly_name": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Carrier Friendly Name",
"default": null
},
"business_use_confirmed": {
"type": "boolean",
"title": "Business Use Confirmed",
"default": false,
"description": "The consumer confirms their policy covers each car's business use. Required when any car's `usage` is `business`."
},
"claims_and_tickets_eligible": {
"type": "boolean",
"title": "Claims And Tickets Eligible",
"default": true,
"description": "The household's Claims & Tickets Eligibility choice, applied to every car."
}
},
"description": "The auto policy on a key-less auto or bundle quote (plan §4B, PRD R2.3).\n\nMoney in DOLLARS. The policy start date is when the policy term the lock\nstarts on begins, and is held to the same 90-day window as a home renewal."
},
"AutoVehicleInput": {
"type": "object",
"title": "AutoVehicleInput",
"required": [
"vin",
"allocated_premium"
],
"properties": {
"vin": {
"type": "string",
"title": "Vin",
"maxLength": 17,
"minLength": 11
},
"usage": {
"anyOf": [
{
"$ref": "#/$defs/AutoVehicleUsage"
},
{
"type": "null"
}
],
"default": null,
"description": "How the car is used. A `business` car needs `business_use_confirmed`."
},
"vehicle_make": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Vehicle Make",
"default": null
},
"vehicle_year": {
"anyOf": [
{
"type": "integer",
"maximum": 2100,
"minimum": 1900
},
{
"type": "null"
}
],
"title": "Vehicle Year",
"default": null
},
"vehicle_model": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Vehicle Model",
"default": null
},
"allocated_premium": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
}
],
"title": "Allocated Premium",
"description": "This car's share of the premium for one policy term, in dollars: the per-vehicle premium the declarations page prints."
}
},
"description": "One car on a key-less auto quote (premium-lock-agentic plan §4B).\n\nOne car is one Premium Lock, priced from its own share of the policy-term\npremium, as an agent's auto quote is."
},
"AutoVehicleUsage": {
"enum": [
"commute",
"pleasure",
"business",
"farm",
"other"
],
"type": "string",
"title": "AutoVehicleUsage",
"description": "How a vehicle is used, as a declarations page classifies it.\n\nNot a pricer input today — ``AutoPricingRequest`` carries no usage field —\nbut it is a rating variable on every real auto filing, so it is stored\nrather than dropped. ``OTHER`` is the escape hatch for a classification\nthis list does not name; a printed usage is never silently discarded.\n\nTyped here rather than beside ``AutoVehicle`` because this module is the\none auto vocabulary file: ``marketplace/models.py`` imports the enums, and\nan import in the other direction would close a cycle (EVN-3318)."
},
"PartnerPolicyBlock": {
"type": "object",
"title": "PartnerPolicyBlock",
"required": [
"full_address",
"carrier_name",
"total_premium",
"per_incident_limit",
"deductible",
"expiry_date",
"renewal_date"
],
"properties": {
"no_claims": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "No Claims",
"default": null
},
"deductible": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "string",
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
}
],
"title": "Deductible",
"description": "Deductible in dollars"
},
"expiry_date": {
"type": "string",
"title": "Expiry Date",
"format": "date"
},
"carrier_name": {
"$ref": "#/$defs/CarrierName"
},
"full_address": {
"type": "string",
"title": "Full Address",
"maxLength": 255,
"minLength": 1
},
"renewal_date": {
"type": "string",
"title": "Renewal Date",
"format": "date"
},
"total_premium": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
}
],
"title": "Total Premium",
"description": "Annual premium in dollars. A new quote above $10,000 is refused with 422 `home_premium_above_maximum`."
},
"per_incident_limit": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"
}
],
"title": "Per Incident Limit",
"description": "Dwelling / per-incident coverage limit in dollars"
},
"carrier_friendly_name": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Carrier Friendly Name",
"default": null
}
},
"description": "The home-insurance policy being quoted. Money in DOLLARS; dates as\nISO-8601 calendar dates (a policy expires on a day, not at an instant)."
},
"PartnerInsuredBlock": {
"type": "object",
"title": "PartnerInsuredBlock",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email"
},
{
"type": "null"
}
],
"title": "Email",
"default": null
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Phone",
"default": null
},
"last_name": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Last Name",
"default": null
},
"first_name": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "First Name",
"default": null
}
},
"description": "The named insured (the partner's client). All optional: the checkout\nflow collects whatever is missing."
}
},
"title": "ConsumerQuoteCreate",
"properties": {
"auto": {
"anyOf": [
{
"$ref": "#/$defs/AutoPolicyBlock"
},
{
"type": "null"
}
],
"default": null
},
"policy": {
"anyOf": [
{
"$ref": "#/$defs/PartnerPolicyBlock"
},
{
"type": "null"
}
],
"default": null
},
"insured": {
"$ref": "#/$defs/PartnerInsuredBlock"
},
"partner_ref": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Partner Ref",
"default": null,
"description": "The partner's own policy/quote identifier, echoed back on every response and webhook."
},
"product_line": {
"enum": [
"home",
"auto",
"bundle"
],
"type": "string",
"title": "Product Line",
"default": "home"
},
"referral_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Referral Token",
"default": null,
"description": "A referral partner's signed token, when one sent the consumer. Recorded as that referrer's claim on the quote; a token that does not verify is ignored and the quote is made anyway."
},
"idempotency_key": {
"type": "string",
"maxLength": 255,
"description": "Optional. Defaults to a hash of the body, so a repeated call returns the first quote instead of creating another."
}
},
"description": "`POST /quotes` body from a key-less caller (premium-lock-agentic plan §4B).\n\nDirect-to-consumer only: there is no agent, and `insured.email` is the\nconsumer the quote is for. `home` sends `policy`, `auto` sends `auto`, and\n`bundle` sends both. A line whose launch flag is off for the consumer is\n409 `line_not_available`."
}{
"type": "object",
"required": [
"quote_id"
],
"properties": {
"quote_id": {
"type": "string",
"format": "uuid",
"description": "The quote_id create_quote returned."
}
},
"additionalProperties": false
}| Argument | Type | Description |
|---|---|---|
| consent | any | Required to start. When finishing, optional, and it must be the consent given at the start. |
| quote_id* | string | The quote to buy. |
| billing_interval | any | When starting, the interval the consumer chose from the quote's `pricing`. Omitted, the quote's own. |
{
"type": "object",
"$defs": {
"PurchaseConsentInput": {
"type": "object",
"title": "PurchaseConsentInput",
"required": [
"terms_versions",
"disclosure_set_id",
"disclosure_text_sha256",
"affirmations"
],
"properties": {
"affirmations": {
"type": "object",
"title": "Affirmations",
"description": "`admitted_carrier`, `subscription_36_months` and `not_insurance`, each true, and the consumer's `no_claims` answer.",
"additionalProperties": {
"type": "boolean"
}
},
"terms_versions": {
"type": "object",
"title": "Terms Versions",
"description": "The Terms of Service version shown for each line bought, e.g. `{\"home\": \"home-2026-07-30\"}`.",
"additionalProperties": {
"type": "string"
}
},
"disclosure_set_id": {
"type": "string",
"title": "Disclosure Set Id",
"maxLength": 64,
"description": "The quote's `disclosure_set_id`, echoed."
},
"disclosure_text_sha256": {
"type": "string",
"title": "Disclosure Text Sha256",
"pattern": "^[0-9a-f]{64}$",
"description": "The quote's `disclosure_text_sha256`, echoed."
}
},
"description": "What the agent showed the consumer and what they affirmed (plan §4B, PRD R6.1)."
},
"ProtectionContractBillingInterval": {
"enum": [
"monthly",
"yearly"
],
"type": "string",
"title": "ProtectionContractBillingInterval"
}
},
"required": [
"quote_id"
],
"properties": {
"consent": {
"anyOf": [
{
"$ref": "#/$defs/PurchaseConsentInput"
},
{
"type": "null"
}
],
"default": null,
"description": "Required to start. When finishing, optional, and it must be the consent given at the start."
},
"quote_id": {
"type": "string",
"format": "uuid",
"description": "The quote to buy."
},
"billing_interval": {
"anyOf": [
{
"$ref": "#/$defs/ProtectionContractBillingInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "When starting, the interval the consumer chose from the quote's `pricing`. Omitted, the quote's own."
}
},
"additionalProperties": false
}| email* |
| string |
| The consumer's email. |
| filename | string |
| document_base64* | string | The file's bytes, base64 encoded. |
{
"type": "object",
"required": [
"email",
"document_base64"
],
"properties": {
"email": {
"type": "string",
"description": "The consumer's email."
},
"filename": {
"type": "string"
},
"document_base64": {
"type": "string",
"description": "The file's bytes, base64 encoded."
}
},
"additionalProperties": false
}| string |
| The quote to send. |
{
"type": "object",
"required": [
"quote_id"
],
"properties": {
"quote_id": {
"type": "string",
"format": "uuid",
"description": "The quote to send."
}
},
"additionalProperties": false
}