Skip to main content
Glama

search_inventory

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": ""} 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.

Input Schema

NameRequiredDescriptionDefault
aprNoAPR percent for payment estimates. If omitted, a demo APR by credit_tier is used.
zipNoFive-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.
cityNoExact 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.
makeNoMake, case-insensitive, e.g. Honda, Ford, Tesla. 14 makes are present.
sortNoprice_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).price_asc
trimNoTrim name, e.g. LX, EX-L, Lariat.
limitNoResults per page, 1 to 50. Each result is about 2 KB; 5 to 10 is usually enough.
modelNoModel with its punctuation, case-insensitive: CR-V, F-150, Model 3, Mustang Mach-E.
stateNoTwo-letter code of the selling store's state: TX, CA, FL, GA, AZ, IL, NY or OH. Not the full name.
offsetNoPaging offset.
payoffNoLoan payoff owed on the trade-in, USD.
filtersNoGeneric filters on ANY ontology field (vehicle, listing, store, dealer, price, fee, incentive, media, payment). All filters must match. See list_searchable_fields.
group_idNoDealer group id (hierarchy: Group, then Region, then Store), e.g. meridian. See list_dealers.
store_idNoStore id, dealer_key plus store ZIP, e.g. bluebonnetridge-75201.
year_maxNoLatest model year.
year_minNoEarliest model year.
buyer_zipNoBuyer'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).
conditionNonew, used or cpo (certified pre-owned). used also returns cpo units.
fuel_typeNogasoline, hybrid, plug_in_hybrid or electric. Use electric for EV or BEV.
price_maxNoMaximum headline price in USD (before tax, title and dealer fees). For a budget that includes taxes and fees, check estimate_out_the_door.
price_minNoMinimum headline price in USD (before tax, title and dealer fees).
region_idNoRegion inside a group, as group_id/region_id (e.g. meridian/dfw-metro) or a bare region id.
scenariosNoOptional 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_rowNoTrue for third row seating only, false to exclude it (synthetic demo spec).
body_styleNosuv, sedan, pickup, hatchback, minivan or wagon. Use pickup for trucks.
buyer_cityNoBuyer's city for payment tax lines.
dealer_keyNoDealer key from list_dealers, e.g. lonemesa.
drivetrainNofwd, awd, rwd or 4wd.
buyer_stateNoBuyer's two-letter state for payment tax and fees. Default: the selling store's state.
credit_tierNoexcellent, 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_mileageNoMaximum odometer miles.
payment_maxNoDEPRECATED alias of max_monthly_payment (still accepted; the lower wins if both are given).
payment_minNoMinimum estimated monthly finance payment in USD (demo estimate).
seating_minNoMinimum seats, e.g. 7 for a third row family vehicle (synthetic demo spec).
term_monthsNoLoan term in months, 12 to 96. Default 60.
trade_valueNoTrade-in allowance in USD (gets the trade-in tax credit where the state allows it).
buyer_countyNoBuyer's county (without 'County') for payment tax lines.
down_paymentNoCash down in USD for payment estimates. Default 0.
radius_milesNoRadius in miles around zip.
trade_equityNoNet trade equity in USD if allowance and payoff are unknown (negative for upside-down); no tax credit is applied for it.
sliding_doorsNoTrue for sliding rear doors (minivans).
dealer_segmentNofranchise, independent_used or bhph (buy-here-pay-here). Each result shows dealer_segment and dealer_type.
exterior_colorNoExterior color family: white, black, silver, gray, blue, red, green or bronze.
third_row_typeNofull (adult-usable, car-seat capable) or compact (small, occasional; e.g. Tiguan). Demo spec.
include_paymentNoTrue to add estimated_payment to every result without filtering on it.
best_value_needsNoWith 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_onlyNoTrue 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_doorNoMaximum 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_doorNoMinimum estimated out-the-door total in USD (same basis as max_out_the_door).
include_near_missesNoWith a payment cap, also return up to 3 listings within $25 above it in near_misses, flagged above_target. Default true.
max_monthly_paymentNoCanonical monthly payment cap: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month' (demo estimate).
eligible_incentive_labelsNolabel_raw values of conditional incentives the buyer says they qualify for; applied to payment estimates where a listing offers them. Off by default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / group_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Dealer group id (hierarchy: Group, then Region, then Store), e.g. meridian. See list_dealers.",
      +  "title": "Group Id"
      +}
    • addedInput schema / properties / region_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Region inside a group, as group_id/region_id (e.g. meridian/dfw-metro) or a bare region id.",
      +  "title": "Region Id"
      +}
    • addedInput schema / properties / store_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Store id, dealer_key plus store ZIP, e.g. bluebonnetridge-75201.",
      +  "title": "Store Id"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / $defs / PaymentScenario / properties / cash
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "True to price paying cash: no loan or interest; omit apr, term_months, credit_tier and down_payment.",
      +  "title": "Cash"
      +}
    • addedInput schema / properties / best_value_needs
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "enum": [
      +          "seats",
      +          "cargo",
      +          "full_third_row",
      +          "sliding_doors",
      +          "low_mileage",
      +          "newer",
      +          "budget_headroom"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Best Value Needs"
      +}
    • addedInput schema / properties / dealer_segment
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "franchise, independent_used or bhph (buy-here-pay-here). Each result shows dealer_segment and dealer_type.",
      +  "title": "Dealer Segment"
      +}
    • addedInput schema / properties / financeable_only
      Added value: +{
      +  "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.",
      +  "title": "Financeable Only",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sliding_doors
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "True for sliding rear doors (minivans).",
      +  "title": "Sliding Doors"
      +}
    • addedInput schema / properties / third_row_type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "full (adult-usable, car-seat capable) or compact (small, occasional; e.g. Tiguan). Demo spec.",
      +  "title": "Third Row Type"
      +}
  3. Changed8 schema fields changed
    • changedInput schema / properties / buyer_zip / description
      Previous value: -"Buyer's ZIP; sets buyer state and city when buyer_state is omitted. If no buyer location is given, zip is used, then the selling store (see payment_assumptions.buyer.source)."New value: +"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)."
    • changedInput schema / properties / max_monthly_payment / description
      Previous value: -"Same as payment_max: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month'. The lower of the two wins if both are given."New value: +"Canonical monthly payment cap: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month' (demo estimate)."
    • addedInput schema / properties / max_out_the_door
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Max Out The Door"
      +}
    • addedInput schema / properties / min_out_the_door
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Minimum estimated out-the-door total in USD (same basis as max_out_the_door).",
      +  "title": "Min Out The Door"
      +}
    • changedInput schema / properties / payment_max / description
      Previous value: -"Maximum estimated monthly finance payment in USD (demo estimate), e.g. 450."New value: +"DEPRECATED alias of max_monthly_payment (still accepted; the lower wins if both are given)."
    • addedInput schema / properties / seating_min
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Minimum seats, e.g. 7 for a third row family vehicle (synthetic demo spec).",
      +  "title": "Seating Min"
      +}
    • changedInput schema / properties / sort / description
      Previous value: -"price_asc (default), price_desc, year_desc, mileage_asc, distance_asc (needs zip), payment_asc or payment_desc."New value: +"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)."
    • addedInput schema / properties / third_row
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "True for third row seating only, false to exclude it (synthetic demo spec).",
      +  "title": "Third Row"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / $defs / PaymentScenario / properties / credit_tier / description
      Previous value: -"Picks the demo APR when apr is omitted."New value: +"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%)."
    • changedInput schema / properties / credit_tier / description
      Previous value: -"excellent, good (default), fair or poor; picks the demo APR when apr is omitted."New value: +"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%)."
  5. Changed6 schema fields changed
    • addedInput schema / $defs / PaymentScenario
      Added value: +{
      +  "description": "One what-if finance scenario. Omitted fields use the call's defaults ($0 down, 60 months, good credit).",
      +  "properties": {
      +    "apr": {
      +      "anyOf": [
      +        {
      +          "maximum": 36,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "APR percent; overrides credit_tier.",
      +      "title": "Apr"
      +    },
      +    "credit_tier": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "excellent",
      +            "good",
      +            "fair",
      +            "poor"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Picks the demo APR when apr is omitted.",
      +      "title": "Credit Tier"
      +    },
      +    "down_payment": {
      +      "anyOf": [
      +        {
      +          "maximum": 500000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Cash down in USD.",
      +      "title": "Down Payment"
      +    },
      +    "eligible_incentive_labels": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "maxItems": 10,
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "label_raw values of conditional incentives the buyer qualifies for.",
      +      "title": "Eligible Incentive Labels"
      +    },
      +    "name": {
      +      "anyOf": [
      +        {
      +          "maxLength": 60,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Short label, e.g. '3k down 72 mo'.",
      +      "title": "Name"
      +    },
      +    "payoff": {
      +      "anyOf": [
      +        {
      +          "maximum": 500000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Loan payoff owed on the trade-in, USD.",
      +      "title": "Payoff"
      +    },
      +    "term_months": {
      +      "anyOf": [
      +        {
      +          "maximum": 96,
      +          "minimum": 12,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Loan term in months, 12 to 96.",
      +      "title": "Term Months"
      +    },
      +    "trade_equity": {
      +      "anyOf": [
      +        {
      +          "maximum": 500000,
      +          "minimum": -500000,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Net trade equity if allowance and payoff are unknown; no tax credit.",
      +      "title": "Trade Equity"
      +    },
      +    "trade_value": {
      +      "anyOf": [
      +        {
      +          "maximum": 500000,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Trade-in allowance in USD (gets the state's trade-in tax credit).",
      +      "title": "Trade Value"
      +    }
      +  },
      +  "title": "PaymentScenario",
      +  "type": "object"
      +}
    • changedInput schema / properties / buyer_zip / description
      Previous value: -"Buyer's ZIP; sets buyer state and city when buyer_state is omitted."New value: +"Buyer's ZIP; sets buyer state and city when buyer_state is omitted. If no buyer location is given, zip is used, then the selling store (see payment_assumptions.buyer.source)."
    • addedInput schema / properties / eligible_incentive_labels
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Eligible Incentive Labels"
      +}
    • addedInput schema / properties / include_near_misses
      Added value: +{
      +  "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.",
      +  "title": "Include Near Misses",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / max_monthly_payment
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Same as payment_max: the shopper's monthly budget in USD, e.g. 300 for 'under $300/month'. The lower of the two wins if both are given.",
      +  "title": "Max Monthly Payment"
      +}
    • addedInput schema / properties / scenarios
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/PaymentScenario"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Scenarios"
      +}
  6. Changed37 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "FieldFilter": {
      +    "description": "One generic filter on any ontology field (see list_searchable_fields).",
      +    "properties": {
      +      "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.",
      +        "title": "Field",
      +        "type": "string"
      +      },
      +      "max": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Upper bound for range (inclusive).",
      +        "title": "Max"
      +      },
      +      "min": {
      +        "anyOf": [
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Lower bound for range (inclusive).",
      +        "title": "Min"
      +      },
      +      "negate": {
      +        "default": false,
      +        "description": "True to invert the filter.",
      +        "title": "Negate",
      +        "type": "boolean"
      +      },
      +      "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.",
      +        "enum": [
      +          "eq",
      +          "any_of",
      +          "contains",
      +          "range",
      +          "bool",
      +          "exists"
      +        ],
      +        "title": "Op",
      +        "type": "string"
      +      },
      +      "value": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Value for eq, contains, bool or exists.",
      +        "title": "Value"
      +      },
      +      "values": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "anyOf": [
      +                {
      +                  "type": "boolean"
      +                },
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Values for any_of.",
      +        "title": "Values"
      +      }
      +    },
      +    "required": [
      +      "field"
      +    ],
      +    "title": "FieldFilter",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / apr
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "APR percent for payment estimates. If omitted, a demo APR by credit_tier is used.",
      +  "title": "Apr"
      +}
    • addedInput schema / properties / body_style / description
      Added value: +"suv, sedan, pickup, hatchback, minivan or wagon. Use pickup for trucks."
    • addedInput schema / properties / buyer_city
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Buyer's city for payment tax lines.",
      +  "title": "Buyer City"
      +}
    • addedInput schema / properties / buyer_county
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Buyer's county (without 'County') for payment tax lines.",
      +  "title": "Buyer County"
      +}
    • addedInput schema / properties / buyer_state
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Buyer's two-letter state for payment tax and fees. Default: the selling store's state.",
      +  "title": "Buyer State"
      +}
    • addedInput schema / properties / buyer_zip
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Buyer's ZIP; sets buyer state and city when buyer_state is omitted.",
      +  "title": "Buyer Zip"
      +}
    • addedInput schema / properties / city / description
      Added value: +"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."
    • addedInput schema / properties / condition / description
      Added value: +"new, used or cpo (certified pre-owned). used also returns cpo units."
    • addedInput schema / properties / credit_tier
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "excellent, good (default), fair or poor; picks the demo APR when apr is omitted.",
      +  "title": "Credit Tier"
      +}
    • addedInput schema / properties / dealer_key / description
      Added value: +"Dealer key from list_dealers, e.g. lonemesa."
    • addedInput schema / properties / down_payment
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Cash down in USD for payment estimates. Default 0.",
      +  "title": "Down Payment"
      +}
    • addedInput schema / properties / drivetrain / description
      Added value: +"fwd, awd, rwd or 4wd."
    • addedInput schema / properties / exterior_color
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Exterior color family: white, black, silver, gray, blue, red, green or bronze.",
      +  "title": "Exterior Color"
      +}
    • addedInput schema / properties / filters
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/FieldFilter"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Filters"
      +}
    • addedInput schema / properties / fuel_type / description
      Added value: +"gasoline, hybrid, plug_in_hybrid or electric. Use electric for EV or BEV."
    • addedInput schema / properties / include_payment
      Added value: +{
      +  "default": false,
      +  "description": "True to add estimated_payment to every result without filtering on it.",
      +  "title": "Include Payment",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit / description
      Added value: +"Results per page, 1 to 50. Each result is about 2 KB; 5 to 10 is usually enough."
    • addedInput schema / properties / make / description
      Added value: +"Make, case-insensitive, e.g. Honda, Ford, Tesla. 14 makes are present."
    • addedInput schema / properties / max_mileage / description
      Added value: +"Maximum odometer miles."
    • addedInput schema / properties / model / description
      Added value: +"Model with its punctuation, case-insensitive: CR-V, F-150, Model 3, Mustang Mach-E."
    • addedInput schema / properties / offset / description
      Added value: +"Paging offset."
    • addedInput schema / properties / payment_max
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum estimated monthly finance payment in USD (demo estimate), e.g. 450.",
      +  "title": "Payment Max"
      +}
    • addedInput schema / properties / payment_min
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Minimum estimated monthly finance payment in USD (demo estimate).",
      +  "title": "Payment Min"
      +}
    • addedInput schema / properties / payoff
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Loan payoff owed on the trade-in, USD.",
      +  "title": "Payoff"
      +}
    • addedInput schema / properties / price_max / description
      Added value: +"Maximum headline price in USD (before tax, title and dealer fees). For a budget that includes taxes and fees, check estimate_out_the_door."
    • addedInput schema / properties / price_min / description
      Added value: +"Minimum headline price in USD (before tax, title and dealer fees)."
    • addedInput schema / properties / radius_miles / description
      Added value: +"Radius in miles around zip."
    • addedInput schema / properties / sort / description
      Added value: +"price_asc (default), price_desc, year_desc, mileage_asc, distance_asc (needs zip), payment_asc or payment_desc."
    • addedInput schema / properties / state / description
      Added value: +"Two-letter code of the selling store's state: TX, CA, FL, GA, AZ, IL, NY or OH. Not the full name."
    • addedInput schema / properties / term_months
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Loan term in months, 12 to 96. Default 60.",
      +  "title": "Term Months"
      +}
    • addedInput schema / properties / trade_equity
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "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.",
      +  "title": "Trade Equity"
      +}
    • addedInput schema / properties / trade_value
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Trade-in allowance in USD (gets the trade-in tax credit where the state allows it).",
      +  "title": "Trade Value"
      +}
    • addedInput schema / properties / trim / description
      Added value: +"Trim name, e.g. LX, EX-L, Lariat."
    • addedInput schema / properties / year_max / description
      Added value: +"Latest model year."
    • addedInput schema / properties / year_min / description
      Added value: +"Earliest model year."
    • addedInput schema / properties / zip / description
      Added value: +"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."
  7. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: synthetic data (must be disclosed to the shopper), exact-match vocabulary semantics where 0 often means a wrong value, zero-result hints and zip-based coverage output, near_misses behavior, financeable_only dropping listings, payment assumption defaults, and the 'estimate, not an offer... not penny-accurate' caveat.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body is a dense run-on covering result fields, payments, coverage, financing and caveats with no headings or grouping. Nearly every clause carries information, yet the volume and lack of structure make it harder to scan than it needs to be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 52-parameter tool with no output schema and no annotations, the description covers the data model, per-result fields, payment assumptions, zero-result and coverage behavior, and disclaimers. An agent has what it needs to invoke and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description still adds value: worked filters examples with dotted field paths, the payment_min/payment_max semantics tied to the demo out-the-door estimate, and the best_value score formula. This meaningfully supplements rather than repeats the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope: searching a synthetic demo inventory of ~860 fictional vehicles at 20 dealers across named states. It distinguishes its data universe from real listings and points to compare_payment_scenarios for the scenario-comparison sibling, so an agent can place it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives actionable routing: check parameter descriptions, widen radius_miles or drop a filter on a zero total, pass max_monthly_payment=300 for 'under $300/month', and use compare_payment_scenarios to compare one car's scenarios. It does not state when NOT to use this versus get_listing/estimate_out_the_door, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources