Agent car inventory index. Synthetic demo data, not real inventory, not an offer.
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.
DEMO. Cancel a saved search. Any shopper email stored for it is deleted.
search_id from save_search.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
DEMO. Cancel a saved search. Any shopper email stored for it is deleted.
| Argument | Type | Description |
|---|---|---|
| search_id* | any | search_id from save_search. |
{
"type": "object",
"title": "cancel_searchArguments",
"required": [
"search_id"
],
"properties": {
"search_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Id",
"description": "search_id from save_search."
}
}
}Use this to compare several financing what-ifs for ONE listing side by side in one call (for example cash down, term, credit tier or APR, trade-in, incentives). Each scenario reruns the itemized out-the-door estimate and returns estimated_out_the_door, amount_financed_estimate, apr_percent and apr_source, term_months, estimated_monthly_payment (rounded to $5) with the unrounded value and an outward-rounded range, total_interest_estimate, total_cost_including_trade_equity (PRIMARY total: cash down plus all payments plus net trade equity given up), cash_outlay_excluding_trade_equity (cash down plus payments only; total_cost_estimate is its deprecated alias) and financing_eligibility with flags (demo rules), plus lowest_monthly, lowest_total_cost (decided by total_cost_including_trade_equity) and lowest_cash_outlay_excluding_trade_equity. Those lowest_* keys are UNFILTERED math winners. Present recommended_scenario, lowest_monthly_eligible or lowest_total_cost_eligible instead: they skip scenarios the demo financing rules flag, so an ineligible scenario is never the recommendation. A scenario {"name":"cash","cash":true} prices paying cash (no loan, no interest); cash_purchase always gives the cash amount due. Each scenario has trade_risk (negative_equity_rolled_in, loan_to_value_pct and warnings, for example LTV over 110%) and credit_tier_source. Prefer this over repeated get_payment_estimate calls. Up to 6 scenarios. For a single scenario use get_payment_estimate. Estimate, not an offer; dealer sets price, lender sets rate. Leases are not modeled.
| Argument | Type | Description |
|---|---|---|
| buyer_zip | any | Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source). |
| scenarios* | array | 1 to 6 what-if scenarios, e.g. [{"name":"0 down"},{"name":"3k down 72","down_payment":3000,"term_months":72}]. Omitted fields default to $0 down, 60 months, good credit. |
| buyer_city | any | Buyer's city. |
| listing_id* | string | dealer_key:VIN from search_inventory. |
| buyer_state | any | Buyer's two-letter state for tax and fees. Default: the selling store's state. |
| buyer_county | any | Buyer's county without 'County'. |
{
"type": "object",
"$defs": {
"PaymentScenario": {
"type": "object",
"title": "PaymentScenario",
"properties": {
"apr": {
"anyOf": [
{
"type": "number",
"maximum": 36,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Apr",
"default": null,
"description": "APR percent; overrides credit_tier."
},
"cash": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Cash",
"default": null,
"description": "True to price paying cash: no loan or interest; omit apr, term_months, credit_tier and down_payment."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Short label, e.g. '3k down 72 mo'."
},
"payoff": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD."
},
"credit_tier": {
"anyOf": [
{
"enum": [
"excellent",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "Picks the demo APR when apr is omitted. Credit tiers (demo APR new / used): excellent about 720 and up (6.0% / 8.5%); good about 660 to 719 (7.5% / 11.0%); fair about 620 to 659 (11.5% / 16.0%); poor below about 620 (15.5% / 20.0%)."
},
"term_months": {
"anyOf": [
{
"type": "integer",
"maximum": 96,
"minimum": 12
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term in months, 12 to 96."
},
"trade_value": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD (gets the state's trade-in tax credit)."
},
"down_payment": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Cash down in USD."
},
"trade_equity": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": -500000
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity if allowance and payoff are unknown; no tax credit."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives the buyer qualifies for."
}
},
"description": "One what-if finance scenario. Omitted fields use the call's defaults ($0 down, 60 months, good credit)."
}
},
"title": "compare_payment_scenariosArguments",
"required": [
"listing_id",
"scenarios"
],
"properties": {
"buyer_zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer Zip",
"default": null,
"description": "Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source)."
},
"scenarios": {
"type": "array",
"items": {
"$ref": "#/$defs/PaymentScenario"
},
"title": "Scenarios",
"description": "1 to 6 what-if scenarios, e.g. [{\"name\":\"0 down\"},{\"name\":\"3k down 72\",\"down_payment\":3000,\"term_months\":72}]. Omitted fields default to $0 down, 60 months, good credit."
},
"buyer_city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer City",
"default": null,
"description": "Buyer's city."
},
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory."
},
"buyer_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer State",
"default": null,
"description": "Buyer's two-letter state for tax and fees. Default: the selling store's state."
},
"buyer_county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer County",
"default": null,
"description": "Buyer's county without 'County'."
}
}
}Use this for the buyer's TOTAL price of ONE listing: an itemized out-the-door DEMO ESTIMATE for the buyer's state, county and city, built with real public tax and fee rules for the 8 covered states. Lines include the price, dealer fees, eligible incentives, state and local sales tax, title and registration fees, and a trade-in block (allowance, payoff, equity, tax credit). Every line has a source and confidence; unknowns become ranges. Read estimated_out_the_door with estimate_range and confidence. With a trade-in, estimated_out_the_door is the balance due after the trade (negative equity added); deal.vehicle_out_the_door_before_trade is the car alone. Use get_price_breakdown instead for only the dealer's listed price and fees, and get_payment_estimate to turn this total into a monthly finance payment (this tool returns payments: null). Read warnings, for example when the shopper's state differs from the store's state. Not an offer, not a quote, not penny-accurate. Inputs are not stored.
| Argument | Type | Description |
|---|---|---|
| payoff | any | Loan payoff in USD still owed on the trade-in. |
| financed | any | True if the purchase will be financed, false for cash. Some fees and incentives depend on it; if omitted they are flagged as uncertain. |
| buyer_zip | any | Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source). |
| buyer_city | any | Shopper's city, e.g. Chicago. Some city taxes depend on it; it can also imply the county. |
| listing_id* | string | dealer_key:VIN from search_inventory. |
Fictional dealer profile: registry entity, stores (selling locations) with fictional addresses and 555 phone numbers, group, state rules and a page of inventory. Not a real business; do not tell anyone to call or visit.
| Argument | Type | Description |
|---|---|---|
| dealer_key* | string | Dealer key from list_dealers or a search result, e.g. bluebonnetridge. |
| inventory_limit | integer | Inventory rows to include. |
| inventory_offset | integer | Paging offset for inventory. |
{
"type": "object",
"title": "get_dealerArguments",
"required": [
"dealer_key"
],
"properties": {
"dealer_key": {
"type": "string",
"title": "Dealer Key",
"description": "Dealer key from list_dealers or a search result, e.g. bluebonnetridge."
},
"inventory_limit": {
"type": "integer",
"title": "Inventory Limit",
"default": 20,
"description": "Inventory rows to include."
},
"inventory_offset": {
"type": "integer",
"title": "Inventory Offset",
"default": 0,
"description": "Paging offset for inventory."
}
}
}Full synthetic listing record with per-value provenance (method 'synthetic'). listing_id is dealer_key:VIN (as returned by search_inventory) or the urn. The vehicle-to-store link is in listing.selling_location (link_status, selling_location_id, candidates, flags such as group_site_lists_sister_store or multi_store_unstated); the dealer block is the advertising dealer. For price and fees in a compact form, use get_price_breakdown.
| Argument | Type | Description |
|---|---|---|
| listing_id* | string | dealer_key:VIN from search_inventory, or the listing urn. |
{
"type": "object",
"title": "get_listingArguments",
"required": [
"listing_id"
],
"properties": {
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory, or the listing urn."
}
}
}Media block for a listing: self-generated SVG placeholder images labeled DEMO (photo, video poster, spin), with rights notes. They are not photos of a real car. No video or 360 viewer exists in the demo.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum items, 0 to 100. |
| types | any | Filter by item type: photo, video (poster image only) or spin_exterior. |
| listing_id* | string | dealer_key:VIN from search_inventory. |
{
"type": "object",
"title": "get_mediaArguments",
"required": [
"listing_id"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 50,
"description": "Maximum items, 0 to 100."
},
"types": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Types",
"default": null,
"description": "Filter by item type: photo, video (poster image only) or spin_exterior."
},
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory."
}
}
}DEMO. New cars that started matching a saved search after it was saved (or after `since`).
| Argument | Type | Description |
|---|---|---|
| since | any | Optional ISO 8601 time; only matches after it (use checked_at from your last call). |
| search_id* | any | search_id from save_search. |
{
"type": "object",
"title": "get_new_matchesArguments",
"required": [
"search_id"
],
"properties": {
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Since",
"default": null,
"description": "Optional ISO 8601 time; only matches after it (use checked_at from your last call)."
},
"search_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Id",
"description": "search_id from save_search."
}
}
}Schema links, schema version, covered states, condition values, search sorts and the value-wrapper format ({v, m, c, src}). For the list of filterable fields and allowed values, use list_searchable_fields.
No arguments.
{
"type": "object",
"title": "get_ontologyArguments",
"properties": {}
}Use this to answer 'what would my monthly payment be' for ONE listing. It runs the same itemized out-the-door calculation as estimate_out_the_door (always treated as financed) and turns it into a DEMO monthly finance payment: out-the-door total minus down payment and trade equity, amortized at the APR (or a demo APR by credit_tier) over term_months. Returns finance.estimated_monthly_payment rounded to $5 with monthly_payment_unrounded, monthly_payment_range (rounded outward, so it always contains the unrounded value), financing_eligibility (demo lender rules: minimum amount financed, max term by vehicle age and mileage, with flags), amount_financed_estimate, total_of_payments, finance_charge and every assumption, plus the out-the-door figure it used, a one-line assumptions_summary and any dealer-advertised payment shown separately (not comparable unless the terms match). Totals: total_cost_including_trade_equity (PRIMARY: cash down plus payments plus net trade equity given up) and cash_outlay_excluding_trade_equity (cash down plus payments); total_cost_estimate is a deprecated alias of the latter, kept for one version. For ONE set of terms only: to compare two or more down, term, trade or credit options, call compare_payment_scenarios once instead of calling this tool repeatedly. Use get_price_breakdown instead for the dealer's listed price and fees only, and estimate_out_the_door for the full itemized total without a payment. To find cars by payment across many listings, use search_inventory with max_monthly_payment (canonical; payment_max is a deprecated alias). Estimate, not an offer; dealer sets price, lender sets rate. Not penny-accurate. Leases are not modeled.
| Argument | Type | Description |
|---|---|---|
| apr | any | APR percent, 0 to 36. If omitted, a demo APR is picked by credit_tier. |
| payoff | any | Loan payoff owed on the trade-in, USD (negative equity is added to the amount financed). |
| buyer_zip | any |
Use this to see what the dealer LISTS for ONE listing, as published: headline price, MSRP (new cars), price_components, dealer fees (doc fee and others) and fee bundles (parts marked part_of_bundle, not double counted), flags such as whether the advertised price already includes fees, options, incentives split into all_buyer (already in the price) and conditional (not in the price), and the state's public tax and fee RULES with data-flag checks. It takes no buyer inputs and computes no tax amounts or total. Use estimate_out_the_door next for the buyer's total with tax, title, registration and fees, and get_payment_estimate for a monthly payment. Pass conditional incentive label_raw values to those tools as eligible_incentive_labels only if the shopper qualifies. A dealer-advertised monthly payment, when present, is a price_components item of type payment_quote: dealer ad text, not a calculation. Each price_component has a plain label, source_text and method_text; fees and incentives carry tax_treatment (taxable or reduces_taxable_amount, whether it is inside the advertised price, and why).
| Argument | Type | Description |
|---|---|---|
| listing_id* | string | dealer_key:VIN from search_inventory. |
{
"type": "object",
"title": "get_price_breakdownArguments",
"required": [
"listing_id"
],
"properties": {
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory."
}
}
}Ready-made demo trade-in scenarios (one per state) with trade_value and payoff to pass to estimate_out_the_door or get_payment_estimate.
No arguments.
{
"type": "object",
"title": "get_trade_in_scenariosArguments",
"properties": {}
}All 20 fictional demo dealers with group and store counts (each dealer lists its stores with group_id, region_id and store_id), the dealer hierarchy (Group, then Region, then Store), the 4 fictional dealer groups and a coverage summary: which metros have demo stores, with dealer, store and new/used listing counts per metro.
No arguments.
{
"type": "object",
"title": "list_dealersArguments",
"properties": {}
}Every filterable ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment) with its type, range or allowed values, shortcut names, the operators (eq, any_of, contains, range, bool, exists, negate) and example filters for search_inventory. The full compact list is about 30 KB, so narrow it with prefix or query.
| Argument | Type | Description |
|---|---|---|
| query | any | Only fields whose name or description contains this text, e.g. fee, color, payment. |
| detail | string | compact (default): type, range or up to 12 values. full: up to 40 allowed values, examples and counts; use it with prefix or query. |
| prefix | any | Only fields starting with this, e.g. canonical, price_summary, incentives, store, dealer_profile, media_block, derived, payment. |
{
"type": "object",
"title": "list_searchable_fieldsArguments",
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Query",
"default": null,
"description": "Only fields whose name or description contains this text, e.g. fee, color, payment."
},
"detail": {
"type": "string",
"title": "Detail",
"default": "compact",
"description": "compact (default): type, range or up to 12 values. full: up to 40 allowed values, examples and counts; use it with prefix or query."
},
"prefix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Prefix",
"default": null,
"description": "Only fields starting with this, e.g. canonical, price_summary, incentives, store, dealer_profile, media_block, derived, payment."
}
}
}Use this when the shopper has picked a car and a deal structure and wants to take it to the dealer. Builds a structured dealer handoff package for ONE configured deal: vehicle and VIN, the full itemized out-the-door estimate (with excluded items such as optional add-ons), the chosen financing scenario with demo financing eligibility, trade and negative-equity details (loan-to-value), all warnings, the assistant name and session reference, a timestamp (UTC and America/Chicago) and an estimate-not-offer disclaimer. Returns the package as JSON plus a ready-to-send email body (email.subject, email.text, email.html) with no recipient filled in. THIS TOOL SENDS NOTHING and contacts no one: delivery.status is not_sent, and delivery happens later, with the shopper's consent, through the dealer's chosen channel (email, desking or F&I). No dealer email is invented; dealer.handoff_contact is null until the dealer provides one. On synthetic data the package is labeled DEMO. Before calling, ask the shopper for a phone number or email for the dealer (with their OK); the call fails without a phone, email, or a name plus preferred_contact. The deal (date, shopper name and contact, car, payment, status) is saved to the store's dealer dashboard, where only that store, its region and group can see the contact info and address. Optional extras the dealer will use: trade_details (VIN, miles, plate, color, who the loan is with and how much), buyer_address (with county, for tax and registration), financing_details (deposit, cash down and rebates as separate lines, and any lender pre-approval the shopper already has) and add_on_interest (yes, no or unsure for service contract, GAP, maintenance, other; never priced). The email has a deal sheet in buyer's order line order including the store's dealer fees. NEVER ask the shopper for a Social Security number (or any part of one), date of birth or income; the tool rejects them. Leases, add-on pricing and payment dates are left to the dealer.
| Argument | Type | Description |
|---|---|---|
| vin | any | 17-character VIN, if listing_id is not known. Rejected if several dealers list it. |
| payoff |
Optional and free. Registers your agent and returns an agent key (shown once) that gives it a durable, anonymous id in Moonshot Lab's bot analytics. Send it as the X-MoonshotLab-Agent-Key header, or add ?agent_key=<key> to the MCP URL. Nothing else changes: anonymous use keeps working, limits are the same, and no personal data is collected. Dealers only ever see aggregate demand by platform name.
| Argument | Type | Description |
|---|---|---|
| platform | any | Optional: platform it runs on, e.g. ChatGPT, Claude, custom. |
| agent_name | any | Optional: your agent or product name (no personal data). |
{
"type": "object",
"title": "register_agentArguments",
"properties": {
"platform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Platform",
"default": null,
"description": "Optional: platform it runs on, e.g. ChatGPT, Claude, custom."
},
"agent_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Agent Name",
"default": null,
"description": "Optional: your agent or product name (no personal data)."
}
}
}DEMO. Save a car search and get alerted when new cars match. Returns a search_id (keep it; it is the only way to read or cancel the search) and an expiry (default 30 days, renewable). Check for new cars with get_new_matches, or give a callback_url. Shopper email alerts are optional and need explicit consent. On this demo, email sending is switched off (alerts are logged, not sent) and new arrivals are simulated.
| Argument | Type | Description |
|---|---|---|
| zip | any | Shopper's five-digit ZIP, the center of the search area. |
| make | any | Make, e.g. Toyota. |
| trim | any | Trim. |
| model | any | Model, e.g. RAV4. |
| state | any | Two-letter state of the selling store. |
| year_max | any | Newest model year. |
| year_min | any | Oldest model year. |
| condition | any | new, used or cpo. |
| fuel_type | any | e.g. gasoline, hybrid, electric. |
| price_max | any |
Search the SYNTHETIC demo inventory (about 860 fictional vehicles at 20 fictional dealers in TX, CA, FL, GA, AZ, IL, NY and OH). Results are not real vehicles for sale; say so when you show them. Each result has listing_id (dealer_key:VIN), vehicle basics, headline_price (before tax, title and fees), dealer_name, and selling_location: the store that holds the unit, with address and phone. link_status is linked, or ambiguous when the listing does not say which of the dealer's stores holds it (see selling_location_candidates). A unit can be held at a sister store run by another dealer in the same group; operated_by_dealer_id then differs from dealer_id. Matching is exact on vocabularies, so a total of 0 often means a wrong value: check the parameter descriptions, widen radius_miles or drop a filter; a zero total also returns hints. The named parameters are shortcuts. filters reaches every other attribute: for example {"field": "canonical.vin", "op": "eq", "value": "<VIN>"} finds a VIN, {"field": "price_summary.doc_fee", "op": "range", "max": 300}, {"field": "incentives[].label_raw", "op": "eq", "value": "Military Appreciation"}. Payment search: payment_max / payment_min filter on a DEMO monthly finance estimate computed per listing from its itemized out-the-door estimate (tax, title, registration, dealer fees) for the buyer location, minus down payment and trade equity, at a demo APR by credit tier unless apr is given. Each result then has estimated_payment (rounded to $5, with a range) and dealer_advertised_payment when the listing shows one; the response has payment_assumptions and a one-line assumptions_summary to read back to the shopper. For 'under $300/month' pass max_monthly_payment=300. With a cap, near_misses lists up to 3 cars just above it, and a zero result returns to_reach_target (extra down payment, or a 72 or 84 month term). To compare scenarios for one car, use compare_payment_scenarios. Every result has estimated_out_the_door (exact, same as estimate_out_the_door for the buyer location), availability (status, price_valid_until, last_updated, observed_at), seating_capacity, third_row and cargo_capacity_cu_ft (synthetic demo specs). sort=best_value score = 0.35 * cost_score + 0.30 * age_score + 0.35 * mileage_score (formula in best_value_formula). A zero result with zip returns coverage: nearest_store, nearest_new_inventory and nearest_qualifying_inventory with distance, match count and lowest out the door, plus a coverage_note. estimated_out_the_door on results and near_misses carries the same warnings and excluded_items (for example an optional add-on's name and price) that estimate_out_the_door returns. Each result has group_id, region_id and store_id (dealer hierarchy; also filterable) and dealer_segment / dealer_type, third_row_type and sliding_doors. With payment inputs, estimated_payment has financing_eligibility, credit_tier and credit_tier_source (default when not given), negative_equity_rolled_in, loan_to_value_pct and warnings; the response has financing_summary. Pass financeable_only=true to drop listings the demo financing rules flag. Estimate, not an offer; dealer sets price, lender sets rate. Not penny-accurate.
| buyer_state | any | Shopper's two-letter state; sets the tax and fee state. Defaults to the selling store's state, or the state of buyer_zip. States outside the 8 covered return a low-confidence estimate without tax and government fees. |
| lender_name | any | Lender holding the trade-in loan (optional, not stored). |
| trade_value | any | Trade-in allowance in USD offered or expected for the shopper's car. |
| buyer_county | any | Shopper's county name without the word County, e.g. Harris, Cook, Orange. Improves local tax lines. |
| plate_transfer | boolean | True to transfer existing plates where the state allows it. |
| registration_state | any | State where the car will be registered, if different from buyer_state. |
| vehicle_weight_lbs | any | Vehicle weight, used by weight-based registration fees. |
| eligible_incentive_labels | any | label_raw values of conditional incentives from get_price_breakdown that the shopper qualifies for (case-insensitive). |
{
"type": "object",
"title": "estimate_out_the_doorArguments",
"required": [
"listing_id"
],
"properties": {
"payoff": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff in USD still owed on the trade-in."
},
"financed": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Financed",
"default": null,
"description": "True if the purchase will be financed, false for cash. Some fees and incentives depend on it; if omitted they are flagged as uncertain."
},
"buyer_zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer Zip",
"default": null,
"description": "Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source)."
},
"buyer_city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer City",
"default": null,
"description": "Shopper's city, e.g. Chicago. Some city taxes depend on it; it can also imply the county."
},
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory."
},
"buyer_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer State",
"default": null,
"description": "Shopper's two-letter state; sets the tax and fee state. Defaults to the selling store's state, or the state of buyer_zip. States outside the 8 covered return a low-confidence estimate without tax and government fees."
},
"lender_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Lender Name",
"default": null,
"description": "Lender holding the trade-in loan (optional, not stored)."
},
"trade_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD offered or expected for the shopper's car."
},
"buyer_county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer County",
"default": null,
"description": "Shopper's county name without the word County, e.g. Harris, Cook, Orange. Improves local tax lines."
},
"plate_transfer": {
"type": "boolean",
"title": "Plate Transfer",
"default": false,
"description": "True to transfer existing plates where the state allows it."
},
"registration_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Registration State",
"default": null,
"description": "State where the car will be registered, if different from buyer_state."
},
"vehicle_weight_lbs": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Vehicle Weight Lbs",
"default": null,
"description": "Vehicle weight, used by weight-based registration fees."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives from get_price_breakdown that the shopper qualifies for (case-insensitive)."
}
}
}| Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source). |
| buyer_city | any | Buyer's city, for local tax lines. |
| listing_id* | string | dealer_key:VIN from search_inventory. |
| buyer_state | any | Buyer's two-letter state for tax and fees. Default: the selling store's state, or the state of buyer_zip. |
| credit_tier | any | excellent, good (default), fair or poor. Picks the demo APR when apr is omitted (used and cpo rates are higher than new). |
| term_months | any | Loan term in months, 12 to 96. Default 60. |
| trade_value | any | Trade-in allowance in USD. Passed to the out-the-door step, so it gets the state's trade-in tax credit where allowed. |
| buyer_county | any | Buyer's county without 'County', for local tax lines. |
| down_payment | any | Cash down in USD, subtracted from the out-the-door total. Default 0. |
| trade_equity | any | Net trade equity in USD when allowance and payoff are unknown (negative if upside down). Subtracted after tax, so no trade-in tax credit is applied. |
| eligible_incentive_labels | any | label_raw values of conditional incentives from get_price_breakdown that the buyer qualifies for. |
{
"type": "object",
"title": "get_payment_estimateArguments",
"required": [
"listing_id"
],
"properties": {
"apr": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Apr",
"default": null,
"description": "APR percent, 0 to 36. If omitted, a demo APR is picked by credit_tier."
},
"payoff": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD (negative equity is added to the amount financed)."
},
"buyer_zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer Zip",
"default": null,
"description": "Buyer's five-digit ZIP. Alone it resolves buyer state, county and city (echoed in tax_location.resolution with the source)."
},
"buyer_city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer City",
"default": null,
"description": "Buyer's city, for local tax lines."
},
"listing_id": {
"type": "string",
"title": "Listing Id",
"description": "dealer_key:VIN from search_inventory."
},
"buyer_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer State",
"default": null,
"description": "Buyer's two-letter state for tax and fees. Default: the selling store's state, or the state of buyer_zip."
},
"credit_tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "excellent, good (default), fair or poor. Picks the demo APR when apr is omitted (used and cpo rates are higher than new)."
},
"term_months": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term in months, 12 to 96. Default 60."
},
"trade_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD. Passed to the out-the-door step, so it gets the state's trade-in tax credit where allowed."
},
"buyer_county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer County",
"default": null,
"description": "Buyer's county without 'County', for local tax lines."
},
"down_payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Cash down in USD, subtracted from the out-the-door total. Default 0."
},
"trade_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity in USD when allowance and payoff are unknown (negative if upside down). Subtracted after tax, so no trade-in tax credit is applied."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives from get_price_breakdown that the buyer qualifies for."
}
}
}| any |
| Loan payoff owed on the trade-in, USD. |
| scenario | any | The financing scenario the shopper chose, same shape as one compare_payment_scenarios scenario (down_payment, term_months, credit_tier or apr, trade fields, or cash=true). Default: $0 down, 60 months, good credit. |
| assistant | any | Optional assistant reference: name, session_ref, contact. |
| buyer_zip | any | Buyer's five-digit ZIP; alone it resolves state, county and city. |
| buyer_city | any | Buyer's city. |
| listing_id | any | dealer_key:VIN from search_inventory. Either this or vin is required. |
| buyer_state | any | Buyer's two-letter state. |
| trade_value | any | Trade-in allowance in USD (used when the scenario does not set it). |
| buyer_county | any | Buyer's county without 'County'. |
| trade_equity | any | Net trade equity if allowance and payoff are unknown (no tax credit). |
| buyer_address | any | Optional shopper address (street, city, state, zip, county), with their OK. Sets tax and registration; visible only to the deal's store, region and group. |
| trade_details | any | Optional trade-in details from the shopper: year, make, model, trim, vin, odometer, plate, plate_state, color, payoff_lender, payoff_amount. |
| trade_vehicle | any | Short description of the trade, e.g. '2021 Ford F-150 XLT, 48k mi'. |
| add_on_interest | any | Optional: is the shopper interested in service_contract, gap, maintenance, other (yes, no or unsure)? No prices; the dealer covers these. |
| shopper_contact | any | REQUIRED. Ask the shopper how the dealer should reach them, and share only with their OK: name, phone and/or email, preferred_contact (call, text or email), notes. Needs a phone or email, or a name plus preferred_contact. |
| financing_details | any | Optional separate deposit, cash_down and rebates (they add up to the down payment), plus pre_approval (has_pre_approval, lender_name, approved_amount, rate_percent; the rate is used for the payment unless scenario.apr is set). NEVER ask for a Social Security number or any part of one, date of birth or income. |
| eligible_incentive_labels | any | Conditional incentive label_raw values the shopper qualifies for. |
{
"type": "object",
"$defs": {
"PreApproval": {
"type": "object",
"title": "PreApproval",
"properties": {
"lender_name": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Lender Name",
"default": null
},
"rate_percent": {
"anyOf": [
{
"type": "number",
"maximum": 40,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Rate Percent",
"default": null
},
"approved_amount": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Approved Amount",
"default": null
},
"has_pre_approval": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Has Pre Approval",
"default": null
}
},
"description": "Only what the shopper already knows from a lender. Never ask for a Social Security number, date of birth or income.",
"additionalProperties": false
},
"AssistantRef": {
"type": "object",
"title": "AssistantRef",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Name",
"default": null
},
"contact": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Contact",
"default": null
},
"session_ref": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Session Ref",
"default": null,
"description": "Opaque session or conversation reference."
}
},
"description": "Which assistant prepared the deal, for the dealer's reference."
},
"BuyerAddress": {
"type": "object",
"title": "BuyerAddress",
"properties": {
"zip": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
],
"title": "Zip",
"default": null
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "City",
"default": null
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 2
},
{
"type": "null"
}
],
"title": "State",
"default": null
},
"county": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "County",
"default": null,
"description": "County without 'County'"
},
"street": {
"anyOf": [
{
"type": "string",
"maxLength": 160
},
{
"type": "null"
}
],
"title": "Street",
"default": null
},
"street2": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "null"
}
],
"title": "Street2",
"default": null
}
},
"description": "Shopper's home address, shared with their OK. Used for tax and registration (county matters in Texas).\nSaved with the deal and visible only to that store, its region and group.",
"additionalProperties": false
},
"TradeDetails": {
"type": "object",
"title": "TradeDetails",
"properties": {
"vin": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"title": "Vin",
"default": null,
"description": "17-character VIN of the trade-in"
},
"make": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Make",
"default": null
},
"trim": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Trim",
"default": null
},
"year": {
"anyOf": [
{
"type": "integer",
"maximum": 2030,
"minimum": 1950
},
{
"type": "null"
}
],
"title": "Year",
"default": null
},
"color": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Color",
"default": null
},
"model": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Model",
"default": null
},
"plate": {
"anyOf": [
{
"type": "string",
"maxLength": 12
},
{
"type": "null"
}
],
"title": "Plate",
"default": null,
"description": "License plate"
},
"odometer": {
"anyOf": [
{
"type": "integer",
"maximum": 999999,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Odometer",
"default": null,
"description": "Miles on the trade-in"
},
"plate_state": {
"anyOf": [
{
"type": "string",
"maxLength": 2
},
{
"type": "null"
}
],
"title": "Plate State",
"default": null
},
"payoff_amount": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Payoff Amount",
"default": null,
"description": "What the shopper still owes (same as payoff)"
},
"payoff_lender": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Payoff Lender",
"default": null,
"description": "Who the trade-in loan is with"
}
},
"description": "Optional trade-in details the shopper gives. Every field is optional; skip what the shopper does not know.",
"additionalProperties": false
},
"AddOnInterest": {
"type": "object",
"title": "AddOnInterest",
"properties": {
"gap": {
"anyOf": [
{
"enum": [
"yes",
"no",
"unsure"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Gap",
"default": null
},
"other": {
"anyOf": [
{
"enum": [
"yes",
"no",
"unsure"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Other",
"default": null
},
"maintenance": {
"anyOf": [
{
"enum": [
"yes",
"no",
"unsure"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Maintenance",
"default": null
},
"service_contract": {
"anyOf": [
{
"enum": [
"yes",
"no",
"unsure"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Service Contract",
"default": null,
"description": "Service contract or extended warranty"
},
"other_description": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Other Description",
"default": null
}
},
"description": "Is the shopper interested in these products? No prices: the dealer goes over them with the shopper.",
"additionalProperties": false
},
"HandoffContact": {
"type": "object",
"title": "HandoffContact",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Name",
"default": null
},
"email": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
],
"title": "Email",
"default": null,
"description": "Shopper email, e.g. [email protected]"
},
"notes": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
],
"title": "Notes",
"default": null
},
"phone": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Phone",
"default": null,
"description": "Shopper US phone with area code, e.g. 214-555-0100"
},
"preferred_contact": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Preferred Contact",
"default": null,
"description": "email, phone or text"
}
},
"description": "How the dealer can reach the shopper. Ask the shopper first and share only with their OK. Give a phone or email, or at least a name plus preferred_contact."
},
"PaymentScenario": {
"type": "object",
"title": "PaymentScenario",
"properties": {
"apr": {
"anyOf": [
{
"type": "number",
"maximum": 36,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Apr",
"default": null,
"description": "APR percent; overrides credit_tier."
},
"cash": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Cash",
"default": null,
"description": "True to price paying cash: no loan or interest; omit apr, term_months, credit_tier and down_payment."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Short label, e.g. '3k down 72 mo'."
},
"payoff": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD."
},
"credit_tier": {
"anyOf": [
{
"enum": [
"excellent",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "Picks the demo APR when apr is omitted. Credit tiers (demo APR new / used): excellent about 720 and up (6.0% / 8.5%); good about 660 to 719 (7.5% / 11.0%); fair about 620 to 659 (11.5% / 16.0%); poor below about 620 (15.5% / 20.0%)."
},
"term_months": {
"anyOf": [
{
"type": "integer",
"maximum": 96,
"minimum": 12
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term in months, 12 to 96."
},
"trade_value": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD (gets the state's trade-in tax credit)."
},
"down_payment": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Cash down in USD."
},
"trade_equity": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": -500000
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity if allowance and payoff are unknown; no tax credit."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives the buyer qualifies for."
}
},
"description": "One what-if finance scenario. Omitted fields use the call's defaults ($0 down, 60 months, good credit)."
},
"FinancingDetails": {
"type": "object",
"title": "FinancingDetails",
"properties": {
"deposit": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Deposit",
"default": null,
"description": "Deposit already paid or to be paid to hold the car"
},
"rebates": {
"anyOf": [
{
"type": "number",
"maximum": 100000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Rebates",
"default": null,
"description": "Rebates the shopper expects. Taken off the amount due, and off the taxed amount where the state allows it (not CA)"
},
"cash_down": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Cash Down",
"default": null,
"description": "Cash down at signing"
},
"pre_approval": {
"anyOf": [
{
"$ref": "#/$defs/PreApproval"
},
{
"type": "null"
}
],
"default": null
}
},
"description": "Money the shopper is putting toward the car, as separate lines. Together they are the down payment.",
"additionalProperties": false
}
},
"title": "prepare_dealer_handoffArguments",
"properties": {
"vin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Vin",
"default": null,
"description": "17-character VIN, if listing_id is not known. Rejected if several dealers list it."
},
"payoff": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD."
},
"scenario": {
"anyOf": [
{
"$ref": "#/$defs/PaymentScenario"
},
{
"type": "null"
}
],
"default": null,
"description": "The financing scenario the shopper chose, same shape as one compare_payment_scenarios scenario (down_payment, term_months, credit_tier or apr, trade fields, or cash=true). Default: $0 down, 60 months, good credit."
},
"assistant": {
"anyOf": [
{
"$ref": "#/$defs/AssistantRef"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional assistant reference: name, session_ref, contact."
},
"buyer_zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer Zip",
"default": null,
"description": "Buyer's five-digit ZIP; alone it resolves state, county and city."
},
"buyer_city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer City",
"default": null,
"description": "Buyer's city."
},
"listing_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Listing Id",
"default": null,
"description": "dealer_key:VIN from search_inventory. Either this or vin is required."
},
"buyer_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer State",
"default": null,
"description": "Buyer's two-letter state."
},
"trade_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD (used when the scenario does not set it)."
},
"buyer_county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer County",
"default": null,
"description": "Buyer's county without 'County'."
},
"trade_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity if allowance and payoff are unknown (no tax credit)."
},
"buyer_address": {
"anyOf": [
{
"$ref": "#/$defs/BuyerAddress"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional shopper address (street, city, state, zip, county), with their OK. Sets tax and registration; visible only to the deal's store, region and group."
},
"trade_details": {
"anyOf": [
{
"$ref": "#/$defs/TradeDetails"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional trade-in details from the shopper: year, make, model, trim, vin, odometer, plate, plate_state, color, payoff_lender, payoff_amount."
},
"trade_vehicle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trade Vehicle",
"default": null,
"description": "Short description of the trade, e.g. '2021 Ford F-150 XLT, 48k mi'."
},
"add_on_interest": {
"anyOf": [
{
"$ref": "#/$defs/AddOnInterest"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional: is the shopper interested in service_contract, gap, maintenance, other (yes, no or unsure)? No prices; the dealer covers these."
},
"shopper_contact": {
"anyOf": [
{
"$ref": "#/$defs/HandoffContact"
},
{
"type": "null"
}
],
"default": null,
"description": "REQUIRED. Ask the shopper how the dealer should reach them, and share only with their OK: name, phone and/or email, preferred_contact (call, text or email), notes. Needs a phone or email, or a name plus preferred_contact."
},
"financing_details": {
"anyOf": [
{
"$ref": "#/$defs/FinancingDetails"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional separate deposit, cash_down and rebates (they add up to the down payment), plus pre_approval (has_pre_approval, lender_name, approved_amount, rate_percent; the rate is used for the payment unless scenario.apr is set). NEVER ask for a Social Security number or any part of one, date of birth or income."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "Conditional incentive label_raw values the shopper qualifies for."
}
}
}| Highest advertised price, USD. |
| body_style | any | e.g. suv, sedan, truck. |
| drivetrain | any | e.g. awd, fwd. |
| credit_tier | any | excellent, good, fair or poor, for the payment estimate. |
| max_mileage | any | Most miles. |
| term_months | any | Loan term for the payment estimate. |
| callback_url | any | Optional HTTPS webhook for new matches. Public addresses only; HMAC-signed (X-MoonshotLab-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<body>'>). |
| down_payment | any | Down payment used for the payment estimate, USD. |
| radius_miles | any | Miles from zip (needs zip). |
| email_consent | any | true only if the shopper explicitly agreed to alert emails. |
| shopper_email | any | Optional: shopper's email for alert emails. Only with email_consent=true after the shopper agreed. Every email has a one-click unsubscribe. |
| expires_in_days | any | Days until the search ends (default 30, max 90). Renew any time. |
| renew_search_id | any | Pass an existing search_id to renew it instead of saving a new one. |
| max_monthly_payment | any | Highest estimated monthly payment, USD. |
{
"type": "object",
"title": "save_searchArguments",
"properties": {
"zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Zip",
"default": null,
"description": "Shopper's five-digit ZIP, the center of the search area."
},
"make": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Make",
"default": null,
"description": "Make, e.g. Toyota."
},
"trim": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trim",
"default": null,
"description": "Trim."
},
"model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Model",
"default": null,
"description": "Model, e.g. RAV4."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter state of the selling store."
},
"year_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Year Max",
"default": null,
"description": "Newest model year."
},
"year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Year Min",
"default": null,
"description": "Oldest model year."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"default": null,
"description": "new, used or cpo."
},
"fuel_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Fuel Type",
"default": null,
"description": "e.g. gasoline, hybrid, electric."
},
"price_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Price Max",
"default": null,
"description": "Highest advertised price, USD."
},
"body_style": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Body Style",
"default": null,
"description": "e.g. suv, sedan, truck."
},
"drivetrain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Drivetrain",
"default": null,
"description": "e.g. awd, fwd."
},
"credit_tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "excellent, good, fair or poor, for the payment estimate."
},
"max_mileage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Mileage",
"default": null,
"description": "Most miles."
},
"term_months": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term for the payment estimate."
},
"callback_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Callback Url",
"default": null,
"description": "Optional HTTPS webhook for new matches. Public addresses only; HMAC-signed (X-MoonshotLab-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<body>'>)."
},
"down_payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Down payment used for the payment estimate, USD."
},
"radius_miles": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Radius Miles",
"default": null,
"description": "Miles from zip (needs zip)."
},
"email_consent": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Email Consent",
"default": null,
"description": "true only if the shopper explicitly agreed to alert emails."
},
"shopper_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Shopper Email",
"default": null,
"description": "Optional: shopper's email for alert emails. Only with email_consent=true after the shopper agreed. Every email has a one-click unsubscribe."
},
"expires_in_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Expires In Days",
"default": null,
"description": "Days until the search ends (default 30, max 90). Renew any time."
},
"renew_search_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Renew Search Id",
"default": null,
"description": "Pass an existing search_id to renew it instead of saving a new one."
},
"max_monthly_payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Max Monthly Payment",
"default": null,
"description": "Highest estimated monthly payment, USD."
}
}
}| Argument | Type | Description |
|---|---|---|
| apr | any | APR percent for payment estimates. If omitted, a demo APR by credit_tier is used. |
| zip | any | Five-digit US ZIP of the shopper. With radius_miles, filters by straight-line distance to the selling store and adds distance_miles to each result. |
| city | any | Exact city of the selling store (for example Houston, Katy, Plano). Suburbs are separate cities, so for 'in or near a city' prefer zip plus radius_miles. |
| make | any | Make, case-insensitive, e.g. Honda, Ford, Tesla. 14 makes are present. |
| sort | string | price_asc (default), price_desc, year_desc, mileage_asc, distance_asc (needs zip), payment_asc, payment_desc, otd_asc (estimated out the door) or best_value (documented score over out-the-door cost, age and mileage; each result gets ranking_rationale). |
| trim | any | Trim name, e.g. LX, EX-L, Lariat. |
| limit | integer | Results per page, 1 to 50. Each result is about 2 KB; 5 to 10 is usually enough. |
| model | any | Model with its punctuation, case-insensitive: CR-V, F-150, Model 3, Mustang Mach-E. |
| state | any | Two-letter code of the selling store's state: TX, CA, FL, GA, AZ, IL, NY or OH. Not the full name. |
| offset | integer | Paging offset. |
| payoff | any | Loan payoff owed on the trade-in, USD. |
| filters | any | Generic filters on ANY ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment). All filters must match. See list_searchable_fields. |
| group_id | any | Dealer group id (hierarchy: Group, then Region, then Store), e.g. meridian. See list_dealers. |
| store_id | any | Store id, dealer_key plus store ZIP, e.g. bluebonnetridge-75201. |
| year_max | any | Latest model year. |
| year_min | any | Earliest model year. |
| buyer_zip | any | Buyer's ZIP; fills any missing buyer state, county and city. If no buyer location is given, zip is used, then the selling store (see out_the_door_assumptions.buyer). |
| condition | any | new, used or cpo (certified pre-owned). used also returns cpo units. |
| fuel_type | any | gasoline, hybrid, plug_in_hybrid or electric. Use electric for EV or BEV. |
| price_max | any | Maximum headline price in USD (before tax, title and dealer fees). For a budget that includes taxes and fees, check estimate_out_the_door. |
| price_min | any | Minimum headline price in USD (before tax, title and dealer fees). |
| region_id | any | Region inside a group, as group_id/region_id (e.g. meridian/dfw-metro) or a bare region id. |
| scenarios | any | Optional what-if finance scenarios (up to 6). Each returned listing gets payment_scenarios with payment, amount financed, total interest and total cost per scenario. Filter and sort still use the main inputs. |
| third_row | any | True for third row seating only, false to exclude it (synthetic demo spec). |
| body_style | any | suv, sedan, pickup, hatchback, minivan or wagon. Use pickup for trucks. |
| buyer_city | any | Buyer's city for payment tax lines. |
| dealer_key | any | Dealer key from list_dealers, e.g. lonemesa. |
| drivetrain | any | fwd, awd, rwd or 4wd. |
| buyer_state | any | Buyer's two-letter state for payment tax and fees. Default: the selling store's state. |
| credit_tier | any | excellent, good (default), fair or poor; picks the demo APR when apr is omitted. Credit tiers (demo APR new / used): excellent about 720 and up (6.0% / 8.5%); good about 660 to 719 (7.5% / 11.0%); fair about 620 to 659 (11.5% / 16.0%); poor below about 620 (15.5% / 20.0%). |
| max_mileage | any | Maximum odometer miles. |
| payment_max | any | DEPRECATED alias of max_monthly_payment (still accepted; the lower wins if both are given). |
| payment_min | any | Minimum estimated monthly finance payment in USD (demo estimate). |
| seating_min | any | Minimum seats, e.g. 7 for a third row family vehicle (synthetic demo spec). |
| term_months | any | Loan term in months, 12 to 96. Default 60. |
| trade_value | any | Trade-in allowance in USD (gets the trade-in tax credit where the state allows it). |
| buyer_county | any | Buyer's county (without 'County') for payment tax lines. |
| down_payment | any | Cash down in USD for payment estimates. Default 0. |
| radius_miles | any | Radius in miles around zip. |
| trade_equity | any | Net trade equity in USD if allowance and payoff are unknown (negative for upside-down); no tax credit is applied for it. |
| sliding_doors | any | True for sliding rear doors (minivans). |
| dealer_segment | any | franchise, independent_used or bhph (buy-here-pay-here). Each result shows dealer_segment and dealer_type. |
| exterior_color | any | Exterior color family: white, black, silver, gray, blue, red, green or bronze. |
| third_row_type | any | full (adult-usable, car-seat capable) or compact (small, occasional; e.g. Tiguan). Demo spec. |
| include_payment | boolean | True to add estimated_payment to every result without filtering on it. |
| best_value_needs | any | With sort=best_value, shopper needs that also score: seats, cargo, full_third_row, sliding_doors, low_mileage, newer, budget_headroom (needs max_out_the_door). Score = 0.70 x base + 0.30 x mean need score; ranking_rationale shows each part. |
| financeable_only | boolean | True to drop listings whose payment estimate fails the demo financing rules (minimum amount financed, max term by age and mileage) at these terms. Recommended with max_monthly_payment; financing_summary counts what was dropped. |
| max_out_the_door | any | Maximum estimated out-the-door total in USD for the buyer location (tax, title, registration, dealer fees, minus trade). Exact, unrounded, and the same figure estimate_out_the_door returns for the same inputs. |
| min_out_the_door | any | Minimum estimated out-the-door total in USD (same basis as max_out_the_door). |
| include_near_misses | boolean | With a payment cap, also return up to 3 listings within $25 above it in near_misses, flagged above_target. Default true. |
| max_monthly_payment | any | Canonical monthly payment cap: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month' (demo estimate). |
| eligible_incentive_labels | any | label_raw values of conditional incentives the buyer says they qualify for; applied to payment estimates where a listing offers them. Off by default. |
{
"type": "object",
"$defs": {
"FieldFilter": {
"type": "object",
"title": "FieldFilter",
"required": [
"field"
],
"properties": {
"op": {
"enum": [
"eq",
"any_of",
"contains",
"range",
"bool",
"exists"
],
"type": "string",
"title": "Op",
"default": "eq",
"description": "eq exact (case-insensitive text); any_of with values; contains (text substring); range with min and/or max (numbers or ISO dates, inclusive); bool with value true/false; exists."
},
"max": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Max",
"default": null,
"description": "Upper bound for range (inclusive)."
},
"min": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Min",
"default": null,
"description": "Lower bound for range (inclusive)."
},
"field": {
"type": "string",
"title": "Field",
"description": "Dotted field path from list_searchable_fields, e.g. canonical.exterior_color.family, price_summary.doc_fee, incentives[].label_raw, store.name, payment.estimated_monthly. Shortcut names such as make, model, color, price, state also work."
},
"value": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Value",
"default": null,
"description": "Value for eq, contains, bool or exists."
},
"negate": {
"type": "boolean",
"title": "Negate",
"default": false,
"description": "True to invert the filter."
},
"values": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
}
]
}
},
{
"type": "null"
}
],
"title": "Values",
"default": null,
"description": "Values for any_of."
}
},
"description": "One generic filter on any ontology field (see list_searchable_fields)."
},
"PaymentScenario": {
"type": "object",
"title": "PaymentScenario",
"properties": {
"apr": {
"anyOf": [
{
"type": "number",
"maximum": 36,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Apr",
"default": null,
"description": "APR percent; overrides credit_tier."
},
"cash": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Cash",
"default": null,
"description": "True to price paying cash: no loan or interest; omit apr, term_months, credit_tier and down_payment."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Short label, e.g. '3k down 72 mo'."
},
"payoff": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD."
},
"credit_tier": {
"anyOf": [
{
"enum": [
"excellent",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "Picks the demo APR when apr is omitted. Credit tiers (demo APR new / used): excellent about 720 and up (6.0% / 8.5%); good about 660 to 719 (7.5% / 11.0%); fair about 620 to 659 (11.5% / 16.0%); poor below about 620 (15.5% / 20.0%)."
},
"term_months": {
"anyOf": [
{
"type": "integer",
"maximum": 96,
"minimum": 12
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term in months, 12 to 96."
},
"trade_value": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD (gets the state's trade-in tax credit)."
},
"down_payment": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": 0
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Cash down in USD."
},
"trade_equity": {
"anyOf": [
{
"type": "number",
"maximum": 500000,
"minimum": -500000
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity if allowance and payoff are unknown; no tax credit."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives the buyer qualifies for."
}
},
"description": "One what-if finance scenario. Omitted fields use the call's defaults ($0 down, 60 months, good credit)."
}
},
"title": "search_inventoryArguments",
"properties": {
"apr": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Apr",
"default": null,
"description": "APR percent for payment estimates. If omitted, a demo APR by credit_tier is used."
},
"zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Zip",
"default": null,
"description": "Five-digit US ZIP of the shopper. With radius_miles, filters by straight-line distance to the selling store and adds distance_miles to each result."
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "City",
"default": null,
"description": "Exact city of the selling store (for example Houston, Katy, Plano). Suburbs are separate cities, so for 'in or near a city' prefer zip plus radius_miles."
},
"make": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Make",
"default": null,
"description": "Make, case-insensitive, e.g. Honda, Ford, Tesla. 14 makes are present."
},
"sort": {
"type": "string",
"title": "Sort",
"default": "price_asc",
"description": "price_asc (default), price_desc, year_desc, mileage_asc, distance_asc (needs zip), payment_asc, payment_desc, otd_asc (estimated out the door) or best_value (documented score over out-the-door cost, age and mileage; each result gets ranking_rationale)."
},
"trim": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trim",
"default": null,
"description": "Trim name, e.g. LX, EX-L, Lariat."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20,
"description": "Results per page, 1 to 50. Each result is about 2 KB; 5 to 10 is usually enough."
},
"model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Model",
"default": null,
"description": "Model with its punctuation, case-insensitive: CR-V, F-150, Model 3, Mustang Mach-E."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter code of the selling store's state: TX, CA, FL, GA, AZ, IL, NY or OH. Not the full name."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"description": "Paging offset."
},
"payoff": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payoff",
"default": null,
"description": "Loan payoff owed on the trade-in, USD."
},
"filters": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/FieldFilter"
}
},
{
"type": "null"
}
],
"title": "Filters",
"default": null,
"description": "Generic filters on ANY ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment). All filters must match. See list_searchable_fields."
},
"group_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Group Id",
"default": null,
"description": "Dealer group id (hierarchy: Group, then Region, then Store), e.g. meridian. See list_dealers."
},
"store_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Store Id",
"default": null,
"description": "Store id, dealer_key plus store ZIP, e.g. bluebonnetridge-75201."
},
"year_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Year Max",
"default": null,
"description": "Latest model year."
},
"year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Year Min",
"default": null,
"description": "Earliest model year."
},
"buyer_zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer Zip",
"default": null,
"description": "Buyer's ZIP; fills any missing buyer state, county and city. If no buyer location is given, zip is used, then the selling store (see out_the_door_assumptions.buyer)."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"default": null,
"description": "new, used or cpo (certified pre-owned). used also returns cpo units."
},
"fuel_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Fuel Type",
"default": null,
"description": "gasoline, hybrid, plug_in_hybrid or electric. Use electric for EV or BEV."
},
"price_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Price Max",
"default": null,
"description": "Maximum headline price in USD (before tax, title and dealer fees). For a budget that includes taxes and fees, check estimate_out_the_door."
},
"price_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Price Min",
"default": null,
"description": "Minimum headline price in USD (before tax, title and dealer fees)."
},
"region_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Region Id",
"default": null,
"description": "Region inside a group, as group_id/region_id (e.g. meridian/dfw-metro) or a bare region id."
},
"scenarios": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/PaymentScenario"
}
},
{
"type": "null"
}
],
"title": "Scenarios",
"default": null,
"description": "Optional what-if finance scenarios (up to 6). Each returned listing gets payment_scenarios with payment, amount financed, total interest and total cost per scenario. Filter and sort still use the main inputs."
},
"third_row": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Third Row",
"default": null,
"description": "True for third row seating only, false to exclude it (synthetic demo spec)."
},
"body_style": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Body Style",
"default": null,
"description": "suv, sedan, pickup, hatchback, minivan or wagon. Use pickup for trucks."
},
"buyer_city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer City",
"default": null,
"description": "Buyer's city for payment tax lines."
},
"dealer_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Dealer Key",
"default": null,
"description": "Dealer key from list_dealers, e.g. lonemesa."
},
"drivetrain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Drivetrain",
"default": null,
"description": "fwd, awd, rwd or 4wd."
},
"buyer_state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer State",
"default": null,
"description": "Buyer's two-letter state for payment tax and fees. Default: the selling store's state."
},
"credit_tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Credit Tier",
"default": null,
"description": "excellent, good (default), fair or poor; picks the demo APR when apr is omitted. Credit tiers (demo APR new / used): excellent about 720 and up (6.0% / 8.5%); good about 660 to 719 (7.5% / 11.0%); fair about 620 to 659 (11.5% / 16.0%); poor below about 620 (15.5% / 20.0%)."
},
"max_mileage": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Mileage",
"default": null,
"description": "Maximum odometer miles."
},
"payment_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payment Max",
"default": null,
"description": "DEPRECATED alias of max_monthly_payment (still accepted; the lower wins if both are given)."
},
"payment_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Payment Min",
"default": null,
"description": "Minimum estimated monthly finance payment in USD (demo estimate)."
},
"seating_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Seating Min",
"default": null,
"description": "Minimum seats, e.g. 7 for a third row family vehicle (synthetic demo spec)."
},
"term_months": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Term Months",
"default": null,
"description": "Loan term in months, 12 to 96. Default 60."
},
"trade_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Value",
"default": null,
"description": "Trade-in allowance in USD (gets the trade-in tax credit where the state allows it)."
},
"buyer_county": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Buyer County",
"default": null,
"description": "Buyer's county (without 'County') for payment tax lines."
},
"down_payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Down Payment",
"default": null,
"description": "Cash down in USD for payment estimates. Default 0."
},
"radius_miles": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Radius Miles",
"default": null,
"description": "Radius in miles around zip."
},
"trade_equity": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Trade Equity",
"default": null,
"description": "Net trade equity in USD if allowance and payoff are unknown (negative for upside-down); no tax credit is applied for it."
},
"sliding_doors": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Sliding Doors",
"default": null,
"description": "True for sliding rear doors (minivans)."
},
"dealer_segment": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Dealer Segment",
"default": null,
"description": "franchise, independent_used or bhph (buy-here-pay-here). Each result shows dealer_segment and dealer_type."
},
"exterior_color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Exterior Color",
"default": null,
"description": "Exterior color family: white, black, silver, gray, blue, red, green or bronze."
},
"third_row_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Third Row Type",
"default": null,
"description": "full (adult-usable, car-seat capable) or compact (small, occasional; e.g. Tiguan). Demo spec."
},
"include_payment": {
"type": "boolean",
"title": "Include Payment",
"default": false,
"description": "True to add estimated_payment to every result without filtering on it."
},
"best_value_needs": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"seats",
"cargo",
"full_third_row",
"sliding_doors",
"low_mileage",
"newer",
"budget_headroom"
],
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Best Value Needs",
"default": null,
"description": "With sort=best_value, shopper needs that also score: seats, cargo, full_third_row, sliding_doors, low_mileage, newer, budget_headroom (needs max_out_the_door). Score = 0.70 x base + 0.30 x mean need score; ranking_rationale shows each part."
},
"financeable_only": {
"type": "boolean",
"title": "Financeable Only",
"default": false,
"description": "True to drop listings whose payment estimate fails the demo financing rules (minimum amount financed, max term by age and mileage) at these terms. Recommended with max_monthly_payment; financing_summary counts what was dropped."
},
"max_out_the_door": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Max Out The Door",
"default": null,
"description": "Maximum estimated out-the-door total in USD for the buyer location (tax, title, registration, dealer fees, minus trade). Exact, unrounded, and the same figure estimate_out_the_door returns for the same inputs."
},
"min_out_the_door": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Min Out The Door",
"default": null,
"description": "Minimum estimated out-the-door total in USD (same basis as max_out_the_door)."
},
"include_near_misses": {
"type": "boolean",
"title": "Include Near Misses",
"default": true,
"description": "With a payment cap, also return up to 3 listings within $25 above it in near_misses, flagged above_target. Default true."
},
"max_monthly_payment": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Max Monthly Payment",
"default": null,
"description": "Canonical monthly payment cap: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month' (demo estimate)."
},
"eligible_incentive_labels": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Eligible Incentive Labels",
"default": null,
"description": "label_raw values of conditional incentives the buyer says they qualify for; applied to payment estimates where a listing offers them. Off by default."
}
}
}