{"openapi":"3.1.0","info":{"title":"Alpha InsureCo quotes (Fount demo)","version":"1.0.0","description":"Demo only. Alpha InsureCo is a fictional insurer created by Fount to show agent-ready quoting. Nothing here is an offer of insurance and no policy can be bought. Quote car, renters and pet insurance in three calls: GET /api/products to learn what is offered, POST /api/start with the customer's contact details (and a yes/no on being contacted) to get a session_id, then POST /api/quote/{product}. Operation IDs match the WebMCP tool names on the website. No authentication."},"servers":[{"url":"https://quote.fountai.co"}],"components":{"schemas":{"Result":{"type":"object","description":"Every response has a status. Read it first.","properties":{"status":{"type":"string","enum":["session_started","needs_input","quoted","session_required","not_eligible","refer","rate_limited","ok","unknown_topic"],"description":"session_started: Step 1 done, ask next_questions. needs_input: ask the questions in missing_fields / fix invalid_fields, then call again (answers are remembered). quoted: relay summary, disclosures and relevant_product_facts; offer alternatives. session_required: do Step 1 first. not_eligible / refer: tell the customer the message. rate_limited: wait."},"message":{"type":"string"},"session_id":{"type":"string"},"summary":{"type":"string","description":"One sentence with price and key terms, safe to relay as is."},"quote_id":{"type":"string"},"premium":{"type":"object","description":"pet/renters: monthly, annual_if_paid_yearly. auto: term_months, term_premium, monthly_equivalent."},"next_questions":{"type":"array","items":{"$ref":"#/components/schemas/Question"}},"missing_fields":{"type":"array","items":{"$ref":"#/components/schemas/Question"}},"invalid_fields":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"value":{},"problem":{"type":"string"},"allowed_values":{"type":"array","items":{"type":"string"}}}}},"alternatives":{"type":"array","items":{"type":"object","properties":{"change":{"type":"string"},"set":{"type":"object","description":"Send these fields to get this alternative."},"monthly":{"type":"number"},"difference_monthly":{"type":"number"},"term_premium":{"type":"number"},"difference_term":{"type":"number"}}}},"disclosures":{"type":"object","description":"Please relay. specific_to_you, when present, is an exclusion or warning that applies to this customer.","additionalProperties":{"type":"string"}},"relevant_product_facts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"text":{"type":"string"},"source":{"type":"string"}}}},"defaults_applied":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"value_used":{},"label":{"type":"string"},"question":{"type":"string"},"affects_price":{"type":"boolean"}}}},"rating_factors":{"type":"array","items":{"type":"object","properties":{"factor":{"type":"string"},"multiplier":{"type":"number"},"effect":{"type":"string"}}}},"coverage_breakdown":{"type":"array","description":"auto only: each coverage with its limit and 6-month premium."},"details":{"type":"object","description":"pet: breed_match. renters: dog (restricted breed check), loss_of_use. auto: vehicle class, ownership, liability limits."},"notes":{"type":"array","items":{"type":"string"}},"continue_url":{"type":"string","description":"Page where the customer reviews the quote."},"demo":{"type":"boolean"}},"required":["status"],"additionalProperties":true},"Question":{"type":"object","properties":{"field":{"type":"string"},"question":{"type":"string","description":"Ask the customer this."},"type":{"type":"string"},"allowed_values":{"type":"array","items":{"type":"string"}},"labels":{"type":"object"},"help":{"type":"string"},"default":{},"need":{"type":"string","enum":["required","recommended","optional"]}}}}},"paths":{"/api/products":{"get":{"operationId":"describe_products","summary":"What Alpha InsureCo (a Fount demo insurer) sells, where, and how quoting works. Read-only.","responses":{"200":{"description":"Products, states and how to quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}},"/api/start":{"post":{"operationId":"start_quote","summary":"Step 1 of any Alpha InsureCo quote (car, renters or pet). Needs the customer's ZIP, first name, surname, email and mobile, plus a yes/no on being contacted; returns a session_id and the next questions to ask.","description":"first_name, last_name, email and mobile are required. contact_consent is a required yes/no: show the customer this wording, send true only if they agree, false otherwise (the quote works either way): \"I agree that Alpha InsureCo may contact me by email, phone call or text message (including automated messages) about this quote. Consent is optional and not required to get a quote or buy insurance. Message and data rates may apply.\"","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product":{"type":"string","enum":["auto","renters","pet"],"description":"Which insurance would you like a quote for?"},"zip":{"type":"string","pattern":"^[0-9]{5}$","description":"5-digit US ZIP code. For auto, where the car is kept overnight."},"first_name":{"type":"string","description":"What is your first name?"},"last_name":{"type":"string","description":"What is your surname?"},"email":{"type":"string","format":"email","description":"Customer's email. The quote is saved and sent here."},"mobile":{"type":"string","description":"Customer's US mobile number."},"contact_consent":{"type":"boolean","description":"Required yes/no. true only if the person agreed to this wording, shown to them word for word; false if they declined (the quote still works): \"I agree that Alpha InsureCo may contact me by email, phone call or text message (including automated messages) about this quote. Consent is optional and not required to get a quote or buy insurance. Message and data rates may apply.\""}},"required":["product","zip","first_name","last_name","email","mobile","contact_consent"],"additionalProperties":false}}}},"responses":{"200":{"description":"session_started (with session_id, next_questions, relevant_product_facts), needs_input or not_eligible","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}},"/api/quote/auto":{"post":{"operationId":"get_auto_quote","summary":"Exact Alpha InsureCo car insurance quote (6-month term), using the session_id from start_quote. Answers are remembered, so later calls can send only changes. Missing answers come back as questions to ask. Nothing is sent to the customer.","description":"Send the session_id plus whatever answers you have. Answers are remembered for the session, so later calls can send only new or changed fields (reset=true forgets them). The response status is quoted (price, alternatives, disclosures, relevant_product_facts, continue_url), needs_input (missing_fields lists the exact questions to ask), session_required, not_eligible, refer or rate_limited. Relay the summary and disclosures to the customer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","description":"The session_id returned by start_quote."},"reset":{"type":"boolean","description":"Optional. true forgets earlier answers for this product in this session."},"age_first_licensed":{"type":"integer","minimum":14,"maximum":99,"description":"Alternative to years_licensed: the age the driver was first licensed."},"driver_age":{"type":"integer","minimum":16,"maximum":99,"description":"How old is the main driver?"},"years_licensed":{"type":"integer","minimum":0,"maximum":83,"description":"How many years has the driver held a US licence? Alternatively send age_first_licensed and we work it out."},"incidents_5y":{"type":"array","items":{"type":"string","enum":["at_fault_accident","speeding_minor","speeding_major","dui","comp_claim"]},"description":"Any accidents, tickets or claims in the last 5 years? A list of incident types, e.g. [\"speeding_minor\"]; an empty list [] if there were none. Each counts for 5 years from its date."},"prior_insurance":{"type":"string","enum":["none","under_1y","1_3y","3y_plus"],"description":"How long has the driver been continuously insured?"},"vehicle_year":{"type":"integer","minimum":1985,"maximum":2027,"description":"What year is the car?"},"vehicle_make":{"type":"string","description":"What make is the car (e.g. Toyota)?"},"vehicle_model":{"type":"string","description":"What model is the car (e.g. Camry)?"},"vehicle_ownership":{"type":"string","enum":["owned","financed","leased"],"description":"Is the car owned outright, financed or leased? Lenders and lease companies usually require collision and comprehensive cover. Default if not sent: owned.","default":"owned"},"annual_mileage":{"type":"string","enum":["under_5k","5_7_5k","7_5_10k","10_15k","15k_plus"],"description":"Roughly how many miles is the car driven a year? Default if not sent: 10_15k.","default":"10_15k"},"coverage_package":{"type":"string","enum":["state_minimum","standard","full","premium"],"description":"Which level of cover would you like? Default if not sent: full.","default":"full"},"primary_use":{"type":"string","enum":["commute","pleasure","business","rideshare"],"description":"What is the car mainly used for? Default if not sent: commute.","default":"commute"},"marital_status":{"type":"string","enum":["married","single","other"],"description":"Is the driver married? Married drivers pay about 10% less. Default if not sent: single.","default":"single"},"homeowner":{"type":"boolean","description":"Does the driver own their home? Homeowners pay about 5% less. Default if not sent: false.","default":false},"credit_tier":{"type":"string","enum":["excellent","good","fair","poor"],"description":"How would the driver describe their credit: excellent, good, fair or poor? Self-reported in this demo; a real insurer checks it with consent. Can move the price a lot. Default if not sent: good.","default":"good"},"collision_deductible":{"type":"string","enum":["250","500","1000"],"description":"Which collision deductible would you like? Default if not sent: 500.","default":"500"},"comprehensive_deductible":{"type":"string","enum":["100","250","500","1000"],"description":"Which comprehensive deductible would you like? Default if not sent: 500.","default":"500"},"rental":{"type":"boolean","description":"Add rental car reimbursement (+$24 per 6 months)? Default if not sent: false.","default":false},"roadside":{"type":"boolean","description":"Add roadside assistance (+$9 per 6 months)? Default if not sent: false.","default":false}},"required":["session_id"],"additionalProperties":false,"description":"First call for a session needs: driver_age, years_licensed, incidents_5y, prior_insurance, vehicle_year, vehicle_make, vehicle_model. Later calls can send only changed fields."}}}},"responses":{"200":{"description":"Quote result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}},"/api/quote/renters":{"post":{"operationId":"get_renters_quote","summary":"Exact Alpha InsureCo renters insurance quote, using the session_id from start_quote. Answers are remembered, so later calls can send only changes. Missing answers come back as questions to ask. Nothing is sent to the customer.","description":"Send the session_id plus whatever answers you have. Answers are remembered for the session, so later calls can send only new or changed fields (reset=true forgets them). The response status is quoted (price, alternatives, disclosures, relevant_product_facts, continue_url), needs_input (missing_fields lists the exact questions to ask), session_required, not_eligible, refer or rate_limited. Relay the summary and disclosures to the customer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","description":"The session_id returned by start_quote."},"reset":{"type":"boolean","description":"Optional. true forgets earlier answers for this product in this session."},"dwelling_type":{"type":"string","enum":["apartment_condo","townhouse_duplex","single_family"],"description":"What kind of home do you rent?"},"personal_property":{"type":"string","enum":["10000","15000","20000","30000","50000","75000","100000"],"description":"Roughly how much would it cost to replace everything you own? Most renters choose $20,000 to $30,000. Default if not sent: 20000.","default":"20000"},"liability":{"type":"string","enum":["100000","300000","500000"],"description":"How much personal liability cover would you like? Default if not sent: 100000.","default":"100000"},"deductible":{"type":"string","enum":["250","500","1000"],"description":"Which deductible would you like? Default if not sent: 500.","default":"500"},"prior_claims_5y":{"type":"string","enum":["0","1","2"],"description":"How many renters or home insurance claims have you made in the last 5 years? (0, 1, or 2 meaning two or more) Default if not sent: 0.","default":"0"},"replacement_cost":{"type":"boolean","description":"Would you like replacement cost cover (pays to buy new, rather than the depreciated value)? Default if not sent: false.","default":false},"safety_devices":{"type":"array","items":{"type":"string","enum":["smoke_alarm","deadbolt","sprinklers","burglar_alarm"]},"description":"Which of these does your home have: smoke alarm, deadbolt, sprinklers, burglar alarm? Two or more gives 5% off. Default if not sent: none.","default":[]},"add_ons":{"type":"array","items":{"type":"string","enum":["water_backup","identity_fraud","pet_damage"]},"description":"Would you like any add-ons: water backup, identity fraud, pet damage? Default if not sent: none.","default":[]},"dog_breed":{"type":"string","description":"Do you have a dog? If so, what breed? Some breeds are excluded from liability cover. Restricted breeds (dog liability excluded): Pit Bull, American Pit Bull Terrier, American Staffordshire Terrier, Staffordshire Terrier, Rottweiler, Doberman Pinscher, Chow Chow, Akita, Wolf hybrid, Presa Canario."},"pay_frequency":{"type":"string","enum":["monthly","annual"],"description":"Would you like to pay monthly or yearly? Yearly saves 5%. Default if not sent: monthly.","default":"monthly"}},"required":["session_id"],"additionalProperties":false,"description":"First call for a session needs: dwelling_type. Later calls can send only changed fields."}}}},"responses":{"200":{"description":"Quote result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}},"/api/quote/pet":{"post":{"operationId":"get_pet_quote","summary":"Exact Alpha InsureCo pet insurance quote for a dog or cat, using the session_id from start_quote. Answers are remembered, so later calls can send only changes. Missing answers come back as questions to ask. Nothing is sent to the customer.","description":"Send the session_id plus whatever answers you have. Answers are remembered for the session, so later calls can send only new or changed fields (reset=true forgets them). The response status is quoted (price, alternatives, disclosures, relevant_product_facts, continue_url), needs_input (missing_fields lists the exact questions to ask), session_required, not_eligible, refer or rate_limited. Relay the summary and disclosures to the customer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"session_id":{"type":"string","description":"The session_id returned by start_quote."},"reset":{"type":"boolean","description":"Optional. true forgets earlier answers for this product in this session."},"species":{"type":"string","enum":["dog","cat"],"description":"Is your pet a dog or a cat?"},"breed":{"type":"string","description":"What breed is your pet? Mixed breeds are fine. Free text is matched to our breed list, e.g. 'golden', 'lab mix', 'domestic shorthair'. For a mixed-breed dog, weight helps."},"age_years":{"type":"integer","minimum":0,"maximum":20,"description":"How old is your pet, in whole years? Use 0 for pets under one year (at least 8 weeks old). New policies are available up to age 14."},"pet_name":{"type":"string","description":"What is your pet's name?"},"sex":{"type":"string","enum":["male","female"],"description":"Is your pet male or female? Small effect: males cost about 2% more."},"spayed_neutered":{"type":"boolean","description":"Is your pet spayed or neutered? Small effect: pets that are not spayed or neutered cost about 5% more."},"weight_lb":{"type":"number","minimum":1,"maximum":250,"description":"Roughly how much does your pet weigh, in pounds? Needed for mixed-breed dogs: a mix is rated by size (under 30 lb small, 30-60 medium, 60-90 large, over 90 giant)."},"plan":{"type":"string","enum":["essential","essential_plus_wellness","early_years"],"description":"Which plan would you like? Default if not sent: essential.","default":"essential"},"deductible":{"type":"string","enum":["100","200","250","500","750","1000"],"description":"Which annual deductible would you like? A higher deductible lowers the monthly price. Default if not sent: 500.","default":"500"},"reimbursement":{"type":"string","enum":["70","80","90"],"description":"What share of eligible vet bills should we pay back? Default if not sent: 80.","default":"80"},"annual_limit":{"type":"string","enum":["5000","8000","10000","15000","20000","30000","unlimited"],"description":"What is the most we should pay out in a year? Default if not sent: 10000.","default":"10000"},"pay_frequency":{"type":"string","enum":["monthly","annual"],"description":"Would you like to pay monthly or yearly? Yearly saves 10%. Default if not sent: monthly.","default":"monthly"}},"required":["session_id"],"additionalProperties":false,"description":"First call for a session needs: species, breed, age_years. Later calls can send only changed fields."}}}},"responses":{"200":{"description":"Quote result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}},"/api/explain":{"post":{"operationId":"explain_insurance_topic","summary":"Plain-language explanation of a Alpha InsureCo coverage term (e.g. exclusions, waiting periods, deductible, loss of use, dog liability, financed cars), tailored to the customer when a session_id is given.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","description":"A topic such as exclusions, waiting_periods, pre_existing_conditions, deductible, reimbursement, loss_of_use, dog_liability, add_ons, coverage_packages, financed_or_leased, gap_insurance. Loose wording is matched."},"product":{"type":"string","enum":["auto","renters","pet"]},"session_id":{"type":"string","description":"Optional; tailors the answer to the customer's state and latest quote."},"quote_id":{"type":"string","description":"Optional; tailor to this specific quote instead of the latest one."}},"required":["topic"],"additionalProperties":false}}}},"responses":{"200":{"description":"Explanation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"429":{"description":"status=rate_limited. Try again after retry_after_seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}}}}}}}