Compare US car, home and renters insurance quotes with Jerry. Sign-in required; buy in the app.
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.
Read the name, email and phone on the customer's Jerry account, and whether the phone is verified. It doesn't verify an email or change any insurance information.
This tool takes no arguments.
Read the name, email and phone on the customer's Jerry account, and whether the phone is verified. It doesn't verify an email or change any insurance information.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}List every quote for a shopping intent, cheapest first by monthly price (in USD cents); each policy has a coverageSummary. Pass up to 4 bundleIds to also get their coverages, discounts and payment plans, for example to compare them. Prices are estimates until priceStatus is final. Declined quotes are left out and counted in declinedCount. It doesn't request quotes.
| Argument | Type | Description |
|---|---|---|
| intentId* | string | The shopping intent id returned by an earlier shopping tool. |
| bundleIds | array | Up to 4 bundle ids to return with coverages, discounts and payment plans. Omit to list every quote. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentId"
],
"properties": {
"intentId": {
"type": "string",
"description": "The shopping intent id returned by an earlier shopping tool."
},
"bundleIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 4 bundle ids to return with coverages, discounts and payment plans. Omit to list every quote."
}
},
"additionalProperties": false
}Read where the customer's insurance shopping stands: the stage, what the current goal still needs (by application path), a summary of the application, what Jerry found that isn't on the application yet (suggested) and, when a request is ready, the confirmation to show. It doesn't change anything.
| Argument | Type | Description |
|---|---|---|
| full | boolean | Include every typed application fact by application path, with sensitive values masked. |
| intentId | string | The shopping intent id returned by an earlier shopping tool. Omit it to read the customer's most recent open intent. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"full": {
"type": "boolean",
"description": "Include every typed application fact by application path, with sensitive values masked."
},
"intentId": {
"type": "string",
"description": "The shopping intent id returned by an earlier shopping tool. Omit it to read the customer's most recent open intent."
}
},
"additionalProperties": false
}Get the final price of the quote the customer chose. Call it first with bundleId only: that selects the quote and returns the status, which may list what the final price still needs, then a confirmation. After the customer says yes to that confirmation, call again with its token and the customer's exact reply. Nothing is requested unless requested comes back true.
| Argument | Type | Description |
|---|---|---|
| bundleId* | string | The bundleId of the chosen quote. |
| intentId* | string | The shopping intent id returned by an earlier shopping tool. |
| confirmation | object | Omit on the first call, which selects the quote and returns the confirmation to show. |
| idempotencyKey* | string | Unique key for safely retrying this customer action |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentId",
"bundleId",
"idempotencyKey"
],
"properties": {
"bundleId": {
"type": "string",
"description": "The bundleId of the chosen quote."
},
"intentId": {
"type": "string",
"description": "The shopping intent id returned by an earlier shopping tool."
},
"confirmation": {
"type": "object",
"required": [
"token",
"customerReply"
],
"properties": {
"token": {
"type": "string",
"description": "The status confirmation's token; a changed fact makes it stale."
},
"customerReply": {
"type": "string",
"maxLength": 1000,
"description": "The customer's exact reply."
}
},
"description": "Omit on the first call, which selects the quote and returns the confirmation to show.",
"additionalProperties": true
},
"idempotencyKey": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Unique key for safely retrying this customer action"
}
},
"additionalProperties": false
}Request quotes. Every request needs the confirmation from the status: show its summary, get the customer's explicit yes, then pass its token and their exact reply. Nothing is requested unless requested comes back true; reason says why not, and status is the intent after the call. On stale_confirmation the facts changed: show the new confirmation and ask again.
| Argument | Type | Description |
|---|---|---|
| intentId* | string | The shopping intent id returned by an earlier shopping tool. |
| confirmation* | object | |
| idempotencyKey* | string | Unique key for safely retrying this customer action |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentId",
"confirmation",
"idempotencyKey"
],
"properties": {
"intentId": {
"type": "string",
"description": "The shopping intent id returned by an earlier shopping tool."
},
"confirmation": {
"type": "object",
"required": [
"token",
"customerReply"
],
"properties": {
"token": {
"type": "string",
"description": "The status confirmation's token; a changed fact makes it stale."
},
"customerReply": {
"type": "string",
"maxLength": 1000,
"description": "The customer's exact reply."
}
},
"additionalProperties": true
},
"idempotencyKey": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Unique key for safely retrying this customer action"
}
},
"additionalProperties": false
}Start shopping for the insurance products the customer asked for. If a shopping intent for exactly these products is already open, it resumes that one. Pass the main facts you already know in application, so the status asks only for the rest. application takes the main fields only: send any other fact with jerry_update_application right after. Returns the status, with rejected and clarify. When a fact comes from anything other than the customer, sources says where, and permission holds the customer's reply allowing it.
| Argument | Type | Description |
|---|---|---|
| sources | array | Where these facts come from; defaults to ['customer']. |
| permission | object | Required once when sources include anything but customer. |
| application | object | The main facts the agent already knows, saved in the same call so the first status asks only for the rest. Send other facts with updateShoppingIntentApplication. |
| policyTypes* | array | Products to shop for. |
| idempotencyKey* | string | Unique key for safely retrying this customer action |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"policyTypes",
"idempotencyKey"
],
"properties": {
"sources": {
"type": "array",
"items": {
"enum": [
"customer",
"document",
"financial_accounts"
],
"type": "string"
},
"description": "Where these facts come from; defaults to ['customer']."
},
"permission": {
"type": "object",
"required": [
"customerReply"
],
"properties": {
"customerReply": {
"type": "string",
"maxLength": 1000,
"description": "The customer's exact reply."
}
},
"description": "Required once when sources include anything but customer.",
"additionalProperties": true
},
"application": {
"type": "object",
"properties": {
"homes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"address": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP code."
},
"city": {
"type": "string"
},
"text": {
"type": "string",
"description": "The whole address as one line, e.g. \"123 Main St Apt 4, Austin TX 78701\"."
},
"unit": {
"type": "string",
"description": "Apartment or unit."
},
"state": {
"type": "string",
"description": "Two-letter state code."
},
"street": {
"type": "string"
},
"confirmation": {
"type": "string",
"description": "From an address_unverified clarify, once the customer confirms that address."
}
},
"additionalProperties": true
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"occupancy": {
"enum": [
"Owner",
"Secondary Home",
"Renter",
"Vacant"
],
"type": "string"
},
"yearBuilt": {
"type": "number"
},
"squareFeet": {
"type": "number"
}
},
"additionalProperties": true
},
"maxItems": 3
},
"drivers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"name": {
"type": "string",
"maxLength": 100
},
"gender": {
"enum": [
"Male",
"Female"
],
"type": "string"
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"occupation": {
"type": "string",
"maxLength": 100,
"description": "Job in plain words, e.g. \"nurse\", or a candidate value from clarify."
},
"dateOfBirth": {
"type": "string",
"description": "YYYY-MM-DD."
},
"licenseState": {
"type": "string",
"description": "Two-letter state code."
},
"relationship": {
"enum": [
"Child",
"Domestic Partner",
"Employee",
"Insured",
"Other",
"Parent",
"Relative",
"Spouse",
"Roommate"
],
"type": "string"
},
"maritalStatus": {
"enum": [
"Single",
"Married",
"Domestic Partner",
"Widowed",
"Separated",
"Divorced"
],
"type": "string"
},
"ageFirstLicensed": {
"type": "number"
}
},
"additionalProperties": true
},
"maxItems": 8
},
"history": {
"type": "object",
"properties": {
"insuredFor": {
"enum": [
"LessThanSixMonths",
"SixToTwelveMonths",
"OneToThreeYears",
"ThreeToFiveYears",
"MoreThanFiveYears"
],
"type": "string",
"description": "How long continuously insured."
},
"currentCarrier": {
"type": "string",
"description": "Current auto insurer name, e.g. \"GEICO\"."
},
"currentlyInsured": {
"type": "boolean",
"description": "Has auto insurance now."
},
"notInsuredReason": {
"enum": [
"expired_last_30_days",
"driving_with_no_insurance",
"did_not_own_vehicle",
"did_not_drive_6_months",
"other"
],
"type": "string"
}
},
"additionalProperties": true
},
"customer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Full legal name."
},
"email": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP code."
},
"city": {
"type": "string"
},
"text": {
"type": "string",
"description": "The whole address as one line, e.g. \"123 Main St Apt 4, Austin TX 78701\"."
},
"unit": {
"type": "string",
"description": "Apartment or unit."
},
"state": {
"type": "string",
"description": "Two-letter state code."
},
"street": {
"type": "string"
},
"confirmation": {
"type": "string",
"description": "From an address_unverified clarify, once the customer confirms that address."
}
},
"description": "Home address, where the vehicles are kept.",
"additionalProperties": true
},
"dateOfBirth": {
"type": "string",
"description": "YYYY-MM-DD."
}
},
"additionalProperties": true
},
"vehicles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"vin": {
"type": "string",
"description": "17-character VIN; sets year, make and model."
},
"make": {
"type": "string",
"maxLength": 50
},
"year": {
"type": "string",
"description": "YYYY."
},
"model": {
"type": "string",
"maxLength": 50
},
"usage": {
"enum": [
"Business Use",
"Work Commute",
"Farm Use",
"Farm Business Use",
"Pleasure",
"Off-road"
],
"type": "string"
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"ownership": {
"enum": [
"Owned",
"Lien",
"Leased"
],
"type": "string"
},
"licensePlate": {
"type": "string",
"description": "With licensePlateState; sets year, make and model."
},
"annualMileage": {
"type": "number",
"description": "Miles per year, e.g. 10 miles a day is 3650."
},
"licensePlateState": {
"type": "string",
"description": "Two-letter state code."
}
},
"additionalProperties": true
},
"maxItems": 8
},
"startDates": {
"type": "object",
"properties": {
"car": {
"type": "string",
"description": "YYYY-MM-DD."
},
"home": {
"type": "string",
"description": "YYYY-MM-DD."
},
"motorcycle": {
"type": "string",
"description": "YYYY-MM-DD."
}
},
"additionalProperties": true
},
"motorcycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"vin": {
"type": "string"
},
"make": {
"type": "string",
"maxLength": 50
},
"year": {
"type": "string",
"description": "YYYY."
},
"model": {
"type": "string",
"maxLength": 50
},
"engineCc": {
"type": "string",
"description": "Engine size in cc."
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
}
},
"additionalProperties": true
},
"maxItems": 8
}
},
"description": "The main facts the agent already knows, saved in the same call so the first status asks only for the rest. Send other facts with updateShoppingIntentApplication.",
"additionalProperties": true
},
"policyTypes": {
"type": "array",
"items": {
"enum": [
"car",
"home",
"renter",
"condo",
"townhouse",
"motorcycle",
"named_non_owner"
],
"type": "string"
},
"description": "Products to shop for."
},
"idempotencyKey": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Unique key for safely retrying this customer action"
}
},
"additionalProperties": false
}Save application facts the customer gave, in their own words. Every field is optional and merges into what's saved, so send only facts that are new or changed. - Items with an id update that driver, car or home; items without one are added. included puts an item on the quote or leaves it off. - Add a car by vin, by licensePlate and licensePlateState, or by year, make and model. Send year, make and model only when there's no VIN or plate, since those set them. A final price needs the VIN. - Answer any other requirement in answers, by its path. A fact that has its own field here comes back rejected as typed_field if it's sent in answers. - coverage and history.currentMonthlyPremiumCents are optional and never block quotes. Send them only when the customer asks for a coverage level or specific coverages, or says what they pay now. - Drivers and cars Jerry found are in the status's suggested list, each with an id that starts with suggested:. Once the customer confirms one, send that id in drivers or vehicles with included: true. Returns the status, with suggested. rejected lists values to correct with the customer, and clarify lists values to choose from. The rest of the write is saved either way.
| Argument | Type | Description |
|---|---|---|
| sources | array | Where these facts come from; defaults to ['customer']. |
| intentId* | string | The shopping intent id returned by an earlier shopping tool. |
| permission | object | Required once when sources include anything but customer. |
| application* | object | |
| idempotencyKey* |
Wait for quotes or a final price after requesting them. Returns as soon as they're ready, or after timeoutSeconds with the status so far; call again while they're still running. When quotes are ready, it returns the quote list too. A final price is ready once it's resolved. If a Jerry agent takes it over (manual) or it's taking longer than usual (delayed), the wait stops with that reason, and the status's nextStep says what happens next. Calling again on a delayed price keeps waiting.
| Argument | Type | Description |
|---|---|---|
| for* | string | quotes after jerry_request_quotes; final_price after jerry_request_final_price requested it. |
| intentId* | string | The shopping intent id returned by an earlier shopping tool. |
| timeoutSeconds | integer | Longest time to wait, in seconds; default 20, at most 20. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentId",
"for"
],
"properties": {
"for": {
"enum": [
"quotes",
"final_price"
],
"type": "string",
"description": "quotes after jerry_request_quotes; final_price after jerry_request_final_price requested it."
},
"intentId": {
"type": "string",
"minLength": 1,
"description": "The shopping intent id returned by an earlier shopping tool."
},
"timeoutSeconds": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Longest time to wait, in seconds; default 20, at most 20."
}
},
"additionalProperties": false
}| string |
| Unique key for safely retrying this customer action |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentId",
"application",
"idempotencyKey"
],
"properties": {
"sources": {
"type": "array",
"items": {
"enum": [
"customer",
"document",
"financial_accounts"
],
"type": "string"
},
"description": "Where these facts come from; defaults to ['customer']."
},
"intentId": {
"type": "string",
"description": "The shopping intent id returned by an earlier shopping tool."
},
"permission": {
"type": "object",
"required": [
"customerReply"
],
"properties": {
"customerReply": {
"type": "string",
"maxLength": 1000,
"description": "The customer's exact reply."
}
},
"description": "Required once when sources include anything but customer.",
"additionalProperties": true
},
"application": {
"type": "object",
"properties": {
"homes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"address": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP code."
},
"city": {
"type": "string"
},
"text": {
"type": "string",
"description": "The whole address as one line, e.g. \"123 Main St Apt 4, Austin TX 78701\"."
},
"unit": {
"type": "string",
"description": "Apartment or unit."
},
"state": {
"type": "string",
"description": "Two-letter state code."
},
"street": {
"type": "string"
},
"confirmation": {
"type": "string",
"description": "From an address_unverified clarify, once the customer confirms that address."
}
},
"additionalProperties": true
},
"hasDogs": {
"type": "boolean"
},
"stories": {
"type": "string",
"description": "Use the requirement's options."
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"dogBreeds": {
"type": "array",
"items": {
"enum": [
"Akita",
"AmericanBulldog",
"CaneCorso",
"Chow",
"Dingo",
"Doberman",
"Gshepard",
"PitBull",
"Mastiffs",
"Great Danes",
"Malamute",
"Presa Canarios",
"StaffordshireTerrie",
"Rottweiler",
"WolfHybrid",
"Husky",
"SaintBernard"
],
"type": "string"
},
"description": "Listed breeds only; empty when none."
},
"isClosing": {
"type": "boolean",
"description": "Still closing on the purchase."
},
"isInsured": {
"type": "boolean"
},
"occupancy": {
"enum": [
"Owner",
"Secondary Home",
"Renter",
"Vacant"
],
"type": "string"
},
"yearBuilt": {
"type": "number"
},
"hasDaycare": {
"type": "boolean"
},
"squareFeet": {
"type": "number"
},
"hasBusiness": {
"type": "boolean"
},
"hasMortgage": {
"type": "boolean"
},
"wiringTypes": {
"type": "array",
"items": {
"enum": [
"FuseBox",
"KnobAndTubeWiring",
"ElectricalServiceUnder100Amps",
"AluminumWiring"
],
"type": "string"
},
"description": "Empty when none apply."
},
"dwellingType": {
"type": "string",
"description": "Use the requirement's options."
},
"hasFireAlarm": {
"enum": [
"None",
"Local",
"Central",
"Direct"
],
"type": "string"
},
"hasSprinkler": {
"enum": [
"None",
"Partial",
"Full"
],
"type": "string"
},
"purchaseDate": {
"type": "string",
"description": "YYYY-MM-DD."
},
"roofMaterial": {
"type": "string",
"description": "Use the requirement's options."
},
"hasTrampoline": {
"type": "boolean"
},
"plumbingTypes": {
"type": "array",
"items": {
"enum": [
"CastIron",
"Galvanized",
"Polybutylene"
],
"type": "string"
},
"description": "Empty when none apply."
},
"hasBurglarAlarm": {
"enum": [
"None",
"Local",
"Central",
"Direct"
],
"type": "string"
},
"hasSwimmingPool": {
"type": "boolean"
},
"roofUpdatedYear": {
"type": "number"
},
"inGatedCommunity": {
"type": "boolean"
},
"notInsuredReason": {
"enum": [
"new_purchase",
"expired_last_30_days",
"expired_over_30_days",
"owner_without_insurance",
"other"
],
"type": "string"
},
"swimmingPoolType": {
"enum": [
"Above Ground with Slide",
"Above Ground without Slide",
"In Ground with Slide",
"In Ground without Slide",
"Indoor"
],
"type": "string"
},
"hasDogBiteHistory": {
"type": "boolean"
},
"isSwimmingPoolFenced": {
"type": "boolean"
},
"hasExoticOrFarmAnimals": {
"type": "boolean"
}
},
"additionalProperties": true
},
"maxItems": 3
},
"answers": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"value"
],
"properties": {
"path": {
"type": "string",
"description": "The requirement's path, as status returned it."
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "One of the requirement's options, by value or label (true or false for yes/no), or a list for a multi-select."
}
},
"additionalProperties": true
},
"maxItems": 50,
"description": "Answers to requirements not typed above."
},
"drivers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"name": {
"type": "string",
"maxLength": 100
},
"gender": {
"enum": [
"Male",
"Female"
],
"type": "string"
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"education": {
"enum": [
"No High School Diploma",
"High School Diploma",
"Some College - No Degree",
"Vocational/Technical Degree",
"Associates Degree",
"Bachelors",
"Masters",
"Phd",
"Medical Degree",
"Law Degree"
],
"type": "string"
},
"occupation": {
"type": "string",
"maxLength": 100,
"description": "Job in plain words, e.g. \"nurse\", or a candidate value from clarify."
},
"dateOfBirth": {
"type": "string",
"description": "YYYY-MM-DD."
},
"goodStudent": {
"type": "boolean"
},
"licenseState": {
"type": "string",
"description": "Two-letter state code."
},
"relationship": {
"enum": [
"Child",
"Domestic Partner",
"Employee",
"Insured",
"Other",
"Parent",
"Relative",
"Spouse",
"Roommate"
],
"type": "string"
},
"sr22Required": {
"type": "boolean"
},
"licenseNumber": {
"type": "string"
},
"licenseStatus": {
"enum": [
"Valid",
"Permit",
"Expired",
"Suspended",
"Cancelled",
"Not Licensed",
"Permanently Revoked",
"State ID"
],
"type": "string"
},
"maritalStatus": {
"enum": [
"Single",
"Married",
"Domestic Partner",
"Widowed",
"Separated",
"Divorced"
],
"type": "string"
},
"excludedReason": {
"enum": [
"Insured Elsewhere",
"License Suspended/Revoked",
"Never Licensed",
"Away at School",
"Military Deployed Overseas",
"Out of Country",
"Moved Out",
"Unknown Person"
],
"type": "string",
"description": "Why a household member is not rated."
},
"ageFirstLicensed": {
"type": "number"
},
"ridesOffRoadOnly": {
"type": "boolean"
},
"completedDriverTraining": {
"type": "boolean",
"description": "Completed a driver safety course."
},
"hasMotorcycleEndorsement": {
"type": "boolean"
},
"motorcycleEndorsementYear": {
"type": "string",
"description": "YYYY."
},
"motorcycleYearsExperience": {
"type": "number"
},
"completedMotorcycleSafetyCourse": {
"type": "boolean"
}
},
"additionalProperties": true
},
"maxItems": 8
},
"history": {
"type": "object",
"properties": {
"claims5y": {
"type": "boolean",
"description": "Any claim in the last 5 years."
},
"insuredFor": {
"enum": [
"LessThanSixMonths",
"SixToTwelveMonths",
"OneToThreeYears",
"ThreeToFiveYears",
"MoreThanFiveYears"
],
"type": "string",
"description": "How long continuously insured."
},
"creditRange": {
"enum": [
"LessThan550",
"Between550and659",
"Between660and750",
"MoreThan750",
"NotSure"
],
"type": "string"
},
"currentCarrier": {
"type": "string",
"description": "Current auto insurer name, e.g. \"GEICO\"."
},
"violationsCount": {
"enum": [
"None",
"OneToTwo",
"ThreeToFour",
"FiveOrMore",
"DoNotRemember"
],
"type": "string",
"description": "Violations in the last 3 years."
},
"currentlyInsured": {
"type": "boolean",
"description": "Has auto insurance now."
},
"notInsuredReason": {
"enum": [
"expired_last_30_days",
"driving_with_no_insurance",
"did_not_own_vehicle",
"did_not_drive_6_months",
"other"
],
"type": "string"
},
"motorcycleInsuredFor": {
"enum": [
"LessThanOneYear",
"OneYear",
"TwoToThreeYears",
"FourToSixYears",
"MoreThanSevenYears"
],
"type": "string"
},
"hadMotorcycleInsurance": {
"type": "boolean"
},
"currentMonthlyPremiumCents": {
"type": "number",
"description": "Car insurance paid now, per month in USD cents; quotes then show savings."
},
"motorcycleCurrentlyInsured": {
"type": "boolean"
}
},
"additionalProperties": true
},
"coverage": {
"type": "object",
"properties": {
"plan": {
"enum": [
"Basic plan",
"Basic + full coverage",
"Standard plan",
"Preferred plan",
"Custom plan"
],
"type": "string",
"description": "Basic plan: state-minimum liability; Basic + full coverage: adds $1,000 comprehensive and collision; Standard plan: 50/100, $1,000 deductibles, towing, rental; Preferred plan: 100/300, $500 deductibles; Custom plan: the values under items and perAssetItems. Custom values start from the pre-made plan sent here, else the round's."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value",
"type"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"car"
],
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "Whole-policy values, e.g. BI"
},
"perAssetItems": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"items"
],
"properties": {
"id": {
"type": "string",
"description": "A car's id."
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"description": "Per car, e.g. CollisionDeductible"
}
},
"additionalProperties": true
},
"customer": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"description": "Full legal name."
},
"email": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP code."
},
"city": {
"type": "string"
},
"text": {
"type": "string",
"description": "The whole address as one line, e.g. \"123 Main St Apt 4, Austin TX 78701\"."
},
"unit": {
"type": "string",
"description": "Apartment or unit."
},
"state": {
"type": "string",
"description": "Two-letter state code."
},
"street": {
"type": "string"
},
"confirmation": {
"type": "string",
"description": "From an address_unverified clarify, once the customer confirms that address."
}
},
"description": "Home address, where the vehicles are kept.",
"additionalProperties": true
},
"dateOfBirth": {
"type": "string",
"description": "YYYY-MM-DD."
},
"trackDriving": {
"type": "boolean",
"description": "false: no driving tracking."
},
"previousAddress": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP code."
},
"city": {
"type": "string"
},
"text": {
"type": "string",
"description": "The whole address as one line, e.g. \"123 Main St Apt 4, Austin TX 78701\"."
},
"unit": {
"type": "string",
"description": "Apartment or unit."
},
"state": {
"type": "string",
"description": "Two-letter state code."
},
"street": {
"type": "string"
},
"confirmation": {
"type": "string",
"description": "From an address_unverified clarify, once the customer confirms that address."
}
},
"description": "Address before a recent move.",
"additionalProperties": true
}
},
"additionalProperties": true
},
"vehicles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"vin": {
"type": "string",
"description": "17-character VIN; sets year, make and model."
},
"make": {
"type": "string",
"maxLength": 50
},
"year": {
"type": "string",
"description": "YYYY."
},
"model": {
"type": "string",
"maxLength": 50
},
"usage": {
"enum": [
"Business Use",
"Work Commute",
"Farm Use",
"Farm Business Use",
"Pleasure",
"Off-road"
],
"type": "string"
},
"delivery": {
"type": "boolean"
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"hasDamage": {
"type": "boolean"
},
"ownership": {
"enum": [
"Owned",
"Lien",
"Leased"
],
"type": "string"
},
"prefillId": {
"type": "string",
"description": "suggested: id of the same found car"
},
"rideshare": {
"type": "boolean"
},
"businessUse": {
"type": "boolean"
},
"licensePlate": {
"type": "string",
"description": "With licensePlateState; sets year, make and model."
},
"purchaseDate": {
"type": "string",
"description": "YYYY-MM-DD, or YYYY-MM when only the month is known."
},
"valueDollars": {
"type": "number",
"description": "Value in dollars, for cars built before 1981."
},
"annualMileage": {
"type": "number",
"description": "Miles per year, e.g. 10 miles a day is 3650."
},
"hasBrandedTitle": {
"type": "boolean"
},
"licensePlateState": {
"type": "string",
"description": "Two-letter state code."
}
},
"additionalProperties": true
},
"maxItems": 8
},
"startDates": {
"type": "object",
"properties": {
"car": {
"type": "string",
"description": "YYYY-MM-DD."
},
"home": {
"type": "string",
"description": "YYYY-MM-DD."
},
"motorcycle": {
"type": "string",
"description": "YYYY-MM-DD."
}
},
"additionalProperties": true
},
"motorcycles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to add an item. A suggested: id adds what Jerry found; fields sent with it win."
},
"vin": {
"type": "string"
},
"make": {
"type": "string",
"maxLength": 50
},
"year": {
"type": "string",
"description": "YYYY."
},
"model": {
"type": "string",
"maxLength": 50
},
"usage": {
"enum": [
"Pleasure",
"Commute",
"Off-road"
],
"type": "string"
},
"engineCc": {
"type": "string",
"description": "Engine size in cc."
},
"included": {
"type": "boolean",
"description": "Put on the quote (true) or leave off (false)."
},
"ownership": {
"enum": [
"Owned",
"Lien",
"Leased"
],
"type": "string"
},
"purchaseDate": {
"type": "string",
"description": "YYYY-MM-DD, or YYYY-MM when only the month is known."
},
"valueDollars": {
"type": "number",
"description": "Value in dollars."
},
"annualMileage": {
"type": "number"
},
"antiTheftType": {
"enum": [
"Active",
"Recovery",
"Both",
"None"
],
"type": "string"
},
"hasRoadLicense": {
"type": "boolean"
},
"hasBrandedTitle": {
"type": "boolean"
},
"hasAntiLockBrakes": {
"type": "boolean"
}
},
"additionalProperties": true
},
"maxItems": 8
}
},
"additionalProperties": true
},
"idempotencyKey": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Unique key for safely retrying this customer action"
}
},
"additionalProperties": false
}