MarketCheck Listings API
Search and retrieve active car listings
Search and retrieve active car listings
openapi: 3.0.0
info:
title: MarketCheck Cars Dealer Listings API
description: Access the New, Used and Certified cars inventories for all Car Dealers in US. The data is sourced from online listings by over 44,000 Car dealers in US. At any time, there are about 6.2M searchable listings (about 1.9M unique VINs) for Used & Certified cars and about 6.6M (about 3.9M unique VINs) New Car listings from all over US. MarketCheck aggregates billions of data points from over 44,000 US and 3,500 Canadian dealerships, offering daily-updated inventory search, price prediction, market days supply, OEM incentives, auction listings, and third-party integrations for recalls, title checks, and plate-to-VIN lookups.
version: 1.0.3
contact:
name: MarketCheck
url: https://www.marketcheck.com/
termsOfService: https://www.marketcheck.com/terms/
servers:
- url: https://mc-api.marketcheck.com/v1
description: MarketCheck Production API
tags:
- name: Listings
description: Search and retrieve active car listings
paths:
/search:
get:
tags:
- Listings
summary: Gets active car listings for the given search criteria
operationId: search
description: This endpoint is the meat of the API and serves many purposes. This API produces a list of currently active cars from the market for the given search criteria. The API results are limited to allow pagination upto 1000 rows. The search API facilitates the following use cases - 1. Search Cars around a given geo-point within a given radius 2. Search cars for a specific year / make / model or combination of these 3. Search cars matching multiple year, make, model combinations in the same search request 4. Filter results by most car specification attributes 5. Search for similar cars by VIN or Taxonomy VIN 6. Filter cars within a given price / miles / days on market (dom) range 7. Specify a sort order for the results on price / miles / dom / listed date 8. Search cars for a given City / State combination 9. Get Facets to build the search drill downs 10. Get Market averages for price/miles/dom/msrp for your search
parameters:
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
- name: latitude
in: query
description: Latitude component of location
schema:
type: number
format: float
- name: longitude
in: query
description: Longitude component of location
schema:
type: number
format: float
- name: radius
in: query
description: Radius around the search location
schema:
type: integer
- name: car_type
in: query
description: 'Car type. Allowed values are: new / used / certified'
schema:
type: string
enum:
- new
- used
- certified
- name: seller_type
in: query
description: Seller type to filter cars on. You can pass in multiple seller type values comma separated.
schema:
type: string
- name: year
in: query
description: Car year - 1980 onwards. You can pass in multiple year values comma separated.
schema:
type: string
- name: make
in: query
description: Car Make - should be a standard OEM Make name. You can pass in multiple make values separated by comma. e.g. ford,audi
schema:
type: string
- name: model
in: query
description: Car model to search. You can pass in multiple model values comma separated for e.g f-150,Mustang.
schema:
type: string
- name: trim
in: query
description: Car trim to search. You can pass in multiple trim values comma separated.
schema:
type: string
- name: dealer_id
in: query
description: Dealer id to filter the cars.
schema:
type: string
- name: vin
in: query
description: Car vin to search
schema:
type: string
- name: source
in: query
description: Source to search cars. You can pass in multiple source values comma separated.
schema:
type: string
- name: body_type
in: query
description: Body type to filter the cars on. You can pass in multiple body types comma separated.
schema:
type: string
- name: body_subtype
in: query
description: Body subtype to filter the cars on. You can pass in multiple body subtype values comma separated.
schema:
type: string
- name: vehicle_type
in: query
description: Vehicle type to filter the cars on. You can pass in multiple vehicle type values comma separated.
schema:
type: string
- name: vins
in: query
description: Comma separated list of 17 digit vins to search the matching cars for. Only 10 VINs allowed per request.
schema:
type: string
- name: taxonomy_vins
in: query
description: Comma separated list of 10 letter taxonomy VINs (first 8 + 10th + 11th chars of 17-digit VIN).
schema:
type: string
- name: ymmt
in: query
description: Comma separated list of Year|Make|Model|Trim combinations. e.g. 2010|Audi|A5,2014|Nissan|Sentra|S 6MT
schema:
type: string
- name: match
in: query
description: Comma separated list of fields for exact matching (year,make,model,trim).
schema:
type: string
- name: cylinders
in: query
description: Cylinders to filter the cars on. You can pass in multiple cylinder values comma separated.
schema:
type: string
- name: transmission
in: query
description: Transmission to filter the cars on. [a = Automatic, m = Manual].
schema:
type: string
- name: speeds
in: query
description: Speeds to filter the cars on. You can pass in multiple speeds values comma separated.
schema:
type: string
- name: doors
in: query
description: Doors to filter the cars on. You can pass in multiple doors values comma separated.
schema:
type: string
- name: drivetrain
in: query
description: Drivetrain to filter the cars on. You can pass in multiple drivetrain values comma separated.
schema:
type: string
- name: exterior_color
in: query
description: Exterior color to match. You can pass in multiple exterior color values comma separated.
schema:
type: string
- name: interior_color
in: query
description: Interior color to match. You can pass in multiple interior color values comma separated.
schema:
type: string
- name: engine
in: query
description: Filter listings on engine
schema:
type: string
- name: engine_type
in: query
description: Engine Type to match. You can pass in multiple engine type values comma separated.
schema:
type: string
- name: engine_aspiration
in: query
description: Engine Aspiration to match. You can pass in multiple Engine aspiration values comma separated.
schema:
type: string
- name: engine_block
in: query
description: Engine Block to match. You can pass in multiple Engine Block values comma separated.
schema:
type: string
- name: miles_range
in: query
description: 'Miles range to filter cars with miles in the given range. Range to be given in the format: min-max e.g. 1000-5000'
schema:
type: string
- name: price_range
in: query
description: 'Price range to filter cars with the price in the range given. Range to be given in the format: min-max e.g. 1000-5000'
schema:
type: string
- name: dom_range
in: query
description: 'Days on Market range to filter cars with the DOM within the given range. Range to be given in the format: min-max e.g. 10-50'
schema:
type: string
- name: sort_by
in: query
description: Sort by field - allowed fields are distance|price|miles|dom|age|posted_at|year. Default sort field is distance from the given point.
schema:
type: string
enum:
- distance
- price
- miles
- dom
- age
- posted_at
- year
- name: sort_order
in: query
description: Sort order - asc or desc. Default sort order is distance from a point.
schema:
type: string
enum:
- asc
- desc
- name: rows
in: query
description: Number of results to return. Default is 10. Max is 50.
schema:
type: integer
default: 10
maximum: 50
- name: start
in: query
description: Page number to fetch the results for the given criteria. Default is 1. Pagination is allowed only till first 1000 results.
schema:
type: integer
default: 1
- name: facets
in: query
description: The comma separated list of fields for which facets are requested. Supported fields are - year, make, model, trim, vehicle_type, car_type, body_type, body_subtype, drivetrain, cylinders, transmission, exterior_color, interior_color, doors, engine_type, engine_aspiration, engine_block.
schema:
type: string
- name: stats
in: query
description: The list of fields for which stats need to be generated. Allowed fields are - price, miles, msrp, dom.
schema:
type: string
- name: country
in: query
description: Filter on Country, by default US. Search available on US (United States) and CA (Canada).
schema:
type: string
enum:
- US
- CA
default: US
- name: plot
in: query
description: If plot has value true results in around 25k coordinates with limited fields to plot respective graph.
schema:
type: string
- name: nodedup
in: query
description: If nodedup is set to true then will give results using is_searchable.
schema:
type: string
- name: state
in: query
description: Filter listings on State.
schema:
type: string
- name: city
in: query
description: Filter listings on city.
schema:
type: string
- name: dealer_name
in: query
description: Filter listings on dealer_name.
schema:
type: string
- name: trim_o
in: query
description: Filter listings on web scraped trim.
schema:
type: string
- name: trim_r
in: query
description: Filter trim on custom possible matches.
schema:
type: string
- name: dom_active_range
in: query
description: 'Active Days on Market range to filter cars. Range to be given in the format: min-max e.g. 10-50'
schema:
type: string
- name: dom_180_range
in: query
description: 'Last 180 Days on Market range to filter cars. Range to be given in the format: min-max e.g. 10-50'
schema:
type: string
- name: options
in: query
description: Tokenizer search on options. For multiple options use | as separator.
schema:
type: string
- name: features
in: query
description: Tokenizer search on features. For multiple options use | as separator.
schema:
type: string
responses:
'200':
description: Successful response with search results
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized - Invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/listing/{id}:
get:
tags:
- Listings
summary: Listing by id
operationId: getListing
description: Get a particular listing by its id
parameters:
- name: id
in: path
required: true
description: Listing id to get all the listing attributes
schema:
type: string
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
responses:
'200':
description: Successful response with listing details
content:
application/json:
schema:
$ref: '#/components/schemas/Listing'
'404':
description: Listing not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/listing/{id}/extra:
get:
tags:
- Listings
summary: Long text Listings attributes for Listing with the given id
operationId: getListingExtra
description: Get listing options, features, seller comments
parameters:
- name: id
in: path
required: true
description: Listing id to get all the long text listing attributes
schema:
type: string
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
responses:
'200':
description: Successful response with extra listing attributes
content:
application/json:
schema:
$ref: '#/components/schemas/ListingExtraAttributes'
'404':
description: Listing not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/listing/{id}/media:
get:
tags:
- Listings
summary: Listing media by id
operationId: getListingMedia
description: Get listing media (photo, photos) by id
parameters:
- name: id
in: path
required: true
description: Listing id to get all the listing attributes
schema:
type: string
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
responses:
'200':
description: Successful response with listing media
content:
application/json:
schema:
$ref: '#/components/schemas/ListingMedia'
'404':
description: Listing not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/listing/{id}/vdp:
get:
tags:
- Listings
summary: Get listing HTML
operationId: getListingVDP
description: Cached HTML of the Vehicle Details Page (VDP) for the listing. The HTML is cached only for 7 days for all listings.
parameters:
- name: id
in: path
required: true
description: Listing id to get the vehicle details page (VDP) HTML
schema:
type: string
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
- name: html
in: query
description: Get only HTML for given listings VDP page
schema:
type: string
responses:
'200':
description: Successful response with VDP HTML
content:
application/json:
schema:
$ref: '#/components/schemas/ListingVDP'
'404':
description: Listing not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/vin_report_summary:
get:
tags:
- Listings
summary: Get Summary Report
operationId: getSummaryReport
description: Generate Summary report for a given VIN
parameters:
- name: vin
in: query
required: true
description: VIN as a reference to the type of car for which Summary data is to be returned
schema:
type: string
- name: api_key
in: query
description: The API Authentication Key. Mandatory with all API calls.
schema:
type: string
responses:
'200':
description: Successful response with summary report
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VinReport'
components:
schemas:
Dealer:
type: object
description: Dealer information
properties:
id:
type: string
description: Unique dealer identifier
name:
type: string
description: Dealer name
website:
type: string
description: Dealer website URL
dealer_type:
type: string
description: Type of dealership
zip:
type: string
description: Dealer zip code
city:
type: string
description: Dealer city
state:
type: string
description: Dealer state
latitude:
type: number
description: Dealer latitude
longitude:
type: number
description: Dealer longitude
phone:
type: string
description: Dealer phone number
franchises:
type: array
items:
type: string
description: List of car franchises/makes the dealer carries
SearchResponse:
type: object
description: Response object from search API
properties:
num_found:
type: integer
description: Total number of listings found
listings:
type: array
items:
$ref: '#/components/schemas/Listing'
stats:
type: object
description: Statistics for the search results
additionalProperties: true
facets:
type: object
description: Facets for the search results
additionalProperties: true
ListingMedia:
type: object
description: Media assets associated with a listing
properties:
id:
type: string
photo_links:
type: array
items:
type: string
description: List of photo URLs
photo_count:
type: integer
description: Total number of photos
VinReport:
type: object
description: Summary report for a VIN
properties:
vin:
type: string
year:
type: integer
make:
type: string
model:
type: string
trim:
type: string
avg_price:
type: number
avg_miles:
type: number
num_active_listings:
type: integer
Listing:
allOf:
- $ref: '#/components/schemas/BaseListing'
type: object
description: Full listing object with all attributes
properties:
vdp_url:
type: string
description: URL to the Vehicle Details Page
stock_no:
type: string
description: Dealer stock number
inventory_type:
type: string
description: Inventory classification
ListingVDP:
type: object
description: Vehicle Details Page HTML content
properties:
id:
type: string
html:
type: string
description: Cached HTML content of the Vehicle Details Page
BaseListing:
type: object
description: Base listing object containing minimal car listing information
properties:
id:
type: string
description: Unique listing identifier
vin:
type: string
description: Vehicle Identification Number
heading:
type: string
description: Listing heading / title
price:
type: number
description: Listed price in USD
miles:
type: integer
description: Odometer reading in miles
msrp:
type: number
description: Manufacturer Suggested Retail Price
data_source:
type: string
description: Source of the listing data
source_url:
type: string
description: URL to the original listing source
seller_type:
type: string
description: 'Type of seller: dealer, private, auction'
enum:
- dealer
- private
- auction
car_type:
type: string
description: Type of car listing
enum:
- new
- used
- certified
scraped_at:
type: integer
description: Unix timestamp when the listing was scraped
last_seen_at:
type: integer
description: Unix timestamp when the listing was last seen
first_seen_at:
type: integer
description: Unix timestamp when the listing was first seen
dom:
type: integer
description: Days on market
dom_180:
type: integer
description: Days on market in the last 180 days
dom_active:
type: integer
description: Active days on market
dealer_id:
type: string
description: Dealer identifier
ref_price:
type: number
description: Reference/comparison price
ref_miles:
type: number
description: Reference/comparison miles
ref_year:
type: integer
description: Reference year
build:
$ref: '#/components/schemas/Build'
dealer:
$ref: '#/components/schemas/Dealer'
Build:
type: object
description: Vehicle build/specification information decoded from VIN
properties:
year:
type: integer
description: Model year
make:
type: string
description: Vehicle make
model:
type: string
description: Vehicle model
trim:
type: string
description: Vehicle trim level
body_type:
type: string
description: Body type (sedan, SUV, truck, etc.)
vehicle_type:
type: string
description: Vehicle type classification
transmission:
type: string
description: Transmission type
drivetrain:
type: string
description: Drivetrain type (FWD, AWD, RWD, 4WD)
fuel_type:
type: string
description: Fuel type
engine:
type: string
description: Engine description
engine_size:
type: string
description: Engine displacement
cylinders:
type: integer
description: Number of cylinders
doors:
type: integer
description: Number of doors
made_in:
type: string
description: Country of manufacture
highway_fuel_economy:
type: integer
description: Highway fuel economy in MPG
city_fuel_economy:
type: integer
description: City fuel economy in MPG
ListingExtraAttributes:
type: object
description: Extra long-text attributes for a listing
properties:
id:
type: string
seller_comments:
type: string
description: Seller comments from the listing
options:
type: array
items:
type: string
description: List of vehicle options
features:
type: array
items:
type: string
description: List of vehicle features
Error:
type: object
properties:
message:
type: string
description: Error message
code:
type: integer
description: Error code
externalDocs:
description: MarketCheck API Documentation
url: https://docs.marketcheck.com/docs/api/cars