The Dealership Inventory Syndication API provides access to a dealer's complete active inventory, including duplicate listings across multiple sources. This is specifically designed for inventory syndication workflows where comprehensive data access is required on dealer level inventory.
Units & Conventions:
Field / Pattern | Unit | Notes |
---|---|---|
price, msrp | USD (US), CAD (CA) | Applies to all price-like currency fields |
miles, radius, dist | Miles | Applies to both markets in request as well as response |
*_at | Unix epoch seconds (UTC) | Applies to all timestamp fields (e.g. last_seen_at ) |
*_at_date | ISO-8601 YYYY-MM-DDThh:mm:ssZ (UTC) | Same instant as the matching *_at field |
city_mpg, highway_mpg | Miles per Gallon | Applies to both markets |
GET https://api.marketcheck.com/v2/dealerships/inventory
The following example demonstrates a basic request to retrieve dealer inventory:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
dealer_id: '1035095',
start: 0,
rows: 5,
facets: 'year,make',
stats: 'price'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Explore the full range of parameters available for filtering, sorting, and configuring search results in the Parameters section below.
The Dealership Inventory Syndication API provides access to dealer-specific inventory with enhanced capabilities for syndication workflows. You can search by specifying the target dealer using at least one of the available dealer identification parameters, and optionally apply additional filtering, sorting, and analysis parameters.
Available parameters for filtering, sorting, and configuring search results:
Your MarketCheck API authentication key. Required for every request, unless OAuth is used.
If true
, the response URLs (such as cached images & relevant links) include the api_key
query parameter along with value; if false
, they do not. Default — true
.
The base exterior color to filter results by (e.g. White, Black, Blue, Silver, Red). Accepts multiple colors as a comma-separated list.
Alias for base_ext_color
. Filters by base exterior color (comma-separated list).
The base interior color to filter results by (e.g. Black, Brown, Beige, Red). Accepts multiple colors as a comma-separated list.
Alias for base_int_color
. Filters by base interior color (comma-separated list).
Filters listings by body subtype (e.g., Crew, Extended, Regular, Extended Crew). Accepts multiple values separated by commas.
Filters listings by body type (e.g., SUV, Pickup, Sedan, Hatchback, Convertible). Accepts multiple values separated by commas.
Filters listings by inventory type. Allowed values - new
, used
, certified
.
Filters listings by city name (e.g. Los Angeles
, San Francisco
, Houston
).
Filters listings by city fuel-economy mileage. Specify as min-max
MPG (e.g., 20-35
).
Filters listings by country code. Allowed values - us
, ca
, all
. Default — us
.
Filters listings by engine cylinder count (e.g., 4
, 6
, 8
). Accepts multiple values as a comma-separated list.
Filters listings by MarketCheck dealer ID.
Filters listings by dealer name (case-insensitive complete match, substring not supported).
Filters dealers by type. Allowed values — franchise
, independent
.
Filters listings by the name of the dealership group. Accepts multiple values as a comma-separated list.
Filters listings by Days on Market observed over the last 180 days. Specify as min-max
days (e.g., 10-50
).
Filters listings by active Days on Market (DOM). Specify as min-max
days.
Filters listings by total Days on Market (DOM). Specify as min-max
days.
Filters listings by number of doors (e.g., 2
, 4
). Accepts multiple values as comma-separated list.
Filters listings by active Days on Site (DOS). Specify as min-max
days.
Filters listings by drivetrain (FWD
, RWD
, 4WD
). Accepts multiple values separated by commas.
Filters listings by engine designation (e.g., 2.0L I4
, 3.5L V6
, 2.5L H4
). Accepts multiple values as comma-separated list.
Filters listings by engine aspiration (Turbocharged
, Naturally Aspirated
, etc.). Accepts multiple values separated by commas.
Filters listings by engine block layout (V
, I
, H
). Accepts multiple values separated by commas.
Filters listings by engine displacement size (e.g., 2.0
, 2.5
, 3.5
). Accepts multiple values separated by commas.
Filters listings by engine displacement size. Specify as min-max
liters (e.g., 1.5-3.0
).
Filters listings by exterior color (e.g. White
, Summit White
, Gun Metallic
). Accepts multiple values as comma-separated list.
Sorts facet buckets. Allowed values — count
(descending count, default) or index
(alphabetical).
Field name to return bucket facets for. Accepts multiple fields as a comma-separated list.
Filters listings by the number of days since they were first seen by MarketCheck. Specify as min-max
days. Alternative of first_seen_at_mc_range
.
Filters listings by the date they were first seen by MarketCheck. Specify as YYYYMMDD-YYYYMMDD
(e.g., 20220523-20220631
). Alternative of first_seen_at_mc_days
.
Filters listings by the number of days since first seen on the source site. Specify as min-max
days. Alternative of first_seen_at_source_range
.
Filters listings by date first seen on the source site. Specify as YYYYMMDD-YYYYMMDD
. Alternative of first_seen_at_source_days
.
Filters listings by the number of days since they were first seen in MarketCheck inventory. Specify as min-max
days. Alternative of first_seen_range
.
Filters listings by the first seen date. Specify as YYYYMMDD-YYYYMMDD
(e.g., 20220523-20220631
). Alternative of first_seen_days
.
Filters listings by fuel type (e.g., Unleaded
, Diesel
, Electric
, Premium Unleaded
, Electric / Unleaded
). Accepts multiple values separated by commas.
Filters listings by highway fuel-economy mileage. Specify as min-max
MPG (e.g., 25-40
).
If true
, returns listings marked as in transit; if false
or omitted, no in-transit filter is applied.
If true
, includes listings without a VIN; if false
, such listings are excluded. Default — false.
If true
, includes relevant links to other MarketCheck API endpoints in the response. Default — false.
Filters listings by interior color. Accepts multiple values as comma-separated list.
Filters listings by the number of days since last seen. Specify as min-max
days. Alternative of last_seen_at_range
.
Filters listings by last seen date. Specify as YYYYMMDD-YYYYMMDD
(e.g., 20220523-20220631
). Alternative of last_seen_at_days
.
Filters listings by vehicle make (e.g., Toyota
, Ford
, Mercedes-Benz
). Accepts multiple values as comma-separated list.
Filters listings by MarketCheck category code.
Filters listings by MarketCheck dealer ID.
Filters listings by MarketCheck dealership group ID.
Filters listings by dealership group name.
Filters listings by MarketCheck location ID.
Filters listings by MarketCheck rooftop ID.
Filters listings by MarketCheck sub-dealership group ID.
Filters listings by sub-dealership group name.
Filters listings by MarketCheck website ID.
Filters listings by odometer reading. Specify as min-max
miles (e.g., 1000-50000
).
Filters listings with at least the specified number of photo links (e.g. 3
, 8
).
Filters listings with at least the specified number of cached photo links (e.g. 3
, 8
).
Filters listings by specific vehicle model (e.g., Camry
). Accepts multiple values separated by commas.
Filters listings by Metropolitan Statistical Area (MSA) code.
Filters listings by Manufacturer's Suggested Retail Price (MSRP). Specify as min-max
USD (e.g., 20000-45000
).
When used with dealer_id
, mc_website_id
, or source
, true
returns listings actually owned by that dealer. Default — false.
If true
, returns only listings that contain at least one photo link. Default — false.
If true
, returns only listings that contain cached photo links. Default — false.
Filters listings by powertrain type (e.g., Combustion
, BEV
, HEV
, MHEV
, PHEV
). Accepts multiple values separated by commas.
Filters listings by advertised price in USD. Specify as min-max
(e.g., 1000-50000
).
Comma-separated list of numeric field names for which to return range facets in the response.
Number of results to return per request. Default — 1500. Maximum — 1500.
Filters listings by seating capacity (e.g., 2
, 5
, 7
). Accepts multiple values separated by commas.
Field to sort results by. If omitted, defaults to distance when a location filter is used.
Specifies result sort order. Allowed values — asc
or desc
. Default — asc
.
Filters listings by source marketplace domain (e.g., autotrader.com
, cars.com
).
Pagination offset (0-based). Default — 0. Maximum page is limited to 10,000/rows
.
Filters listings by US or Canadian state/province code (e.g., CA
, NY
, ON
). Accepts multiple codes separated by commas.
Comma-separated list of numeric fields for which to return aggregate statistics (mean, max, min, count).
Filters listings by dealer stock number.
Filters listings by transmission type (Automatic
, Manual
, etc.). Accepts multiple values separated by commas.
Filters listings by vehicle trim (e.g., EX
, Limited
). Accepts multiple values separated by commas.
Filters listings by vehicle type (Truck
, Car
). Accepts multiple values separated by commas.
Filters listings by vehicle version name.
Filters listings by full 17-character Vehicle Identification Number (VIN).
Filters listings by model year (e.g., 2020
). Accepts multiple years separated by commas.
Filters listings by model year range. Specify as min-max
(e.g., 2015-2025
).
Filters listings within the specified 5-digit ZIP code.
1500
(maximum allowed)
false
- includes all syndicated listings including non-attributed
owned=true
to retrieve dealer-owned inventory only i.e Attributed (Searchable) listingsAPI response includes num_found
property indicating the total number of listings matching the search criteria. By default, the API returns 1,500 listings per page (significantly higher than standard API limits).
You can use start
and rows
parameters to iterate through search results efficiently.
Parameters:
start
- Offset from which listings are returned (starts at 0)rows
- Number of listings per page (maximum 1,500, default 1,500)Increment start
proportionally to rows
value for consistent pagination:
start=0&rows=1500
- fetches listings 1-1,500start=1500&rows=1500
- fetches listings 1,501-3,000start=3000&rows=1500
- fetches listings 3,001-4,500Limits:
rows
parameter accepts a maximum value of 1,500 (default is also 1,500)
rows
greater than 1,500, the API will automatically use the maximum value of 1,500rows
start
and rows
exceeds your subscription's pagination limit, or if start
is greater than the total number of available results (num_found
), the API will respond with a HTTP 422 error status.The Dealership Inventory Syndication API allows sorting results by a single numeric or date field at a time. Sorting by multiple fields simultaneously is not supported.
Sort Parameters:
sort_by
- Field name to sort bysort_order
- Sort direction (asc
or desc
)Default Behavior:
last_seen (desc)
and vin (asc)
Common Sort Fields
Below are the most commonly used sort fields. For a complete list, see the next table.
Field Name | sort_by | Data Type | Default Order | Description |
---|---|---|---|---|
Price | price | Numeric | asc | Sort listings by price |
Miles | miles | Numeric | asc | Sort listings by mileage |
DOS | dos_active | Numeric | asc | Sort listings by Days on site |
Last Seen | last_seen | Date | asc | Sort listings by last seen date |
All Available Sort Fields
Field Name | sort_by | Data Type | Default Order | Description |
---|---|---|---|---|
MSRP | msrp | Numeric | asc | Sort listings by MSRP |
First Seen | first_seen | Date | asc | Sort listings by first seen date |
DOM Active | dom_active | Numeric | asc | Sort listings by DOM Active |
DOM 180 | dom_180 | Numeric | asc | Sort listings by DOM 180 |
DOM | dom | Numeric | asc | Sort listings by DOM lifetime |
Highway MPG | highway_mpg | Numeric | asc | Sort listings by highway mileage |
City MPG | city_mpg | Numeric | asc | Sort listings by city mileage |
Price Change Percentage | price_change_percent | Numeric | asc | Sort listings by price change percentage |
sort_by
values. Results return with default sorting when invalid sort fields are specified.The Dealership Inventory Syndication API supports facets for building UI filters and analyzing inventory distribution for dealership inventory. Use facets to get unique value counts for categorical fields and range-based counts for numeric fields.
Field facets return unique terms and their counts for categorical data, useful for building search filters and understanding dealerships active inventory distribution.
Parameters and Syntax
facets
— Comma-separated list of field names to facet on. Supports pagination and minimum count:facets=field_name|offset|limit|min_count
offset
- Starting position (default: 0)limit
- Maximum terms returned (default: 20, max: 1000)min_count
- Minimum count threshold (default: 1)facets=make|0|60|2
returns top 60 makes with at least 2 listings eachfacet_sort
— Controls sort order of facet terms:count
(default): Sort by frequency (highest first)index
: Sort alphabetically|
) character, which is used to separate positional parameters. For example, use %7C
for |
in URLs.Example
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'stgautogroup.com',
start: 0,
rows: 0,
facets: 'make|0|100|0,model|0|100|100'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Response
facets
field of the response, structured as key-value pairsitem
and count
properties
item
is the unique termcount
is the number of listings for that term.{
"facets": {
"make": [
{ "item": "Toyota", "count": 219 },
{ "item": "Chevrolet", "count": 118 },
...
],
"model": [
{ "item": "RAV4", "count": 44 },
{ "item": "Camry", "count": 35 },
...
]
}
}
If requested field is not allowed for faceting, it will be included in the response but with an error message indicating the field is not supported for facets.
{
"facets": {
"xyz": [
{
"result": "Error",
"message": "Field xyz is not allowed in facets"
}
]
}
}
Available Field Facets
Field | Description |
---|---|
base_ext_color | Base exterior color |
base_int_color | Base interior color |
body_subtype | Detailed body variant |
body_type | Main body classification |
city | Listing city location |
cylinders | Engine cylinder count |
dealer_id | MarketCheck dealer ID |
dealer_type | Type of dealer (e.g., franchise, independent) |
dealership_group_name | Dealership group name |
doors | Number of doors |
drivetrain | Vehicle drivetrain type |
engine | Complete engine specification |
engine_block | Engine block configuration |
engine_size | Engine displacement |
exterior_color | Exterior color designation |
fuel_type | Primary fuel type |
interior_color | Interior color designation |
make | Vehicle manufacturer |
mc_dealer_id | MarketCheck dealer ID (under new system of dealership management) |
mc_location_id | MarketCheck location ID |
mc_rooftop_id | MarketCheck rooftop ID |
mc_website_id | MarketCheck website ID |
model | Vehicle model name |
msa_code | Metropolitan Statistical Area code |
powertrain_type | Powertrain classification |
seating_capacity | Passenger seating capacity |
seller_name | Seller name (lowercase) |
source | Website domains where listed |
state | Listing state location |
transmission | Transmission configuration |
trim | Vehicle trim level |
vehicle_type | General vehicle category |
version | Vehicle version identifier |
year | Vehicle model year |
zip | Listing zip code |
Facet Pagination
By default, facets return the top 20 terms for each field. You can control pagination using positional parameters offset
, limit
:
offset
- Starting position for terms (default: 0)limit
- Maximum number of terms to return (default: 20, max: 1000)Example: facets=make|20|20
returns makes 21-40
Facets Sorting
Facet terms can be sorted by count or alphabetically using the facet_sort
parameter:
count
(default) - Sort by frequency (highest first)index
- Sort alphabeticallyExample: facets=make|0|20&facet_sort=index
returns makes sorted alphabetically
Range facets provide statistical distribution analysis for numeric fields, creating buckets for data visualization and market insights.
Parameters and Syntax
range_facets
— Comma-separated list of field names to facet on, with optional range and interval:range_facets=field_name|start|end|interval
start
(optional): Lower bound of the range (default varies by field)end
(optional): Upper bound of the range (default varies by field)interval
(optional): Size of each bucket (default: (end - start)/20
)range_facets=price|500|20000|1000
returns price ranges with 1000 intervals between 500 and 20000.start
is specified but end
is not, the API adds the default end value for that field to the start value.interval
has to be greater than (end - start)/200
, otherwise the API will return an error.|
) character, which is used to separate parameters. For example, use %7C
for |
in URLs.Example
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'stgautogroup.com',
start: 0,
rows: 0,
range_facets: 'price|500|100000|10000,miles|5000|50000|5000'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Response
range_facets
field of the response, structured as key-value pairscounts
: Array of buckets with lower_bound
, upper_bound
, and count
propertiesinterval
: Size of each bucketstart
: Lower bound of the rangeend
: Upper bound of the rangebefore
: Count of listings below the start valuebetween
: Count of listings within the rangeafter
: Count of listings above the end value{
"range_facets": {
"xyz": {
"result": "Error",
"message": "Field xyz is not allowed in range facets"
}
}
}
Available Range Facets
Field | Description | Default Range |
---|---|---|
city_mpg | City fuel efficiency | 0-100 |
dom | Days on market | 0-100 |
dom_180 | Days on market (180-day window) | 0-100 |
dom_active | Active days on market | 0-100 |
dos_active | Days on source active | 0-100 |
highway_mpg | Highway fuel efficiency | 0-100 |
miles | Vehicle mileage range | 0-10000 |
msrp | Manufacturer suggested retail price | 500-10500 |
price | Listing price range | 500-10500 |
The Search API calculates comprehensive statistics for numeric fields, providing market analysis and competitive intelligence insights.
Parameters
stats
— Comma-separated list of fields to calculate statistics on
stats=price,miles,msrp
stats
can be combined with other parameters like facets
, sort_by
for detailed analysisExample
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'stgautogroup.com',
start: 0,
rows: 0,
stats: 'price,miles'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Response
stats
field of the response, structured as key-value pairsmin
: Minimum valuemax
: Maximum valuecount
: Total number of listings with non-null valuesmissing
: Number of listings with missing valuessum
: Total sum of valuesmean
: Average valuestddev
: Standard deviationsum_of_squares
: Sum of squares for variance calculationmedian
: Median valuepercentiles
: Percentile distribution (5th, 25th, 50th, 75th, 90th, 95th, 99th){
"stats": {
"xyz": {
"result": "Error",
"message": "Field xyz is not allowed in stats"
}
}
}
Available Stats Fields
Below are the available fields for statistics calculations:
Financial Metrics
Field | Description |
---|---|
price | Listing price statistics |
msrp | MSRP statistics |
Performance and Efficiency
Field | Description |
---|---|
miles | Vehicle mileage statistics |
highway_mpg | Highway fuel efficiency statistics |
city_mpg | City fuel efficiency statistics |
Market Timing
Field | Description |
---|---|
dom | Days on market statistics |
dom_180 | DOM 180-day statistics |
dom_active | Active days on market statistics |
dos_active | Days on site active statistics |
Search for dealerships inventory available near specific locations using zip codes for location-based inventory discovery.
Parameters
zip
- ZIP code reference point for spatial searchThe Dealership Inventory API returns JSON data with comprehensive vehicle listing information, including inventory details, dealer information, vehicle specifications, and optional facets and statistics.
interface DealershipInventoryResponse {
num_found: number; // Total number of listings matching search criteria
listings: Listing[]; // Array of vehicle listings
facets?: Facets; // Categorical facets (when facets parameter is used)
stats?: Stats; // Statistical data (when stats parameter is used)
range_facets?: RangeFacets; // Range-based facets (when range_facets parameter is used)
}
interface Listing {
id: string; // Unique listing identifier
heading: string; // Listing title
price: number; // Listing price
miles: number; // Vehicle mileage
msrp?: number; // Manufacturer suggested retail price
inventory_type: 'new' | 'used'; // Vehicle condition
last_seen_at: number; // Last seen timestamp (Unix epoch)
last_seen_at_date: string; // Last seen date (ISO-8601)
first_seen_at: number; // First seen timestamp (Unix epoch)
first_seen_at_date: string; // First seen date (ISO-8601)
first_seen_at_mc: number; // First seen at MarketCheck timestamp
first_seen_at_mc_date: string; // First seen at MarketCheck date
first_seen_at_source: number; // First seen at source timestamp
first_seen_at_source_date: string; // First seen at source date
vdp_url: string; // Vehicle detail page URL
source: string; // Website domain
vin: string; // Vehicle identification number
stock_no?: string; // Dealer stock number
dom: number; // Days on market (lifetime)
dom_active: number; // Days on market (active)
dom_180: number; // Days on market (180-day window)
dos_active: number; // Days on source active
price_change?: number; // Price change amount
price_change_percent?: number; // Price change percentage
carfax_1_owner?: boolean; // Single owner status
carfax_clean_title?: boolean; // Clean title status
is_certified?: number; // Certified pre-owned status
in_transit?: boolean; // In-transit status
car_location?: CarLocation; // Vehicle location details
media?: Media; // Photo and media links
dealer?: Dealer; // Legacy dealer information
mc_dealership?: McDealership; // MarketCheck dealer information
finance?: ListingFinance; // Finance information
lease?: ListingLease; // Lease information
build?: Build; // Vehicle specifications
}
interface ListingFinance {
loan_term?: number; // Loan term in months
loan_apr?: number; // Annual percentage rate
down_payment?: number; // Down payment amount
estimated_monthly_payment?: number; // Monthly payment estimate
}
interface ListingLease {
lease_term?: number; // Lease term in months
down_payment?: number; // Down payment amount
estimated_monthly_payment?: number; // Monthly lease payment estimate
}
interface CarLocation {
mc_car_location_id?: string; // MarketCheck car location identifier
seller_name: string; // Dealer or seller name
street: string; // Street address
city: string; // City name
zip: string; // Postal/ZIP code
state: string; // State name
latitude: string; // Geographic latitude
longitude: string; // Geographic longitude
}
interface Media {
photo_links?: string[]; // Array of photo URLs from dealer website
photo_links_cached?: string[]; // Array of cached photo URLs from MarketCheck
}
interface Dealer {
id: number; // Unique dealer identifier
name: string; // Dealer name
phone?: string; // Contact phone number
street?: string; // Street address
city?: string; // City
state?: string; // State abbreviation
zip?: string; // ZIP code
country?: string; // Country code
latitude?: number; // Geographic latitude
longitude?: number; // Geographic longitude
website?: string; // Dealer website URL
inventory_count?: number; // Total inventory count
type?: string; // Dealer type
msa_code?: string; // Metropolitan Statistical Area code
}
interface McDealership {
mc_website_id?: number; // MarketCheck website identifier
mc_dealer_id?: number; // MarketCheck dealer identifier
mc_location_id?: number; // MarketCheck location identifier
mc_rooftop_id?: number; // MarketCheck rooftop identifier
mc_dealership_group_id?: number; // MarketCheck dealership group identifier
mc_dealership_group_name?: string; // Dealership group name
mc_sub_dealership_group_id?: number; // Sub-group identifier
mc_sub_dealership_group_name?: string; // Sub-group name
name?: string; // Dealership name
street?: string; // Street address
city?: string; // City
state?: string; // State abbreviation
zip?: string; // ZIP code
country?: string; // Country code
latitude?: number; // Geographic latitude
longitude?: number; // Geographic longitude
website?: string; // Dealership website URL
inventory_count?: number; // Total inventory count
type?: string; // Dealership type
phone?: string; // Contact phone number
}
interface Build {
year: number; // Model year
make: string; // Vehicle manufacturer
model: string; // Vehicle model
trim?: string; // Trim level
body_type?: string; // Body style
body_subtype?: string; // Body subtype
vehicle_type?: string; // Vehicle category
drivetrain?: string; // Drivetrain type
transmission?: string; // Transmission type
engine?: string; // Engine specification
engine_size?: number; // Engine displacement
engine_block?: string; // Engine block type
cylinders?: number; // Cylinder count
fuel_type?: string; // Primary fuel type
city_mpg?: number; // City fuel economy
highway_mpg?: number; // Highway fuel economy
exterior_color?: string; // Exterior color
interior_color?: string; // Interior color
doors?: number; // Number of doors
seating_capacity?: number; // Passenger capacity
options_packages?: string[]; // Option packages
high_value_features?: string[]; // Premium features
powertrain_type?: string; // Powertrain classification
}
interface Facets {
[key: string]: {
item: string; // Facet term
count: number; // Number of listings
}[];
}
interface Stats {
[key: string]: {
min: number;
max: number;
count: number;
sum: number;
sum_of_squares: number;
mean: number;
std_deviation: number;
variance: number;
percentiles: {
[percentile: string]: number;
};
};
}
interface RangeFacets {
[key: string]: {
counts: {
lower_bound: number;
upper_bound: number;
count: number;
}[];
before: number;
between: number;
after: number;
};
}
200 OK
- Returns JSON object with search resultsnum_found
field indicating total matching listingslistings
array contains vehicle data (empty if no matches)facets
, stats
, and range_facets
based on request parametersStatus Code | Description | Common Causes |
---|---|---|
400 | Bad Request | Invalid parameter values or malformed request |
401 | Unauthorized | Missing/invalid API key |
403 | Forbidden | Access denied to resource |
422 | Unprocessable Entity | Pagination limits exceeded, invalid parameters |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Temporary server issues |
502 | Bad Gateway | Issues with upstream services |
503 | Service Unavailable | API maintenance or downtime |
Error Response Format
Most error responses follow this structure, except for 502 and 503 errors
{
"code": <HTTP status code>,
"message": "<Error message describing the issue>"
}
Best Practices
dealer_id
, source
, or other dealer attributes, such as the following:dealership_group_name
mc_website_id
mc_dealer_id
mc_location_id
mc_rooftop_id
mc_dealership_group_id
mc_dealership_group_name
mc_sub_dealership_group_id
mc_sub_dealership_group_name
mc_dealer_id=10027620,1000030
.Example:
Here we're retriving active inventory for a specific using their website domain stgautogroup.com
with the maximum pagination limit to access comprehensive dealer data in a single request.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {api_key: 'YOUR_API_KEY', source: 'stgautogroup.com', start: 0, rows: 2},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
car_type
to filter by new or used vehicles in dealership inventory:
car_type=new
for new vehiclescar_type=used
for used vehiclescar_type=certified
for certified pre-owned vehicles. These are subset of used vehicles.car_type
is not specified, the API returns all types by default.inventory_type
field which shows new
or used
values. When car_type=certified
is used, the inventory_type
will be used
since certified cars are used vehicles, but they will have an additional is_certified
field with value 1
to distinguish them from regular used cars.Examples:
Here we're retrieving used active inventory actually owned by a specific dealership:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'autonationusa.com',
car_type: 'used',
start: 0,
rows: 2,
owned: true
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Certified Pre-Owned Vehicles:
car_type=used
, you will also get certified vehicles included in the results.car_type=certified
.
inventory_type=used
and an additional is_certified=1
field.Examples:
Here we're retrieving certified pre-owned vehicles from a dealership group:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'autonationusa.com',
rows: 5,
car_type: 'certified'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
include_non_vin_listings=true
parameterExample:
Here we're including non-VIN listings in dealership inventory for comprehensive syndication:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
mc_website_id: '10000469',
rows: 1500,
include_non_vin_listings: true
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
first_seen_at_source_range
(absolute) or first_seen_at_source_days
(relative) parametersExamples:
Here we're finding vehicles that were first seen on the source website in the last 24 hours:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'carmax.com',
first_seen_at_source_days: '1-*',
rows: 2
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
facets
and range_facets
parameters to get unique values and distributions for specific fields.facets
provides unique counts for categorical fields, while range_facets
provides distribution analysis for numeric fields.Example:
Here we're getting unique makes and their counts for a large dealership like CarMax to understand their inventory distribution:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {api_key: 'YOUR_API_KEY', source: 'carmax.com', rows: 0, facets: 'make'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
For large dealership groups with thousands of vehicles, you can use facets to segment inventory and then use pagination to retrieve detailed listings for specific segments. This approach is particularly effective for dealerships like CarMax, AutoNation, or Carvana that maintain extensive inventories across multiple locations.
Example:
Step 1: Get City Distribution for Dealerships
First, get the distribution of inventory across different cities for CarMax to understand where their vehicles are located:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/car/active',
params: {api_key: 'YOUR_API_KEY', source: 'carmax.com', facets: 'city'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
This returns city counts like:
{
"facets": {
"city": [
{ "item": "Houston", "count": 1867 },
{ "item": "Raleigh", "count": 983 },
{ "item": "Austin", "count": 960 },
{ "item": "Norcross", "count": 956 },
...
]
}
}
Step 2: Paginate Through Specific City Inventory
Now drill down into a specific city (Houston) with high inventory count and paginate through their listings:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'carmax.com',
start: 0,
rows: 1500,
city: 'Houston'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
price_range
, miles_range
, msrp_range
, dom_range
, dom_180_range
, dom_active_range
, dos_active_range
, highway_mpg_range
, city_mpg_range
Example:
Here we're filtering a large dealership group carmax.com
vehicles priced between $10,000 and $20,000 with mileage under 50,000 miles and active days on market less than 30 days:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/inventory',
params: {
api_key: 'YOUR_API_KEY',
source: 'carmax.com',
price_range: '10000-20000',
miles_range: '0-50000',
dos_active_range: '0-30',
rows: 2
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
owned=true
to retrieve only unique, physically present inventory.The Dealership Inventory Syndication API is optimized for syndication workflows but has specific performance characteristics:
stats
, facets
, or complex filteringBest Practices:
owned=true
to reduce dataset size when appropriate