Private Party Search

Search nationwide private party car listings with comprehensive filtering, sorting, analytics, and geographic targeting capabilities.

The Private Party Search API provides access to private party (For Sale By Owner) automotive listings across the United States and Canadian markets. MarketCheck aggregates current FSBO inventory data from numerous marketplace platforms, delivering access to over 80,000 active listings nationwide.

Overview

This endpoint shares the same interface and functionality as the Inventory Search API, allowing you to search, filter, and analyze private party vehicle listings with extensive capabilities.

  • Data updates are published daily, at the same time as the Inventory Search API, by 11:00 AM UTC
  • Follows same interface conventions, so units and conventions are also consistent with the Inventory Search API

Key Differences from Inventory Search API:

  • Private Party Listings Only: This API exclusively returns listings from private sellers, not dealers. So seller_type is always fsbo
  • No Seller Information: Private party listings do not include seller details like name, phone, or email, only the source marketplace and listing URL
  • Higher Pricing Tier: This endpoint is billed at a premium due to unique sourcing and processing overhead

Base Path

GET https://api.marketcheck.com/v2/search/car/fsbo/active

The following example demonstrates a basic search request with common parameters:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/car/fsbo/active',
params: {api_key: 'YOUR_API_KEY', year: '2024', make: 'ford', model: 'f-150', rows: '2'},
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 Request section below.

Request

The Private Party Search API provides extensive filtering and search capabilities for private party automotive listings. You can search by vehicle specifications, geographic location, pricing ranges, and numerous other criteria to find the exact FSBO vehicles you need.

All filtering, sorting, analytics, and pagination capabilities match those in the Inventory Search API, providing a consistent interface across both dealer and private party listings.

Parameters

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

105 Params
api_key
string required

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

append_api_key
boolean

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.

base_ext_color
string

The base exterior color to filter results by (e.g. White, Black, Blue, Silver, Red). Accepts multiple colors as a comma-separated list.

base_int_color
string

The base interior color to filter results by (e.g. Black, Brown, Beige, Red). Accepts multiple colors as a comma-separated list.

body_subtype
string

Filters listings by body subtype (e.g., Crew, Extended, Regular, Extended Crew). Accepts multiple values separated by commas.

body_type
string

Filters listings by body type (e.g., SUV, Pickup, Sedan, Hatchback, Convertible). Accepts multiple values separated by commas.

car_type
string

Filters listings by inventory type. Allowed values - new, used, certified.

carfax_1_owner
boolean

If true, returns only vehicles with a single previous owner; if false or omitted, no ownership filter is applied. Default — false.

carfax_clean_title
boolean

If true, returns only vehicles with a clean title history; if false or omitted, no title filter is applied. Default — false.

city
string

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

city_mpg_range
string

Filters listings by city fuel-economy mileage. Specify as min-max MPG (e.g., 20-35).

country
string

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

cylinders
string

Filters listings by engine cylinder count (e.g., 4, 6, 8). Accepts multiple values as a comma-separated list.

dedup
boolean

If true, returns only is_searchable listings irrespective of dealer_id, mc_website_id, or source. Default — false. See nodedup for the opposite behavior.

dom_180_range
string

Filters listings by Days on Market observed over the last 180 days. Specify as min-max days (e.g., 10-50).

dom_active_range
string

Filters listings by active Days on Market (DOM). Specify as min-max days.

dom_range
string

Filters listings by total Days on Market (DOM). Specify as min-max days.

doors
string

Filters listings by number of doors (e.g., 2, 4). Accepts multiple values as comma-separated list.

dos_active_range
string

Filters listings by active Days on Site (DOS). Specify as min-max days.

drivetrain
string

Filters listings by drivetrain (FWD, RWD, 4WD). Accepts multiple values separated by commas.

engine
string

Filters listings by engine designation (e.g., 2.0L I4, 3.5L V6, 2.5L H4). Accepts multiple values as comma-separated list.

engine_aspiration
string

Filters listings by engine aspiration (Turbocharged, Naturally Aspirated, etc.). Accepts multiple values separated by commas.

engine_block
string

Filters listings by engine block layout (V, I, H). Accepts multiple values separated by commas.

engine_size
string

Filters listings by engine displacement size (e.g., 2.0, 2.5, 3.5). Accepts multiple values separated by commas.

engine_size_range
string

Filters listings by engine displacement size. Specify as min-max liters (e.g., 1.5-3.0).

exclude_certified
boolean

If true, excludes certified-pre-owned vehicles from results. Default — false. See car_type parameter for filtering by inventory type for certified vehicles.

exclude_dealer_ids
string

Excludes results from the specified dealer IDs. Accepts multiple values as a comma-separated list.

exclude_high_value_features
string

Excludes listings that contain any of the specified High-Value Features (HVFs). Accepts comma-separated HVFs.

exclude_make
string

Excludes the specified makes. Accepts multiple values as a comma-separated list.

exclude_mc_website_ids
string

Excludes results from the specified MarketCheck website IDs. Accepts multiple values as comma-separated list.

exclude_options_packages
string

Excludes listings containing the specified Options Packages (OPs). Accepts multiple values as comma-separated list.

exclude_sources
string

Excludes listings from the specified sources (e.g., autonation.com, carmax.com). Accepts multiple values as comma-separated list.

exterior_color
string

Filters listings by exterior color (e.g. White, Summit White, Gun Metallic). Accepts multiple values as comma-separated list.

facet_sort
string

Sorts facet buckets. Allowed values — count (descending count, default) or index (alphabetical).

facets
string

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

finance_down_payment
string

Filters listings by finance down-payment amount in USD. Specify a single value or a min-max range.

finance_down_payment_per
string

Filters listings by finance down-payment percentage. Specify a single value or min-max.

finance_emp
string

Filters listings by finance Estimated Monthly Payment (EMP) in USD. Specify a single value or min-max.

finance_loan_apr
string

Filters listings by finance loan APR. Specify a single value or min-max.

finance_loan_term
string

Filters listings by finance loan term in months. Specify a single value or min-max months.

first_seen_at_mc_days
string

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.

first_seen_at_mc_range
string

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.

first_seen_at_source_days
string

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.

first_seen_at_source_range
string

Filters listings by date first seen on the source site. Specify as YYYYMMDD-YYYYMMDD. Alternative of first_seen_at_source_days.

first_seen_days
string

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.

first_seen_range
string

Filters listings by the first seen date. Specify as YYYYMMDD-YYYYMMDD (e.g., 20220523-20220631). Alternative of first_seen_days.

fuel_type
string

Filters listings by fuel type (e.g., Unleaded, Diesel, Electric, Premium Unleaded, Electric / Unleaded). Accepts multiple values separated by commas.

high_value_features
string

Filters listings that include all specified High-Value Features (HVFs). Provide HVFs as a comma-separated list.

highway_mpg_range
string

Filters listings by highway fuel-economy mileage. Specify as min-max MPG (e.g., 25-40).

in_transit
boolean

If true, returns listings marked as in transit; if false or omitted, no in-transit filter is applied.

include_finance
boolean

If true, only listings with finance offers are returned. Default — false.

include_lease
boolean

If true, only listings with lease offers are returned. Default — false.

include_non_vin_listings
boolean

If true, includes listings without a VIN; if false, such listings are excluded. Default — false.

include_relevant_links
boolean

If true, includes relevant links to other MarketCheck API endpoints in the response. Default — false.

interior_color
string

Filters listings by interior color. Accepts multiple values as comma-separated list.

inventory_count_range
string

Filters dealers by total listing count. Specify as min-max listings (e.g., 10-100).

last_seen_days
string

Filters listings by the number of days since last seen. Specify as min-max days. Alternative of last_seen_at_range.

last_seen_range
string

Filters listings by last seen date. Specify as YYYYMMDD-YYYYMMDD (e.g., 20220523-20220631). Alternative of last_seen_at_days.

latitude
float

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

lease_down_payment
string

Filters listings by lease down-payment amount in USD. Specify a single value or min-max.

lease_emp
string

Filters listings by lease Estimated Monthly Payment (EMP) in USD. Specify a single value or min-max.

lease_term
string

Filters listings by lease term length in months. Specify a single value or min-max.

longitude
float

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

make
string

Filters listings by vehicle make (e.g., Toyota, Ford, Mercedes-Benz). Accepts multiple values as comma-separated list.

match
string

Comma-separated list of field names for exact matching in combination with vins. Allowed values — year,make,model or year,make,model,trim.

miles_range
string

Filters listings by odometer reading. Specify as min-max miles (e.g., 1000-50000).

min_photo_links
integer

Filters listings with at least the specified number of photo links (e.g. 3, 8).

min_photo_links_cached
integer

Filters listings with at least the specified number of cached photo links (e.g. 3, 8).

mm
string

Make-Model composite string from the auto-complete API. Pass the value exactly as returned (e.g., toyota|camry).

model
string

Filters listings by specific vehicle model (e.g., Camry). Accepts multiple values separated by commas.

msa_code
string

Filters listings by Metropolitan Statistical Area (MSA) code.

msrp_range
string

Filters listings by Manufacturer's Suggested Retail Price (MSRP). Specify as min-max USD (e.g., 20000-45000).

nodedup
boolean

If true, returns all duplicate listings for a VIN; if false (default), duplicate listings are removed. This is the opposite of dedup.

options_packages
string

Filters listings by Options Packages (OPs). Provide a comma-separated list; results include listings containing all specified OPs.

owned
boolean

When used with dealer_id, mc_website_id, or source, true returns listings actually owned by that dealer. Default — false.

photo_links
boolean

If true, returns only listings that contain at least one photo link. Default — false.

photo_links_cached
boolean

If true, returns only listings that contain cached photo links. Default — false.

plot
boolean

If true, returns up to 1000 listings for plotting instead of full listing details.

powertrain_type
string

Filters listings by powertrain type (e.g., Combustion, BEV, HEV, MHEV, PHEV). Accepts multiple values separated by commas.

price_change
string

Filters listings by positive or negative price-change flag (e.g., positive, negative). Accepts multiple comma-separated values.

price_change_range
string

Filters listings by the price change in USD. Since price changes can be positive or negative, specify as min|max (e.g., -5000|1000). This is a range filter.

price_range
string

Filters listings by advertised price in USD. Specify as min-max (e.g., 1000-50000).

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.

seating_capacity
string

Filters listings by seating capacity (e.g., 2, 5, 7). Accepts multiple values separated by commas.

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.

stats
string

Comma-separated list of numeric fields for which to return aggregate statistics (mean, max, min, count).

stock_no
string

Filters listings by dealer stock number.

taxonomy_vins
string

Comma-separated list of 10-character “squish” VINs (first 8 + 10th & 11th chars). Filters listings by build.

transmission
string

Filters listings by transmission type (Automatic, Manual, etc.). Accepts multiple values separated by commas.

trim
string

Filters listings by vehicle trim (e.g., EX, Limited). Accepts multiple values separated by commas.

vdp_url
string

Filters listings by Vehicle Detail Page (VDP) URL match.

vehicle_type
string

Filters listings by vehicle type (Truck, Car). Accepts multiple values separated by commas.

version
string

Filters listings by vehicle version name.

vin
string

Filters listings by full 17-character Vehicle Identification Number (VIN).

vins
string

The VINs to find similar cars around. Accepts a comma-separated list of VINs. Used in conjunction with the match parameter always. Similar parameters are ymmt and taxonomy_vins.

year
string

Filters listings by model year (e.g., 2020). Accepts multiple years separated by commas.

year_range
string

Filters listings by model year range. Specify as min-max (e.g., 2015-2025).

ymm
string

Year-Make-Model composite string from auto-completion (e.g., 2019|Toyota|Camry).

ymmt
string

Year-Make-Model-Trim composite string(s). Each combo uses pipe separators and combinations can be comma-separated. For example, 2019|Toyota|Camry|LE,2020|Honda|Civic|EX. Useful for finding multiple groups of similar cars. Alternatively, you can use vins or taxonomy_vins for VIN-based queries.

zip
string

Filters listings within the specified 5-digit ZIP code.

Defaults

  • country: Defaults to us for United States market
    • When searching Canadian data, explicitly pass country=ca in each call
    • To search both US and Canadian data, use country=all
  • dedup: Defaults to true - only unique listings per VIN are returned, removing duplicates from the dataset
    • Use nodedup=true to include all listings, even duplicates

Pagination

Private Party Search API supports the same pagination capabilities as the Inventory Search API. API response includes num_found property indicating the total number of listings matching the search criteria.

Parameters:

  • start - Offset from which listings are returned (starts at 0)
  • rows - Number of listings per page (maximum 50, default 10)

Refer to the Inventory Search API pagination documentation for complete details and examples.

Sorting

The Private Party Search API supports sorting results by a single numeric or date field at a time, with the same functionality as the Inventory Search API.

Sort Parameters:

  • sort_by - Field name to sort by
  • sort_order - Sort direction (asc or desc)

Refer to the Inventory Search API sorting documentation for complete field reference and examples.

Core Features & Functionality

Private Party Search supports all major features from the Inventory Search API with identical functionality:

  • Facets - Build dynamic filters and analyze market distribution
  • Range Facets - Statistical distribution for numeric fields
  • Stats - Comprehensive market analytics
  • Spatial Search - Location-based discovery

Response Schema

The response schema for Private Party Search is identical to the Inventory Search API, providing a consistent structure for results. Refer to the Inventory Search API response schema for complete field definitions and examples.

Use Cases & Examples

Find Single-Owner Vehicles

To find single-owner vehicles, you can use the carfax_1_owner parameter set to true. This will filter results to only include cars that have had one previous owner according to Carfax data.

Example:

request.js
import axios from 'axios';

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

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

Quality Photos Only

  • Use the min_photo_links parameter to ensure listings have a minimum number of photos.
  • Or use min_photo_links_cached to filter for listings with cached photos.
  • Set min_photo_links to 5 to filter for listings with at least 5 photos.

Example:

Here we're filtering for listings with at least 5 photos:

request.js
import axios from 'axios';

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

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

Similar Cars In Private Party Market

If you have a specific car with a VIN and want to find similar vehicles in the private party market, you can use the vins and match parameters.

The interface and implementation are identical to the Inventory Search API, refer to the Inventory Search API examples for more details.

Example:

Here we're searching for similar cars to a specific VIN matching on year, make, model, and trim:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/car/fsbo/active',
params: {
api_key: 'YOUR_API_KEY',
vins: '2HKRW1H54LH416961',
match: 'year,make,model,trim',
rows: '2'
},
headers: {Accept: 'application/json'}
};

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

Compare Price Statistics with Dealer Inventory

To compare price statistics of private party listings with dealer inventory, you can use the stats parameter to retrieve aggregated data.

This allows you to analyze how private party prices stack up against similar dealer listings.

Example:

Here we're retrieving price statistics for private party listings similar to a specific VIN:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/car/fsbo/active',
params: {
api_key: 'YOUR_API_KEY',
vins: '2HKRW1H54LH416961',
match: 'year,make,model,trim',
rows: '0',
stats: 'price'
},
headers: {Accept: 'application/json'}
};

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

Filter Newer Entrants

To filter for newer listings that have been added to the marketplace recently, you can use the dos_active_range parameter. This allows you to specify a range of days since the listing was first seen.

Example:

Here we're filtering for listings that have been active in the last 10 days:

request.js
import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/car/fsbo/active',
params: {
api_key: 'YOUR_API_KEY',
dos_active_range: '0-10',
rows: '2',
sort: 'dos_active',
sort_order: 'asc'
},
headers: {Accept: 'application/json'}
};

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

See Also