Servidor MCP

Foresee

io.github.Foresee-Tech/foresee
Finanzas e inversión Público y accesible MCP 2025-11-25

Qué hace este MCP

Generates and confirms home, auto, and renters insurance quote estimates across supported carriers and regions.

live_carrier_quotes
Live carrier quotes
Purpose: confirm quote estimates on the carriers' own quote sites, via Foresee agents completing their real quote flows. IDEMPOTENT, keyed on the profile: the first call commissions the walks; calling again with the same profile collects progress and results instead of re-submitting anything — whatever the ask. A profile that has already been walked returns those results (the carriers are never asked twice): the envelope's ``coverage_selection`` names the ask the walk typed, and each quote carries the carrier's other recorded coverage options as ``variants``, so a new ask reads the same run. So call once to start, then re-call after a few minutes to collect; agents still working report their stage. No sign-in is required. The one hard requirement is the user's own consent, captured in-band: BEFORE the commissioning call, you MUST tell the user, plainly: Foresee will submit their details to the named carriers; the carriers may obtain their credit-based insurance score (a soft pull, with no impact on your credit score); and the carriers may contact them by email or phone. Then get their explicit go-ahead and pass their affirmation VERBATIM as ``user_authorization`` (e.g. "yes, go ahead"). The affirmation is stored as the durable consent record for the dispatch; without one the call is refused with ``authorization_required``. Foresee only collects quotes; it does not take payment or bind insurance. Collect the ``identity`` fields in chat. They may be omitted only when the session is signed in to Foresee and the user has saved their profile on the Foresee site — then their consented profile-of-record is used, refined by anything passed in ``profile``. A ``missing_facts`` response is normal: carrier forms insist on facts (body style, purchase date, age first licensed…) that Foresee will not invent. Each ``needs`` entry carries the carrier (``scope``), the facts in the walk's own words (``need``), and ``fields[]`` — per fact, the ``ask`` beside the exact schema path to pass the answer under (``field``, e.g. ``auto.vehicles[].purchase_date``; ``identity.…`` paths go on ``identity``). Ask the user for exactly those facts, then call again with the answers merged in at those paths. A fact with no ``field`` has no profile home yet — relay that carrier's ask as unavailable rather than guessing a key. When the dispatch was PARTIAL (some carriers walked, some skipped over missing facts), follow the receipt's ``recover`` block: re-call with the new facts merged AND ``carriers`` set to exactly ``recover.carriers`` — a changed profile is a new dispatch, and an unscoped re-call would re-submit the already-walked carriers too. Unasserted MINOR facts are not asked: a form field that is really a claim nobody made (an anti-theft device, a defensive-driving course, years licensed abroad) is answered with the declared no-claim value — never a discount claim — and every one comes back in ``assumptions`` (``field`` + the ``assumed`` value submitted). Relay them with the results; if the user corrects one, re-call with the real value at that path. ``lines`` names WHICH line to walk, exactly one per call (a fan-out drives one form family): ``{"auto": {...the ask...}}``, ``{"home": null}``, or ``{"renters": {"coverage_c": 30000, "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}}``. An AUTO walk's ask is REQUIRED — the limits and deductibles the agents ask the carriers for, as actual numbers (`bi` "100/300", `pd` 100, `coll_deductible` 500, `comp_deductible` 500, the same four axes as quote_insurance); without it the tool answers with the selection-required message; ask the user, then call again. A HOME walk takes NO ask — the carrier's own form prices its package (dwelling amount from its replacement-cost estimate) and the agents report what it chose. A RENTERS walk requires its four axes as actual dollars — ``coverage_c`` (personal-property/contents), ``coverage_e`` (personal liability), ``coverage_f`` (guest medical) and ``deductible`` — the agents type the user's numbers on the form instead of accepting its defaults, and Foresee never invents them. Quotes come back with evidence. ``quote.premium`` is VERBATIM as the carrier's page printed it, and ``term_months`` says what it covers — a 6-month figure is not a monthly one. When term_months is known, present the monthly equivalent (premium ÷ term_months) so carriers compare on one basis, the page's own figure beside it; without it, relay the printed premium and say the monthly equivalent is unknown. A carrier may also decline the risk — a real answer to relay, not an error. ``skipped`` and ``not_dispatched`` name the carriers NOT walked, each with the reason — relay those too; a carrier never silently vanishes.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$defs': {'AutoAsk': {'type': 'object', 'title': 'AutoAsk', 'properties': {'bi': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Bi', 'default': None, 'description': 'Bodily-injury liability limit, per-person/per-accident in $000s, e.g. "100/300"'}, 'pd': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Pd', 'default': None, 'description': 'Property-damage liability limit in $000s, e.g. 100'}, 'um': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Um', 'default': None, 'description': 'Uninsured/underinsured-motorist BI limit in $000s, e.g. "100/300"'}, 'medpay': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Medpay', 'default': None, 'description': 'Medical-payments limit in dollars, e.g. 5000'}, 'coll_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coll Deductible', 'default': None, 'description': 'Collision deductible in dollars, e.g. 500'}, 'comp_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Comp Deductible', 'default': None, 'description': 'Comprehensive deductible in dollars, e.g. 500'}}, 'additionalProperties': True}, 'HomeAsk': {'type': 'object', 'title': 'HomeAsk', 'properties': {'coverage_a': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage A', 'default': None, 'description': "Dwelling limit in dollars â\x80\x94 the dwelling's replacement cost"}, 'coverage_e': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage E', 'default': None, 'description': 'Personal liability limit in dollars, e.g. 300000'}, 'coverage_f': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage F', 'default': None, 'description': 'Guest medical (medical payments to others) limit in dollars, e.g. 1000'}, 'aop_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Aop Deductible', 'default': None, 'description': 'All-other-perils deductible in dollars, e.g. 1000'}}, 'additionalProperties': True}, 'LossInput': {'type': 'object', 'title': 'LossInput', 'properties': {'on': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'On', 'default': None, 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'kind': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Kind', 'default': None, 'description': '"water", "fire", "theft", "wind/hail", "liability"â\x80¦'}, 'amount': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Amount', 'default': None, 'description': 'Paid out, dollars'}}, 'description': 'One prior property loss.', 'additionalProperties': True}, 'LinesInput': {'type': 'object', 'title': 'LinesInput', 'properties': {'auto': {'anyOf': [{'$ref': '#/$defs/AutoAsk'}, {'type': 'null'}], 'default': None}, 'home': {'anyOf': [{'$ref': '#/$defs/HomeAsk'}, {'type': 'null'}], 'default': None}, 'renters': {'anyOf': [{'$ref': '#/$defs/RentersAsk'}, {'type': 'null'}], 'default': None}}, 'description': 'The coverage to price, one entry per line.', 'additionalProperties': True}, 'RentersAsk': {'type': 'object', 'title': 'RentersAsk', 'properties': {'coverage_c': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage C', 'default': None, 'description': 'Personal-property (contents) limit in dollars, e.g. 30000'}, 'coverage_d': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage D', 'default': None, 'description': 'Loss-of-use limit in dollars'}, 'coverage_e': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage E', 'default': None, 'description': 'Personal liability limit in dollars, e.g. 100000'}, 'coverage_f': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage F', 'default': None, 'description': 'Guest medical (medical payments to others) limit in dollars, e.g. 1000'}, 'deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Deductible', 'default': None, 'description': 'All-perils deductible in dollars, e.g. 500'}}, 'additionalProperties': True}, 'VehicleInput': {'type': 'object', 'title': 'VehicleInput', 'properties': {'vin': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Vin', 'default': None}, 'cost': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Cost', 'default': None, 'description': 'Cost new, whole dollars'}, 'make': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Make', 'default': None}, 'trim': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Trim', 'default': None}, 'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year', 'default': None}, 'model': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Model', 'default': None}, 'ownership': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Ownership', 'default': None, 'description': "'owned' / 'financed' / 'leased'"}, 'anti_theft': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Anti Theft', 'default': None, 'description': "'alarm' / 'active_disable' / 'passive_disable' / 'recovery_device'"}, 'body_style': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Body Style', 'default': None, 'description': 'Trim / body style, e.g. "XLT AWD 4D GAS"'}, 'bought_new': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Bought New', 'default': None}, 'primary_use': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Primary Use', 'default': None, 'description': "'Personal' / 'Commute' / 'Business'"}, 'commute_days': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Commute Days', 'default': None, 'description': 'Commute days per week'}, 'garaging_zip': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Garaging Zip', 'default': None, 'description': 'ZIP where this vehicle is kept, when different from zip_code'}, 'one_way_miles': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'One Way Miles', 'default': None, 'description': 'One-way commute distance, miles'}, 'purchase_date': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Purchase Date', 'default': None, 'description': 'When bought: YYYY, YYYY-MM or YYYY-MM-DD'}, 'annual_mileage': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Annual Mileage', 'default': None}, 'anti_lock_brakes': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Anti Lock Brakes', 'default': None}, 'daytime_running_lights': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Daytime Running Lights', 'default': None}}, 'description': 'One vehicle on the policy.', 'additionalProperties': True}, 'AccidentInput': {'type': 'object', 'title': 'AccidentInput', 'required': ['on'], 'properties': {'on': {'type': 'string', 'title': 'On', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$', 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'amount': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Amount', 'default': None, 'description': 'Damage paid out, dollars'}, 'at_fault': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'At Fault', 'default': None}}, 'additionalProperties': True}, 'PropertyBlock': {'type': 'object', 'title': 'PropertyBlock', 'properties': {'units': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Units', 'default': None, 'description': 'Number of families the building holds'}, 'garage': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Garage', 'default': None, 'description': "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'â\x80¦"}, 'losses': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/LossInput'}}, {'type': 'null'}], 'title': 'Losses', 'default': None, 'description': 'Prior property losses, each dated. [] means none; omit if unknown'}, 'devices': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 200}}, {'type': 'null'}], 'title': 'Devices', 'default': None, 'description': "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'â\x80¦ ['None'] means asked-and-none; omit the field if never asked"}, 'stories': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Stories', 'default': None}, 'bathrooms': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Bathrooms', 'default': None}, 'household': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Household', 'default': None, 'description': 'Number of people living in the home'}, 'occupancy': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupancy', 'default': None, 'description': "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'"}, 'purchased': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Purchased', 'default': None, 'description': 'When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD'}, 'roof_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Roof Type', 'default': None, 'description': "'composition shingle' / 'tile' / 'metal'â\x80¦"}, 'roof_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Roof Year', 'default': None, 'description': 'Year the roof was last replaced'}, 'foundation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Foundation', 'default': None, 'description': "'slab' / 'raised' / 'basement' / 'crawlspace'â\x80¦"}, 'year_built': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year Built', 'default': None}, 'roof_layers': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Roof Layers', 'default': None}, 'square_feet': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Square Feet', 'default': None}, 'swimming_pool': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Swimming Pool', 'default': None}, 'protection_class': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Protection Class', 'default': None, 'description': 'ISO fire protection class, 1-10'}, 'replacement_cost': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Replacement Cost', 'default': None, 'description': 'Dwelling replacement cost estimate, dollars'}, 'seismic_retrofit': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Seismic Retrofit', 'default': None, 'description': 'Whether the home has been seismically retrofitted'}, 'construction_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Construction Type', 'default': None, 'description': "'frame' / 'masonry' / 'masonry veneer'â\x80¦"}, 'miles_to_fire_station': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Miles To Fire Station', 'default': None}, 'renovation_permit_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Renovation Permit Year', 'default': None, 'description': 'Year of the last permitted plumbing, electrical, heating or roof work'}}, 'description': 'The dwelling, for home and renters.', 'additionalProperties': True}, 'WalkAutoBlock': {'type': 'object', 'title': 'WalkAutoBlock', 'properties': {'drivers': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/WalkDriverInput'}}, {'type': 'null'}], 'title': 'Drivers', 'default': None}, 'vehicles': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/VehicleInput'}, 'maxItems': 10}, {'type': 'null'}], 'title': 'Vehicles', 'default': None}}, 'description': 'Omit it for a household without a car.', 'additionalProperties': True}, 'ViolationInput': {'type': 'object', 'title': 'ViolationInput', 'required': ['on', 'kind'], 'properties': {'on': {'type': 'string', 'title': 'On', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$', 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'kind': {'type': 'string', 'title': 'Kind', 'maxLength': 200, 'minLength': 1, 'description': 'The violation in plain words: "speeding", "DUI", "reckless driving", "running a red light"â\x80¦'}}, 'description': 'One moving violation.', 'additionalProperties': True}, 'HeldPolicyInput': {'type': 'object', 'title': 'HeldPolicyInput', 'required': ['line'], 'properties': {'line': {'type': 'string', 'title': 'Line', 'maxLength': 200, 'description': 'What the policy insures: "home", "renters", "condo", "auto", "life", "umbrella"â\x80¦'}, 'carrier': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Carrier', 'default': None, 'description': 'Who writes it, e.g. "State Farm"'}, 'in_force': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'In Force', 'default': None}}, 'description': 'A policy the household already holds.', 'additionalProperties': True}, 'WalkDriverInput': {'type': 'object', 'title': 'WalkDriverInput', 'properties': {'dob': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Dob', 'default': None, 'description': 'YYYY-MM-DD'}, 'gender': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Gender', 'default': None}, 'status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Status', 'default': None, 'description': "'licensed' (default) / 'permit' / 'not licensed' / 'excluded'"}, 'industry': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Industry', 'default': None}, 'relation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Relation', 'default': None, 'description': '"self" / "spouse" / "child" / "parent" / "other"'}, 'accidents': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/AccidentInput'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Accidents', 'default': None, 'description': 'Accidents, one entry each, e.g. [{"on": "2023-06-15", "at_fault": true, "amount": 4200}] â\x80\x94 every entry needs `on`. An empty list means none.'}, 'education': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Education', 'default': None, 'description': "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'"}, 'last_name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Last Name', 'default': None}, 'first_name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'First Name', 'default': None}, 'occupation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupation', 'default': None}, 'violations': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/ViolationInput'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Violations', 'default': None, 'description': 'Moving violations, one entry each, e.g. [{"on": "2025-01", "kind": "speeding"}] â\x80\x94 every entry needs `kind` and `on`. An empty list means a clean record.'}, 'license_state': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'License State', 'default': None, 'description': 'Two-letter code of the licensing state'}, 'rideshare_use': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Rideshare Use', 'default': None, 'description': 'Drives for ride-share or delivery'}, 'sr22_required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sr22 Required', 'default': None}, 'marital_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Marital Status', 'default': None}, 'years_licensed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Years Licensed', 'default': None, 'description': 'Years since first licensed'}, 'exclusion_reason': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Exclusion Reason', 'default': None}, 'employment_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Employment Status', 'default': None, 'description': "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'"}, 'years_licensed_us': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Years Licensed Us', 'default': None, 'description': 'Years licensed in the US'}, 'age_first_licensed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Age First Licensed', 'default': None, 'description': 'Age when first licensed'}, 'date_first_licensed': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Date First Licensed', 'default': None, 'description': 'YYYY-MM-DD; alternative to age_first_licensed'}, 'drivers_license_number': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Drivers License Number', 'default': None}, 'defensive_driving_course': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Defensive Driving Course', 'default': None, 'description': 'Completed a defensive-driving course in the last 3 years'}, 'years_licensed_outside_us': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Years Licensed Outside Us', 'default': None, 'description': 'Years licensed outside the US'}}, 'description': 'One driver on the policy. The applicant is the driver with relation\n"self"; any of their details restated here must match the profile\'s top\nlevel.', 'additionalProperties': True}, 'LiveQuoteProfile': {'type': 'object', 'title': 'LiveQuoteProfile', 'required': ['zip_code'], 'properties': {'age': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Age', 'default': None, 'description': "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption."}, 'dob': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Dob', 'default': None, 'description': 'YYYY-MM-DD; alternative to age'}, 'auto': {'anyOf': [{'$ref': '#/$defs/WalkAutoBlock'}, {'type': 'null'}], 'default': None}, 'city': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'City', 'default': None}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'state': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'State', 'default': None, 'description': 'Two-letter code; derived from zip_code when omitted'}, 'gender': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Gender', 'default': None}, 'industry': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Industry', 'default': None}, 'property': {'anyOf': [{'$ref': '#/$defs/PropertyBlock'}, {'type': 'null'}], 'default': None}, 'zip_code': {'type': 'string', 'title': 'Zip Code', 'maxLength': 200, 'description': "REQUIRED â\x80\x94 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption."}, 'education': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Education', 'default': None, 'description': "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'"}, 'occupation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupation', 'default': None}, 'memberships': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 200}}, {'type': 'null'}], 'title': 'Memberships', 'default': None, 'description': "Organizations the applicant belongs to, e.g. ['Costco', 'AAA']"}, 'credit_range': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Credit Range', 'default': None, 'description': "'Excellent' / 'Good' / 'Fair' / 'Poor' â\x80\x94 omit it in CA, HI, MA and MI"}, 'effective_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Effective Date', 'default': None, 'description': 'Policy start date, YYYY-MM-DD'}, 'marital_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Marital Status', 'default': None, 'description': "'Single' / 'Married' / â\x80¦"}, 'residence_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Residence Type', 'default': None, 'description': "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / â\x80¦"}, 'street_address': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Street Address', 'default': None}, 'military_branch': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Military Branch', 'default': None}, 'prior_insurance': {'anyOf': [{'$ref': '#/$defs/WalkPriorInsuranceInput'}, {'type': 'null'}], 'default': None}, 'employment_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Employment Status', 'default': None, 'description': "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'"}, 'companion_policies': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/HeldPolicyInput'}}, {'type': 'null'}], 'title': 'Companion Policies', 'default': None, 'description': 'Policies the household already holds, e.g. [{"line": "home", "carrier": "State Farm"}]'}, 'months_at_residence': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Months At Residence', 'default': None}, 'military_affiliation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Military Affiliation', 'default': None, 'description': "'active' / 'veteran' / 'family' / 'none'"}, 'home_ownership_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Home Ownership Status', 'default': None, 'description': "'rent' / 'own with mortgage' / 'own outright' â\x80\x94 bare 'own' is accepted"}, 'military_rank_paygrade': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Military Rank Paygrade', 'default': None, 'description': "e.g. 'E-5'"}, 'military_service_end_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Military Service End Year', 'default': None}, 'military_service_start_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Military Service Start Year', 'default': None}}, 'description': "The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model â\x80\x94 when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`.", 'additionalProperties': True}, 'ApplicantIdentity': {'type': 'object', 'title': 'ApplicantIdentity', 'required': ['first_name', 'last_name', 'dob', 'street', 'city', 'email'], 'properties': {'dob': {'type': 'string', 'title': 'Dob', 'format': 'date', 'description': 'YYYY-MM-DD'}, 'city': {'type': 'string', 'title': 'City'}, 'unit': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'email': {'type': 'string', 'title': 'Email'}, 'phone': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Phone', 'default': None}, 'street': {'type': 'string', 'title': 'Street'}, 'zip_code': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Zip Code', 'default': None, 'description': "Only when it differs from the profile's"}, 'last_name': {'type': 'string', 'title': 'Last Name'}, 'first_name': {'type': 'string', 'title': 'First Name'}}, 'description': "The applicant's name, date of birth, address and contact details."}, 'WalkPriorInsuranceInput': {'type': 'object', 'title': 'WalkPriorInsuranceInput', 'properties': {'lapse': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Lapse', 'default': None, 'description': 'Any lapse in coverage in the last 12 months'}, 'since': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Since', 'default': None, 'description': 'Start date: YYYY, YYYY-MM or YYYY-MM-DD'}, 'until': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Until', 'default': None, 'description': 'End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force'}, 'limits': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Limits', 'default': None, 'description': 'Bodily-injury limits held, e.g. "100/300"'}, 'carrier': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Carrier', 'default': None}, 'insured': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Insured', 'default': None}}, 'description': 'The insurance carried now.', 'additionalProperties': True}}, 'title': 'live_carrier_quotesArguments', 'required': ['profile'], 'properties': {'lines': {'anyOf': [{'$ref': '#/$defs/LinesInput'}, {'type': 'null'}], 'default': None}, 'profile': {'$ref': '#/$defs/LiveQuoteProfile', 'type': 'object'}, 'carriers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Carriers', 'default': None}, 'identity': {'anyOf': [{'$ref': '#/$defs/ApplicantIdentity'}, {'type': 'null'}], 'default': None}, 'user_authorization': {'type': 'string', 'title': 'User Authorization', 'default': ''}}}
Esquema de salida
{'type': 'object', '$defs': {'AgentStatusSummary': {'type': 'object', 'title': 'AgentStatusSummary', 'properties': {'line': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Line', 'default': None}, 'detail': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Detail', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'carrier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Carrier', 'default': None}, 'premium': {'anyOf': [{'type': 'number'}, {'type': 'string'}, {'type': 'null'}], 'title': 'Premium', 'default': None}, 'declined': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Declined', 'default': None}, 'carrier_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Carrier Key', 'default': None}, 'term_months': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Term Months', 'default': None}, 'eta_seconds_remaining': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Eta Seconds Remaining', 'default': None}}, 'additionalProperties': True}}, 'title': 'DispatchResult', 'properties': {'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Note', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'needs': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Needs', 'default': None}, 'agents': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/AgentStatusSummary'}}, {'type': 'null'}], 'title': 'Agents', 'default': None}, 'detail': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Detail', 'default': None}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'recover': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Recover', 'default': None}, 'skipped': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Skipped', 'default': None}, 'assumptions': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Assumptions', 'default': None}, 'example_arguments': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Example Arguments', 'default': None}, 'coverage_selection': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Coverage Selection', 'default': None}, 'authorization_recorded': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Authorization Recorded', 'default': None}}, 'additionalProperties': True}
quote_insurance
Instant insurance quote estimates
Purpose: generate instant, itemized quote estimates from the carriers Foresee supports, across the lines and states Foresee currently serves, in one call — the LIVE TODAY line at the end of this description names today's set. `lines` is REQUIRED and is ONE map: each key names a line to price (e.g. "auto", "renters", "home" — plain words are fine), each value is that line's coverage ask as actual numbers. A line Foresee doesn't quote in the user's state comes back under `skipped`: `lines` names each one and `message` is one sentence, written to be relayed to the user as-is, naming what Foresee does quote in that state. For auto the ask has four axes — `bi` (bodily-injury liability, per-person/ per-accident in $000s, e.g. "100/300"), `pd` (property-damage liability in $000s, e.g. 100), `coll_deductible` (collision deductible in dollars, e.g. 500) and `comp_deductible` (comprehensive deductible in dollars, e.g. 500); `um` and `medpay` are optional. A renters ask has four axes — `coverage_c` (personal-property/contents limit in dollars, e.g. 30000), `coverage_e` (personal liability in dollars, e.g. 100000), `coverage_f` (guest medical in dollars, e.g. 1000) and `deductible` (all-perils, in dollars, e.g. 500); `coverage_d` is optional. A home ask: `coverage_a` (the dwelling's replacement cost in dollars), `coverage_e` (e.g. 300000), `coverage_f` (e.g. 1000) and `aop_deductible` (all-other-perils deductible in dollars, e.g. 1000). There are no named coverage levels and the server never defaults: pass exact numbers. An omitted OPTIONAL axis (`um`, `medpay`, `coverage_d`) keeps each carrier's own default — the quote's per-coverage lines show what was rated. Any numbers at or above the state's legal minimum work as the ask (an auto `bi`/`pd` below it prices nothing — no carrier may sell that policy — and comes back under `coverage_required` naming the minimum); each carrier's `price_ladder` prices every other rung, so a starting selection is easy to refine after the fact. An incomplete ask on a live line prices nothing and answers with `coverage_required` naming that line's own axes; an axis supplied with a value no carrier offers (`bi` "banana", a negative deductible) is refused the same way, naming the bad value and the format the axis takes. Each supported carrier is priced at the selection given; a carrier that doesn't offer an asked rung is priced at its nearest offered one and says so: its entry carries `rated_vs_asked` (per axis: `asked`, `rated`, and `coverage` "less"/"more" than asked; the dense text puts it on the `C` row as `rated`). That price is NOT like-for-like — state the rated limits next to it every time you show it (e.g. "$255/mo — 30/60 BI / $25k PD, the most this carrier offers, not the 100/300 / $100k you asked for"), and never let it headline or anchor a cheapest/spread claim without saying so. A carrier Foresee can't price appears in `failures` with the reason, as does one Foresee can't price for a line it was asked on (no program served there yet, or the carrier doesn't sell that line in the state) — a carrier never silently vanishes from a line's results. Priced results come back per line under `by_line`. Profile requirements: ZIP code, age (or dob) and — for auto — each vehicle's year/make/model are REQUIRED; they have no server-side fallback. A missing or mistyped one errors at the schema with guidance; a value that fits the schema but cannot rate ("not-a-zip", a negative age) comes back in `profile_required` naming it, with guidance on what the field takes. Use the profile schema's exact field names: a key the schema doesn't name is carried but never rated. A complete call — a 25-year-old in Oakland with a 2021 Civic, a January 2025 speeding ticket and a 2023 at-fault accident, asking for 100/300 BI, $100k PD and $500 collision/comprehensive deductibles: {"profile": {"zip_code": "94621", "age": 25, "auto": {"drivers": [{"violations": [{"on": "2025-01", "kind": "speeding"}], "accidents": [{"on": "2023-06-15", "at_fault": true, "amount": 4200}]}], "vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}}, "lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}}} Every violation needs `kind` and `on`, every accident `on`; an incomplete entry is refused naming its path, never assumed away. Each carrier returns a **point estimate** (`monthly`) plus a `confidence_interval` that reflects only what's genuinely unresolvable (irreducible), NOT missing profile fields. A field the caller omits is filled with ONE declared value and reported in `assumptions` / `tighten_by` (the reducible "tell us X and we sharpen" gap) — the response is built to be presented early and refined, never widened into a vague range. Each entry's `field` is the exact profile path to send the user's real answer under (e.g. `auto.drivers[].violations`), and `tighten_by` lists those same paths. The one exception is `incident_details`: it is answered by completing the incident entries already sent (dates, fault, BI split), not under a fresh key. Each carrier's `quote` carries every sub-coverage line (BI/PD/collision/ comprehensive/UM…) with its monthly price, at the selection you passed (echoed as `coverage_selection`). Most carriers also carry a `price_ladder`: for each coverage lever of the line (auto: BI limit, PD limit, collision/comprehensive deductible; renters: deductible and the C/E/F limits; home: AOP deductible and the A/E/F limits) the exact price at every rung, one lever moved at a time with everything else held at the user's selection — the ladder is anchored at the selection you passed, so its `anchor.monthly` is the carrier's `monthly`. It answers limit/deductible what-ifs with real marginal prices. Every ladder number IS an exact re-rate; a combined change or an unlisted rung has no derivable price (rating is not linear), so those price only through a re-call with the new `coverage_selection`. A profile what-if (a cleaner record, another vehicle, a different ZIP) prices the same way: re-call with the changed profile. RESULT FORMAT: compact machine text on `dense`, one section per line. Each section opens Q <state> <line> sel=<the coverage_selection priced, as JSON>. assumptions:, tighten_by:, input_flags: and not_rated: carry those fields; each entry's `field` (and each tighten_by item) is the profile path to send the user's answer under, and `incident_details` is answered by completing the incident entries already sent. not_priced: <carrier>,…:<reason> ; … is the line's `failures`, grouped by reason. skipped <line>,…: <message> names the lines not quoted in this state. Row types — C: carrier|entity|monthly|ci lo-hi, then |rated <axis>=<rung>(asked <X>,less|more);… when the price is for a rung other than the ask (`rated_vs_asked`). W: a warning on the carrier above. L: monthly $ per coverage line (already monthly, every carrier), under codes that mean the same coverage at every carrier: BI PD UMBI UIMBI UMPD MEDPAY PIP COLL COMP RENTAL TOWING GAP; A+B is one premium covering both (BI+PD); FEE is a flat fee; any other code is a coverage only that carrier sells. D <lever> <selected>=option:±$: the change in the carrier's monthly for each option of that lever, everything else held at the selection; <selected>(asked <X>) means X is not an option and the price sits at the selected rung — answer deductible/limit what-ifs from D without another call (new monthly = monthly + delta). Only state numbers that appear in the result or follow from monthly + a D delta; if a rung is not in D for a carrier, say the carrier has no such option rather than guessing. When the user wants firm numbers straight from the carriers, offer live carrier quotes: Foresee agents complete the carriers' real quote flows via live_carrier_quotes (which explains the required disclosure + consent affirmation; no sign-in is needed). Instant quotes stay the first answer; live quotes are the follow-up. LIVE TODAY: Foresee quotes auto in CA today.
Solo lectura
Esquema de entrada
{'type': 'object', '$defs': {'AutoAsk': {'type': 'object', 'title': 'AutoAsk', 'properties': {'bi': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Bi', 'default': None, 'description': 'Bodily-injury liability limit, per-person/per-accident in $000s, e.g. "100/300"'}, 'pd': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Pd', 'default': None, 'description': 'Property-damage liability limit in $000s, e.g. 100'}, 'um': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Um', 'default': None, 'description': 'Uninsured/underinsured-motorist BI limit in $000s, e.g. "100/300"'}, 'medpay': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Medpay', 'default': None, 'description': 'Medical-payments limit in dollars, e.g. 5000'}, 'coll_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coll Deductible', 'default': None, 'description': 'Collision deductible in dollars, e.g. 500'}, 'comp_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Comp Deductible', 'default': None, 'description': 'Comprehensive deductible in dollars, e.g. 500'}}, 'additionalProperties': True}, 'HomeAsk': {'type': 'object', 'title': 'HomeAsk', 'properties': {'coverage_a': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage A', 'default': None, 'description': "Dwelling limit in dollars â\x80\x94 the dwelling's replacement cost"}, 'coverage_e': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage E', 'default': None, 'description': 'Personal liability limit in dollars, e.g. 300000'}, 'coverage_f': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage F', 'default': None, 'description': 'Guest medical (medical payments to others) limit in dollars, e.g. 1000'}, 'aop_deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Aop Deductible', 'default': None, 'description': 'All-other-perils deductible in dollars, e.g. 1000'}}, 'additionalProperties': True}, 'AutoBlock': {'type': 'object', 'title': 'AutoBlock', 'properties': {'drivers': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/DriverInput'}, 'maxItems': 10}, {'type': 'null'}], 'title': 'Drivers', 'default': None}, 'vehicles': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/VehicleInput'}, 'maxItems': 10}, {'type': 'null'}], 'title': 'Vehicles', 'default': None}}, 'description': 'Omit it for a household without a car.', 'additionalProperties': True}, 'LossInput': {'type': 'object', 'title': 'LossInput', 'properties': {'on': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'On', 'default': None, 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'kind': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Kind', 'default': None, 'description': '"water", "fire", "theft", "wind/hail", "liability"â\x80¦'}, 'amount': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Amount', 'default': None, 'description': 'Paid out, dollars'}}, 'description': 'One prior property loss.', 'additionalProperties': True}, 'LinesInput': {'type': 'object', 'title': 'LinesInput', 'properties': {'auto': {'anyOf': [{'$ref': '#/$defs/AutoAsk'}, {'type': 'null'}], 'default': None}, 'home': {'anyOf': [{'$ref': '#/$defs/HomeAsk'}, {'type': 'null'}], 'default': None}, 'renters': {'anyOf': [{'$ref': '#/$defs/RentersAsk'}, {'type': 'null'}], 'default': None}}, 'description': 'The coverage to price, one entry per line.', 'additionalProperties': True}, 'RentersAsk': {'type': 'object', 'title': 'RentersAsk', 'properties': {'coverage_c': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage C', 'default': None, 'description': 'Personal-property (contents) limit in dollars, e.g. 30000'}, 'coverage_d': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage D', 'default': None, 'description': 'Loss-of-use limit in dollars'}, 'coverage_e': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage E', 'default': None, 'description': 'Personal liability limit in dollars, e.g. 100000'}, 'coverage_f': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Coverage F', 'default': None, 'description': 'Guest medical (medical payments to others) limit in dollars, e.g. 1000'}, 'deductible': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Deductible', 'default': None, 'description': 'All-perils deductible in dollars, e.g. 500'}}, 'additionalProperties': True}, 'DriverInput': {'type': 'object', 'title': 'DriverInput', 'properties': {'dob': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Dob', 'default': None, 'description': 'YYYY-MM-DD'}, 'gender': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Gender', 'default': None}, 'status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Status', 'default': None, 'description': "'licensed' (default) / 'permit' / 'not licensed' / 'excluded'"}, 'industry': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Industry', 'default': None}, 'relation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Relation', 'default': None, 'description': '"self" / "spouse" / "child" / "parent" / "other"'}, 'accidents': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/AccidentInput'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Accidents', 'default': None, 'description': 'Accidents, one entry each, e.g. [{"on": "2023-06-15", "at_fault": true, "amount": 4200}] â\x80\x94 every entry needs `on`. An empty list means none.'}, 'education': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Education', 'default': None, 'description': "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'"}, 'occupation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupation', 'default': None}, 'violations': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/ViolationInput'}, 'maxItems': 20}, {'type': 'null'}], 'title': 'Violations', 'default': None, 'description': 'Moving violations, one entry each, e.g. [{"on": "2025-01", "kind": "speeding"}] â\x80\x94 every entry needs `kind` and `on`. An empty list means a clean record.'}, 'rideshare_use': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Rideshare Use', 'default': None, 'description': 'Drives for ride-share or delivery'}, 'sr22_required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Sr22 Required', 'default': None}, 'marital_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Marital Status', 'default': None}, 'years_licensed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Years Licensed', 'default': None, 'description': 'Years since first licensed'}, 'exclusion_reason': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Exclusion Reason', 'default': None}, 'employment_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Employment Status', 'default': None, 'description': "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'"}, 'age_first_licensed': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Age First Licensed', 'default': None, 'description': 'Age when first licensed'}, 'date_first_licensed': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Date First Licensed', 'default': None, 'description': 'YYYY-MM-DD; alternative to age_first_licensed'}, 'defensive_driving_course': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Defensive Driving Course', 'default': None, 'description': 'Completed a defensive-driving course in the last 3 years'}}, 'description': 'One driver on the policy. The applicant is the driver with relation\n"self"; any of their details restated here must match the profile\'s top\nlevel.', 'additionalProperties': True}, 'QuoteProfile': {'type': 'object', 'title': 'QuoteProfile', 'required': ['zip_code'], 'properties': {'age': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Age', 'default': None, 'description': "REQUIRED unless dob is passed. If the user was vague ('mid-20s'), pass a concrete age and present it as your assumption."}, 'dob': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Dob', 'default': None, 'description': 'YYYY-MM-DD; alternative to age'}, 'auto': {'anyOf': [{'$ref': '#/$defs/AutoBlock'}, {'type': 'null'}], 'default': None}, 'city': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'City', 'default': None}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'state': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'State', 'default': None, 'description': 'Two-letter code; derived from zip_code when omitted'}, 'gender': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Gender', 'default': None}, 'industry': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Industry', 'default': None}, 'property': {'anyOf': [{'$ref': '#/$defs/PropertyBlock'}, {'type': 'null'}], 'default': None}, 'zip_code': {'type': 'string', 'title': 'Zip Code', 'maxLength': 200, 'description': "REQUIRED â\x80\x94 5-digit garaging/home ZIP. ALWAYS pass the ZIP here, never under another key. If the user named only a city, pass that city's best-known ZIP and tell them the assumption."}, 'education': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Education', 'default': None, 'description': "Highest education level: 'No High School' / 'High School' / 'Vocational' / 'Some College' / 'Associate' / 'Bachelors' / 'Masters' / 'Doctorate'"}, 'occupation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupation', 'default': None}, 'memberships': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 200}}, {'type': 'null'}], 'title': 'Memberships', 'default': None, 'description': "Organizations the applicant belongs to, e.g. ['Costco', 'AAA']"}, 'credit_range': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Credit Range', 'default': None, 'description': "'Excellent' / 'Good' / 'Fair' / 'Poor' â\x80\x94 omit it in CA, HI, MA and MI"}, 'effective_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Effective Date', 'default': None, 'description': 'Policy start date, YYYY-MM-DD'}, 'marital_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Marital Status', 'default': None, 'description': "'Single' / 'Married' / â\x80¦"}, 'residence_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Residence Type', 'default': None, 'description': "'House' / 'Apartment' / 'Condominium' / 'Manufactured Home' / â\x80¦"}, 'street_address': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Street Address', 'default': None}, 'prior_insurance': {'anyOf': [{'$ref': '#/$defs/PriorInsuranceInput'}, {'type': 'null'}], 'default': None}, 'employment_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Employment Status', 'default': None, 'description': "'Employed' / 'Self-Employed' / 'Retired' / 'Student' / 'Unemployed'"}, 'companion_policies': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/HeldPolicyInput'}}, {'type': 'null'}], 'title': 'Companion Policies', 'default': None, 'description': 'Policies the household already holds, e.g. [{"line": "home", "carrier": "State Farm"}]'}, 'months_at_residence': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Months At Residence', 'default': None}, 'military_affiliation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Military Affiliation', 'default': None, 'description': "'active' / 'veteran' / 'family' / 'none'"}, 'home_ownership_status': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Home Ownership Status', 'default': None, 'description': "'rent' / 'own with mortgage' / 'own outright' â\x80\x94 bare 'own' is accepted"}}, 'description': "The household being quoted: the people and where they live, plus an\n`auto` block (drivers and vehicles) and a `property` block (the\ndwelling). REQUIRED: the ZIP, the applicant's age (or dob) and, for auto,\neach vehicle's year/make/model â\x80\x94 when the user was vague, pass a concrete\nvalue and tell them. Everything else is optional; omissions come back as\n`assumptions`.", 'additionalProperties': True}, 'VehicleInput': {'type': 'object', 'title': 'VehicleInput', 'properties': {'vin': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Vin', 'default': None}, 'cost': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Cost', 'default': None, 'description': 'Cost new, whole dollars'}, 'make': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Make', 'default': None}, 'trim': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Trim', 'default': None}, 'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year', 'default': None}, 'model': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Model', 'default': None}, 'ownership': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Ownership', 'default': None, 'description': "'owned' / 'financed' / 'leased'"}, 'anti_theft': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Anti Theft', 'default': None, 'description': "'alarm' / 'active_disable' / 'passive_disable' / 'recovery_device'"}, 'body_style': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Body Style', 'default': None, 'description': 'Trim / body style, e.g. "XLT AWD 4D GAS"'}, 'bought_new': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Bought New', 'default': None}, 'primary_use': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Primary Use', 'default': None, 'description': "'Personal' / 'Commute' / 'Business'"}, 'commute_days': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Commute Days', 'default': None, 'description': 'Commute days per week'}, 'garaging_zip': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Garaging Zip', 'default': None, 'description': 'ZIP where this vehicle is kept, when different from zip_code'}, 'one_way_miles': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'One Way Miles', 'default': None, 'description': 'One-way commute distance, miles'}, 'purchase_date': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Purchase Date', 'default': None, 'description': 'When bought: YYYY, YYYY-MM or YYYY-MM-DD'}, 'annual_mileage': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Annual Mileage', 'default': None}, 'anti_lock_brakes': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Anti Lock Brakes', 'default': None}, 'daytime_running_lights': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Daytime Running Lights', 'default': None}}, 'description': 'One vehicle on the policy.', 'additionalProperties': True}, 'AccidentInput': {'type': 'object', 'title': 'AccidentInput', 'required': ['on'], 'properties': {'on': {'type': 'string', 'title': 'On', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$', 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'amount': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Amount', 'default': None, 'description': 'Damage paid out, dollars'}, 'at_fault': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'At Fault', 'default': None}}, 'additionalProperties': True}, 'PropertyBlock': {'type': 'object', 'title': 'PropertyBlock', 'properties': {'units': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Units', 'default': None, 'description': 'Number of families the building holds'}, 'garage': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Garage', 'default': None, 'description': "'attached 2 car' / 'detached 1 car' / 'carport' / 'none'â\x80¦"}, 'losses': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/LossInput'}}, {'type': 'null'}], 'title': 'Losses', 'default': None, 'description': 'Prior property losses, each dated. [] means none; omit if unknown'}, 'devices': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 200}}, {'type': 'null'}], 'title': 'Devices', 'default': None, 'description': "Protective devices in the home: 'smoke alarm', 'deadbolts', 'fire extinguisher', 'central burglar alarm', 'sprinklers'â\x80¦ ['None'] means asked-and-none; omit the field if never asked"}, 'stories': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Stories', 'default': None}, 'bathrooms': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Bathrooms', 'default': None}, 'household': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Household', 'default': None, 'description': 'Number of people living in the home'}, 'occupancy': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Occupancy', 'default': None, 'description': "'owner occupied' / 'tenant occupied' / 'seasonal' / 'vacant'"}, 'purchased': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Purchased', 'default': None, 'description': 'When the home was bought: YYYY, YYYY-MM or YYYY-MM-DD'}, 'roof_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Roof Type', 'default': None, 'description': "'composition shingle' / 'tile' / 'metal'â\x80¦"}, 'roof_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Roof Year', 'default': None, 'description': 'Year the roof was last replaced'}, 'foundation': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Foundation', 'default': None, 'description': "'slab' / 'raised' / 'basement' / 'crawlspace'â\x80¦"}, 'year_built': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year Built', 'default': None}, 'roof_layers': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Roof Layers', 'default': None}, 'square_feet': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Square Feet', 'default': None}, 'swimming_pool': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Swimming Pool', 'default': None}, 'protection_class': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Protection Class', 'default': None, 'description': 'ISO fire protection class, 1-10'}, 'replacement_cost': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Replacement Cost', 'default': None, 'description': 'Dwelling replacement cost estimate, dollars'}, 'seismic_retrofit': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Seismic Retrofit', 'default': None, 'description': 'Whether the home has been seismically retrofitted'}, 'construction_type': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Construction Type', 'default': None, 'description': "'frame' / 'masonry' / 'masonry veneer'â\x80¦"}, 'miles_to_fire_station': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Miles To Fire Station', 'default': None}, 'renovation_permit_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Renovation Permit Year', 'default': None, 'description': 'Year of the last permitted plumbing, electrical, heating or roof work'}}, 'description': 'The dwelling, for home and renters.', 'additionalProperties': True}, 'ViolationInput': {'type': 'object', 'title': 'ViolationInput', 'required': ['on', 'kind'], 'properties': {'on': {'type': 'string', 'title': 'On', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$', 'description': 'When it happened: YYYY, YYYY-MM or YYYY-MM-DD'}, 'kind': {'type': 'string', 'title': 'Kind', 'maxLength': 200, 'minLength': 1, 'description': 'The violation in plain words: "speeding", "DUI", "reckless driving", "running a red light"â\x80¦'}}, 'description': 'One moving violation.', 'additionalProperties': True}, 'HeldPolicyInput': {'type': 'object', 'title': 'HeldPolicyInput', 'required': ['line'], 'properties': {'line': {'type': 'string', 'title': 'Line', 'maxLength': 200, 'description': 'What the policy insures: "home", "renters", "condo", "auto", "life", "umbrella"â\x80¦'}, 'carrier': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Carrier', 'default': None, 'description': 'Who writes it, e.g. "State Farm"'}, 'in_force': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'In Force', 'default': None}}, 'description': 'A policy the household already holds.', 'additionalProperties': True}, 'PriorInsuranceInput': {'type': 'object', 'title': 'PriorInsuranceInput', 'properties': {'since': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Since', 'default': None, 'description': 'Start date: YYYY, YYYY-MM or YYYY-MM-DD'}, 'until': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}(?:-\\d{2}){0,2}$'}, {'type': 'null'}], 'title': 'Until', 'default': None, 'description': 'End date: YYYY, YYYY-MM or YYYY-MM-DD; omit while in force'}, 'carrier': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Carrier', 'default': None}, 'insured': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Insured', 'default': None}}, 'description': 'The insurance carried now.', 'additionalProperties': True}}, 'title': 'quote_insuranceArguments', 'required': ['profile', 'lines'], 'properties': {'lines': {'$ref': '#/$defs/LinesInput', 'type': 'object'}, 'profile': {'$ref': '#/$defs/QuoteProfile', 'type': 'object'}, 'carriers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Carriers', 'default': None, 'description': 'Price only these carriers, named by the `carrier_key` results carry (e.g. ["geico", "statefarm"]). Omit to price every carrier Foresee supports; a named carrier Foresee can\'t price comes back in `failures`.'}, 'include_failures': {'type': 'boolean', 'title': 'Include Failures', 'default': True, 'description': "Report each carrier Foresee couldn't price under `failures`, with the reason. Leave true unless the user asked to see priced carriers only."}}}
Esquema de salida
{'type': 'object', '$defs': {'SkippedLines': {'type': 'object', 'title': 'SkippedLines', 'required': ['lines', 'message'], 'properties': {'lines': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Lines'}, 'message': {'type': 'string', 'title': 'Message'}}, 'additionalProperties': True}, 'BundleSummary': {'type': 'object', 'title': 'BundleSummary', 'properties': {'lines': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Lines', 'default': None}, 'savings': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Savings', 'default': None}, 'bundle_total': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Bundle Total', 'default': None}, 'standalone_total': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Standalone Total', 'default': None}}, 'additionalProperties': True}, 'LineQuoteSummary': {'type': 'object', 'title': 'LineQuoteSummary', 'properties': {'carriers': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/CarrierQuoteSummary'}}, {'type': 'null'}], 'title': 'Carriers', 'default': None}, 'failures': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Failures', 'default': None}, 'not_rated': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Not Rated', 'default': None}, 'tighten_by': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Tighten By', 'default': None}, 'assumptions': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Assumptions', 'default': None}, 'input_flags': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Input Flags', 'default': None}, 'coverage_selection': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Coverage Selection', 'default': None}}, 'additionalProperties': True}, 'CarrierQuoteSummary': {'type': 'object', 'title': 'CarrierQuoteSummary', 'properties': {'carrier': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Carrier', 'default': None}, 'monthly': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Monthly', 'default': None}, 'warnings': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Warnings', 'default': None}, 'carrier_key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Carrier Key', 'default': None}, 'rated_vs_asked': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, {'type': 'null'}], 'title': 'Rated Vs Asked', 'default': None}, 'carrier_quote_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Carrier Quote Url', 'default': None}, 'confidence_interval': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Confidence Interval', 'default': None}}, 'additionalProperties': True}}, 'title': 'QuoteToolResult', 'properties': {'dense': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Dense', 'default': None}, 'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Error', 'default': None}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'State', 'default': None}, 'bundle': {'anyOf': [{'type': 'object', 'additionalProperties': {'$ref': '#/$defs/BundleSummary'}}, {'type': 'null'}], 'title': 'Bundle', 'default': None}, 'detail': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Detail', 'default': None}, 'by_line': {'anyOf': [{'type': 'object', 'additionalProperties': {'$ref': '#/$defs/LineQuoteSummary'}}, {'type': 'null'}], 'title': 'By Line', 'default': None}, 'message': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'skipped': {'anyOf': [{'$ref': '#/$defs/SkippedLines'}, {'type': 'null'}], 'default': None}, 'serviceable': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Serviceable', 'default': None}, 'presentation': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Presentation', 'default': None}, 'profile_required': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Profile Required', 'default': None}, 'coverage_required': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Coverage Required', 'default': None}, 'example_arguments': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Example Arguments', 'default': None}}, 'additionalProperties': True}
Modificado
live_carrier_quotes
2 de October de 2026 a las 02:41
Modificado
quote_insurance
2 de October de 2026 a las 02:41
Modificado
live_carrier_quotes
30 de September de 2026 a las 02:40
Modificado
quote_insurance
30 de September de 2026 a las 02:40
Añadido
live_carrier_quotes
26 de September de 2026 a las 02:40
Añadido
quote_insurance
26 de September de 2026 a las 02:40