Private Party Search

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

Use the Private Party Search API to find cars listed by private sellers and compare their prices with dealer listings: it searches active for sale by owner (FSBO) listings from online marketplaces in the US and Canada. One call returns the total match count and a page of listings in the same format as Inventory Search, each with its source marketplace and listing URL but no seller name, phone or email. Inventory Search returns dealer listings and Auction Search returns auction listings; every result here has seller_type set to fsbo.

Try it with a free API key: create an account at developers.marketcheck.com, then paste your key into the request below.

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

Private Party Search accepts the same filters and returns the same listing format as the Inventory Search API, but every result comes from a private seller on an online marketplace.

  • New and changed FSBO listings are published once a day, by 11:00 AM UTC, alongside dealer inventory
  • Field conventions and units are the same as in Inventory Search

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:

9 Params
api_key
string required

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

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.

dos_active_range
string

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

exclude_sources
string

Excludes listings from the specified sources (e.g., autonation.com, carmax.com). 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, trim, version, build_code, options_packages. Example: year,make,model or year,make,model,trim,version.

min_photo_links
integer

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

source
string

Filters listings by website domain (e.g., autotrader.com, cars.com).

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.

104 more parameters work exactly as on Inventory Search, where each one is described in full:

alternate_vin, append_api_key, base_ext_color, base_int_color, body_subtype, body_type, car_type, city, city_mpg_range, country, cylinders, dealer_id, dedup, dom_180_range, dom_active_range, dom_range, doors, drivetrain, engine, engine_aspiration, engine_block, engine_size, engine_size_range, exclude_certified, exclude_dealer_ids, exclude_high_value_features, exclude_make, exclude_mc_website_ids, exclude_options_packages, exterior_color, facet_sort, facets, fees_range, finance_down_payment, finance_down_payment_per, finance_emp, finance_loan_apr, finance_loan_term, first_seen_at_mc_days, first_seen_at_mc_range, first_seen_at_source_days, first_seen_at_source_range, first_seen_days, first_seen_range, fuel_type, high_value_features, highway_mpg_range, in_transit, include_finance, include_lease, include_non_vin_listings, include_relevant_links, interior_color, inventory_count_range, last_seen_days, last_seen_range, latitude, lease_down_payment, lease_emp, lease_term, longitude, made_in, make, miles_range, min_photo_links_cached, mm, model, msa_code, msrp_range, nodedup, options_packages, owned, photo_links, photo_links_cached, plot, powertrain_type, price_change, price_change_range, price_includes_fees, price_range, radius, range_facets, rows, seating_capacity, sort_by, sort_order, start, state, stats, stock_no, taxonomy_vins, transmission, trim, vdp_url, vehicle_type, version, vin, has_price, has_miles, year, year_range, ymm, ymmt, zip

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

Each response reports the total number of matching FSBO listings in num_found. Page through them with start (offset, from 0) and rows (maximum 50, default 10); the price comparison example below sets rows=0 because it only needs stats. Full rules are in the Inventory Search pagination section.

Sorting

sort_by takes one numeric or date field and sort_order takes asc or desc. The newer-listings example below sorts by dos_active ascending to show the freshest private listings first. Every sortable field is listed under Inventory Search sorting.

Core Features & Functionality

Facets, range facets, stats and spatial search behave as they do on Inventory Search. With private party data, stats on price show what owners are asking for a given car, which you can set against dealer prices for the same vehicle.

Response Schema

Each listing follows the Inventory Search format with seller_type set to fsbo, and carries the source marketplace and listing URL instead of seller contact details. Field definitions are in the Inventory Search response schema.

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_by: '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