Dealerships Search

Search and retrieve car dealerships in USA & Canada with geographic and filter-based queries.

The Dealerships Search API allows you to find car dealerships across the USA and Canada using geographic coordinates, ZIP codes, or other filter criteria. This API provides comprehensive access to MarketCheck's enhanced dealership directory with sophisticated filtering, sorting, and analytics capabilities.

This is a new and improved system for maintaining and retrieving dealership information, replacing the older Dealers Search API. In this system, each dealership's websites, groups, multiple locations, rooftops, and other relevant data are integrated into a unified structure.

To understand more about dealership management, refer to the Dealership Management Guide

Base Path

GET https://api.marketcheck.com/v2/dealerships/car

The following example demonstrates a basic request to the Dealerships Search API:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/car',
params: {api_key: 'YOUR_API_KEY', rows: '2'},
headers: {Accept: 'application/json'}
};

try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}

Request

The Dealerships Search API provides extensive filtering and search capabilities for the enhanced dealership directory. You can search by geographic location, dealer identifiers, dealership groups, and various other criteria to find dealerships that match your requirements.

Parameters

Available parameters for filtering, sorting, and configuring search results:

28 Params
api_key
string required

Your MarketCheck API authentication key. Required for every request, unless OAuth is used.

city
string

Filters listings by city name (e.g. Los Angeles, San Francisco, Houston).

country
string

Filters listings by country code. Allowed values - us, ca, all. Default — us.

created_at_days
string

Filters dealerships by age in days since creation. Specify as min-max days. Alternative of created_at_range.

created_at_range
string

Filters dealerships by creation date. Specify as YYYYMMDD-YYYYMMDD. Alternative of created_at_days.

dealer_type
string

Filters dealers by type. Allowed values — franchise, independent.

facets
string

Field name to return bucket facets for. Accepts multiple fields as a comma-separated list.

inventory_url
string

Filters dealerships with their domain (e.g., carmax.com).

latitude
float

Latitude component of the search location (decimal degrees). Used for geospatial queries along with longitude and radius parameters.

longitude
float

Longitude component of the search location (decimal degrees). Used for geospatial queries along with latitude and radius parameters.

mc_category
string

Filters listings by MarketCheck category code.

mc_dealer_id
string

Filters listings by MarketCheck dealer ID.

mc_dealership_group_id
string

Filters listings by MarketCheck dealership group ID.

mc_dealership_group_name
string

Filters listings by dealership group name.

mc_location_id
string

Filters listings by MarketCheck location ID.

mc_rooftop_id
string

Filters listings by MarketCheck rooftop ID.

mc_sub_dealership_group_id
string

Filters listings by MarketCheck sub-dealership group ID.

mc_sub_dealership_group_name
string

Filters listings by sub-dealership group name.

mc_website_id
string

Filters listings by MarketCheck website ID.

msa_code
string

Filters listings by Metropolitan Statistical Area (MSA) code.

radius
integer

Search radius around the specified location in miles. Used with zip or latitude and longitude for geospatial queries.

range_facets
string

Comma-separated list of numeric field names for which to return range facets in the response.

rows
integer

Number of results to return per request. Default — 10. Maximum — 50.

sort_by
string

Field to sort results by. If omitted, defaults to distance when a location filter is used.

sort_order
string

Specifies result sort order. Allowed values — asc or desc. Default — asc.

start
integer

Pagination offset (0-based). Default — 0. Maximum page is limited to 10,000/rows.

state
string

Filters listings by US or Canadian state/province code (e.g., CA, NY, ON). Accepts multiple codes separated by commas.

zip
string

Filters listings within the specified 5-digit ZIP code.

Defaults

ParameterDefault ValueDescription
countryusDefaults to United States market, can be set to ca for Canada

Pagination

Use start and rows parameters to iterate through search results efficiently.

The pagination parameters, interface and limits are similar to the Inventory Search API pagination, refer to that section for more details.

Sorting

The sort_by and sort_order parameters allow you to control the order of results. The interface of these parameters is similar to the Inventory Search API sorting, refer to that section for more details.

Default Sorting:

  • Results are sorted on mc_website_id in ascending order by default.

Sorting Options:

Following are the fields you can sort by:

Field Namesort_byData TypeDefault OrderDescription
mc_website_idmc_website_idstringascendingUnique identifier for dealership website
mc_dealer_idmc_dealer_idstringascendingUnique identifier for the dealer
mc_location_idmc_location_idstringascendingUnique identifier for dealership location
mc_rooftop_idmc_rooftop_idstringascendingUnique identifier for dealership rooftop
mc_dealership_group_idmc_dealership_group_idstringascendingUnique identifier for dealership group
mc_sub_dealership_group_idmc_sub_dealership_group_idstringascendingUnique identifier for sub dealership group
created_at_dayscreated_at_daysintegerdescendingNumber of days since dealership record was created
created_at_rangecreated_at_rangestringdescendingDate range when dealership record was created

Facets

Similar to the Inventory Search API, this API also supports facets for aggregating results based on specific fields. Use facets to get unique value counts for categorical fields and range-based counts for numeric fields.

Field Facets

Field facets return unique terms and their counts for categorical data. For example, you can get counts of dealers by state or dealer type.

The interface and usage of facets is similar to the Inventory Search API facets, refer to that section for more details.

Available Field Facets

Field Namefacet_nameDescription
CitycityCity where the dealership is located
StatestateState or province of the dealership
CountrycountryCountry of the dealership (USA or Canada)
Dealer Typedealer_typeUnique dealer types (franchise, independent)
Website IDmc_website_idUnique identifier for dealership website
Dealer IDmc_dealer_idUnique identifier for the dealer
Location IDmc_location_idUnique identifier for dealership location
Rooftop IDmc_rooftop_idUnique identifier for dealership rooftop
Categorymc_categoryDealership category (e.g., franchise, independent)
Dealership Group IDmc_dealership_group_idUnique identifier for dealership group
Dealership Group Namemc_dealership_group_nameName of the dealership group
Sub Dealership Group IDmc_sub_dealership_group_idUnique identifier for sub dealership group
Sub Dealership Group Namemc_sub_dealership_group_nameName of the sub dealership group

Response

The Dealerships Search API returns dealership information in JSON format with pagination metadata for multiple results.

Schema

interface DealershipsResponse {
  num_found: number; // Total number of dealerships matching search criteria
  mc_dealerships: McDealership[]; // Array of dealership objects
}

interface McDealership {
  mc_website_id: string; // Unique identifier for dealership website
  mc_dealer_id: string; // Unique identifier for the dealer
  mc_location_id: string; // Unique identifier for dealership location
  mc_rooftop_id: string; // Unique identifier for dealership rooftop
  mc_dealership_group_id?: string; // Unique identifier for dealership group
  mc_dealership_group_name?: string; // Name of the dealership group
  mc_sub_dealership_group_id?: string; // Unique identifier for sub dealership group
  mc_sub_dealership_group_name?: string; // Name of the sub dealership group
  mc_category: string; // Dealership category (franchise, independent)
  seller_name: string; // Display name of the dealership
  inventory_url: string; // URL to dealership's inventory page
  status: string; // Current status of the dealership
  dealer_type: string; // Type classification (franchise, independent)
  street: string; // Street address of the dealership
  city: string; // City where dealership is located
  state: string; // State or province abbreviation
  country: string; // Country code (US, CA)
  zip?: string; // Postal/ZIP code
  msa_code?: string; // Metropolitan Statistical Area code
  latitude?: number; // Geographic latitude coordinate
  longitude?: number; // Geographic longitude coordinate
  seller_phone: string; // Primary phone number
  seller_email?: string; // Email address if available
  created_at: string; // Timestamp when dealership record was created
}

Success Response

  • 200 OK - Returns a JSON object containing dealership search results and pagination information

Error Response

Status CodeDescriptionCommon Causes
400Bad RequestInvalid parameter values
401UnauthorizedMissing/invalid API key
403ForbiddenAccess denied to resource
422Unprocessable EntityPagination limit exceeded
429Too Many RequestsRate limit exceeded
500Internal Server ErrorTemporary server issues
502Bad GatewayIssues with upstream services
503Service UnavailableAPI maintenance or downtime

Use Cases & Examples

Search Dealerships Near a Location

Using spatial search with latitude and longitude coordinates you can find dealerships within a specified radius. Either latitude and longitude or zip code can be used as the center point for the search.

Example:

Here we're searching for dealerships within a 50-mile radius of a specific latitude and longitude:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/car',
params: {
api_key: 'YOUR_API_KEY',
latitude: '34.0522',
longitude: '-118.2437',
radius: '50',
rows: '2'
},
headers: {Accept: 'application/json'}
};

try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}

Find Dealerships by Group

Search for dealerships belonging to a specific dealership group using group identifiers or names to analyze multi-location operations.

Example:

Here we're searching for all dealerships belonging to a specific dealership group:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/car',
params: {
api_key: 'YOUR_API_KEY',
mc_dealership_group_name: 'Penske Automotive Group Inc.',
rows: '2'
},
headers: {Accept: 'application/json'}
};

try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}

Search by Website or Location ID

Find specific dealership locations using MarketCheck's unique identifiers for websites, locations, or rooftops.

Example:

Here we're searching for dealerships using specific MarketCheck identifiers:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/dealerships/car',
params: {
api_key: 'YOUR_API_KEY',
mc_website_id: '124110',
mc_location_id: '1426861',
rows: '2'
},
headers: {Accept: 'application/json'}
};

try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}

See Also