AutosXchange / Developers

AutosXchange for AI agents and developers

AutosXchange tracks U.S. dealer listings (asking prices verified on dealer websites, history since 2026-11-05). Machines get this data through the channels below. Bulk scraping of pages or the internal inventory feed is not permitted; every answer you build from our data should link the canonical page it came from.

1. MCP server (recommended for AI agents)

Endpoint: https://autos-xchange.com/api/mcp · transport: Streamable HTTP (POST, JSON-RPC 2.0, stateless) · protocol versions: 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 · no authentication for the read-only tools.

{"mcpServers":{"autos-xchange":{"type":"http","url":"https://autos-xchange.com/api/mcp"}}}
curl -s https://autos-xchange.com/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' -H 'Mcp-Method: tools/call' -H 'Mcp-Name: search_listings' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_listings","arguments":{"make":"Toyota","model":"RAV4","zip":"95814","radius_mi":50,"limit":5},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"curl","version":"1"},"io.modelcontextprotocol/clientCapabilities":{}}}}'

search_listings Search vehicle listings

Search current AutosXchange vehicle listings (U.S. dealers and reviewed private sellers). Filters: make, model, year range, price range, max miles, condition, body, state, or ZIP + radius. Returns at most 25 listings per call (pages 1-4) with the canonical listing URL to cite.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "make": {
      "type": "string",
      "description": "Make, e.g. \"Toyota\""
    },
    "model": {
      "type": "string",
      "description": "Model, e.g. \"RAV4\""
    },
    "year_min": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "year_max": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "price_min": {
      "type": "number",
      "minimum": 0
    },
    "price_max": {
      "type": "number",
      "minimum": 0
    },
    "miles_max": {
      "type": "number",
      "minimum": 0
    },
    "condition": {
      "type": "string",
      "enum": [
        "new",
        "used"
      ]
    },
    "body": {
      "type": "string",
      "description": "Body type, e.g. suv, truck, sedan, coupe"
    },
    "state": {
      "type": "string",
      "description": "Two-letter state code"
    },
    "zip": {
      "type": "string",
      "pattern": "^\\d{5}$"
    },
    "radius_mi": {
      "type": "integer",
      "minimum": 5,
      "maximum": 250,
      "default": 50
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "price_asc",
        "price_desc",
        "miles",
        "nearest"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "default": 1
    }
  }
}

get_listing Get one listing

One current listing by its AutosXchange slug (the last part of /cars/<slug>) or by 17-character VIN: price, miles, dealer, location, canonical URL.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "slug": {
      "type": "string"
    },
    "vin": {
      "type": "string",
      "pattern": "^[A-HJ-NPR-Za-hj-npr-z0-9]{17}$"
    }
  }
}

vin_history VIN listing history

Listing timeline of a VIN tracked by AutosXchange since 2026-11-05: every dealer listing period (dealer, place, first/last seen), asking-price changes and whether it is listed now.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "vin"
  ],
  "properties": {
    "vin": {
      "type": "string",
      "pattern": "^[A-HJ-NPR-Za-hj-npr-z0-9]{17}$"
    }
  }
}

market_stats Market statistics for a model

Asking-price market statistics for a make / model (optionally model year) nationally or for a region: current listing count, median and 10th-90th percentile asking price, plus the AutosXchange Intel market cells (published only above sample-size thresholds).

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "make"
  ],
  "properties": {
    "make": {
      "type": "string"
    },
    "model": {
      "type": "string"
    },
    "year": {
      "type": "integer",
      "minimum": 1900,
      "maximum": 2100
    },
    "region": {
      "type": "string",
      "description": "US (default), a state code like CA, a city like CA/sacramento, or a census region R:west|R:south|R:midwest|R:northeast"
    }
  }
}

price_changes Recent dealer price changes

Latest dealer asking-price cuts and raises (last 24h / 7d / 30d) with filters. At most 25 rows per call (pages 1-4). Our own data corrections are never counted as price changes.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "make": {
      "type": "string"
    },
    "model": {
      "type": "string"
    },
    "year": {
      "type": "integer"
    },
    "state": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "dealer": {
      "type": "string",
      "description": "Dealer id (from dealer URLs /dealers/<id>)"
    },
    "direction": {
      "type": "string",
      "enum": [
        "cuts",
        "raises",
        "all"
      ],
      "default": "all"
    },
    "period": {
      "type": "string",
      "enum": [
        "24h",
        "7d",
        "30d"
      ],
      "default": "7d"
    },
    "condition": {
      "type": "string",
      "enum": [
        "new",
        "used"
      ]
    },
    "sort": {
      "type": "string",
      "enum": [
        "new",
        "usd",
        "pct",
        "usd-up",
        "pct-up"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 10,
      "maximum": 25,
      "default": 10
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "default": 1
    }
  }
}

compare_dealers Compare a dealer

Compare one dealership with another dealership or with an area (its ZIP within 25 miles, city, state, census region or the U.S.): cars for sale now, median asking price, and tracked activity since 2026-11-05 (price cuts and raises, share of listings cut, average cut, new listings, removals; per 100 cars for areas). Every number is measured by AutosXchange; nothing is estimated.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "dealer"
  ],
  "properties": {
    "dealer": {
      "type": "string",
      "description": "Dealer id, the last part of https://autos-xchange.com/dealers/<id>"
    },
    "compare_with": {
      "type": "string",
      "description": "Another dealer id, or zip:95825, city:CA/sacramento, state:CA, region:west|south|midwest|northeast, or us. Default: the dealer's city."
    }
  }
}

dealer_profile Dealer profile

A dealership on AutosXchange: verified address and public contact, current inventory summary (count, top makes, median asking price, new/used) and its pricing intel when published.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Dealer id, the last part of https://autos-xchange.com/dealers/<id>"
    }
  }
}

Limits: at most 25 rows per call and 4 pages per query; 60 calls per minute, 600 per hour, 3,000 per day per client. Answers are JSON (structuredContent) with url fields to cite.

2. Agent card and discovery files

3. Public intel API

https://autos-xchange.com/api/intel-public?view=<view> · aggregates licensed CC BY 4.0 with attribution "Source: AutosXchange". OpenAPI: /api/docs?format=openapi.

viewwhatparameters
statusBuild time, rules, counts of the intel aggregates.
vinhistListing timeline of one VIN (dealers, dates, asking prices).vin
marketMarket cells for a make / model / model year by geography.make, model, year
changesLatest asking-price cuts and raises (json, csv, rss).dir, period, make, model, year, state, city, dealer, cond, sort, page, per
moversSame-store price movers by geography and period.geo, period, format
dealerDealer pricing intel (published above thresholds).id
geoAll-vehicle market cell, segments, movers and alerts for a geography.geo
trendsMarket trend alerts (also trends-feed RSS).page
sold / addedCars removed from / added to dealer inventory.filters, group, page, per, format

Fair use: per-IP rate limits (generous for people browsing, strict for bulk paging); CSV downloads capped at 2,000 rows per request; queries serve their first 5,000 rows. Responses carry RateLimit-* headers and 429 + Retry-After when exceeded.

4. Inventory feed

/api/inventory.json returns totals and a 50-row preview; ?summary=1 totals only. The full feed is for AutosXchange services. For data partnerships or press access, call AutosXchange at (916) 476-7689 or use /for-dealers.

Data notes

Prices are dealer-advertised asking prices, not sold prices. Listings that fail our data-integrity rules stay listed with flags and are excluded from all market statistics. Our own corrections are never reported as dealer price changes.