The RV Inventory Search API provides access to active recreational vehicle listings from dealers across the US markets. This comprehensive search tool enables RV dealers, marketplaces, and consumers to discover, filter, and analyze recreational vehicles with sophisticated filtering capabilities designed specifically for the RV industry.
Whether you're building RV marketplace applications, dealer inventory systems, or consumer search tools, this API delivers the specialized functionality needed for recreational vehicle applications with extensive parameter options covering RV-specific features like class types, slideouts, sleeping capacity, GVWR, and fresh water capacity.
Units & Conventions:
Field / Pattern | Unit | Notes |
---|---|---|
price, msrp | USD (US) | 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 |
length, width, height | Feet and inches (e.g., "37'8"") | RV dimension specifications |
gvwr, payload | Pounds (lbs) | Weight specifications |
fresh_water_capacity | Gallons | Tank capacity specifications |
GET https://api.marketcheck.com/v2/search/rv/active
The following example demonstrates a basic search request with common parameters:
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 2,
make: 'Forest River',
year: '2023',
start: '0',
facets: 'class',
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 RV Inventory Search API provides extensive filtering and search capabilities for recreational vehicle listings. You can search by RV specifications, geographic location, pricing ranges, dealer types, and numerous other criteria to find the exact RVs you need.
Available parameters for filtering, sorting, and configuring search results:
Your MarketCheck API authentication key. Required for every request, unless OAuth is used.
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 city name (e.g. Los Angeles
, San Francisco
, Houston
).
Filters listings by RV class type (e.g., Class A
, Class B
, Class C
). Accepts multiple values as a comma-separated list.
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 listings by number of doors (e.g., 2
, 4
). Accepts multiple values as comma-separated list.
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 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 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 Gross Vehicle Weight Rating (GVWR) in pounds. Specify as a single value or min-max
range (e.g., 5000-10000
).
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
.
Latitude component of the search location (decimal degrees). Used for geospatial queries along with longitude
and radius
parameters.
Filters listings by vehicle length in inches.
Filters listings by vehicle length in inches. Specify as min-max
inches (e.g., 150-250
).
Longitude component of the search location (decimal degrees). Used for geospatial queries along with latitude
and radius
parameters.
Filters listings by vehicle make (e.g., Toyota
, Ford
, Mercedes-Benz
). Accepts multiple values as comma-separated list.
Filters listings by odometer reading. Specify as min-max
miles (e.g., 1000-50000
).
Filters listings by specific vehicle model (e.g., Camry
). Accepts multiple values separated by commas.
Filters listings by model orig (as described on the webpage). Accepts multiple values as comma-separated list.
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
).
Filters listings by the number of awnings. Accepts multiple values as a comma-separated list.
Filters listings by advertised price in USD. Specify as min-max
(e.g., 1000-50000
).
Search radius around the specified location in miles. Used with zip
or latitude
and longitude
for geospatial queries.
Comma-separated list of numeric field names for which to return range facets in the response.
Number of results to return per request. Default — 10. Maximum — 50.
Text substring search within listing titles, descriptions, and other fields. Use tokenized_search_text
instead for tokenized search.
Filters listings by seating capacity (e.g., 2
, 5
, 7
). Accepts multiple values separated by commas.
Filters listings by the number of slideouts. Accepts multiple values as a comma-separated list.
Filters listings by the number of sleeping areas. Specify as min-max range (e.g., 1-4
).
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.
Tokenized search within listing titles, descriptions, and other fields. Use this instead of search_text
for exact matches.
Filters listings by transmission type (Automatic
, Manual
, etc.). Accepts multiple values separated by commas.
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.
API response includes num_found
property indicating the total number of RV listings matching the search criteria. By default, the API returns the first page of results with 10 listings per page.
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 50, default 10)Increment start
proportionally to rows
value for consistent pagination:
start=0&rows=50
- fetches listings 1-50start=50&rows=50
- fetches listings 51-100start=100&rows=50
- fetches listings 101-150Limits:
rows
parameter accepts a maximum value of 50 (default is 10)
rows
greater than 50, the API will automatically use the default value of 10rows
The Search 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 RV searches:
Field Name | sort_by | Data Type | Default Order | Description |
---|---|---|---|---|
Distance | dist | Numeric | asc | Applied by default for geo spatial requests |
Price | price | Numeric | asc | Sort listings by price |
Miles | miles | Numeric | asc | Sort listings by mileage |
Year | year | Numeric | asc | Sort listings by model year |
MSRP | msrp | Numeric | asc | Sort listings by MSRP |
Last Seen | last_seen | Date | asc | Sort listings by last seen date |
First Seen | first_seen | Date | asc | Sort listings by first seen date |
sort_by
values. Results return with default sorting when invalid sort fields are specified.The Search API supports facets for building UI filters and analyzing RV inventory distribution. 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 RV 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
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/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 0,
make: 'Forest River',
year: 2024,
facets: 'model%7C0%7C100%7C0%2Ccity%7C0%7C100%7C100'
},
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": "Forest River", "count": 58673 },
{ "item": "Jayco", "count": 19809 },
...
],
"city": [
{ "item": "Los Angeles", "count": 1000 },
{ "item": "New York", "count": 800 },
...
]
}
}
Available Field Facets
Field | Description |
---|---|
year | RV model year |
make | RV manufacturer |
model | RV model name |
model_o | Original model designation |
class | RV class (Class A, Class B, Class C, etc.) |
inventory_type | New or used designation |
transmission | Transmission type |
fuel_type | Fuel system type |
length | RV length classification |
engine | Engine specifications |
source | Website domains where listed |
seller_name | Dealer name (lowercase) |
dealer_id | MarketCheck dealer ID |
city | Listing city location |
state | Listing state location |
zip | Listing zip code |
interior_color | Interior color designation |
exterior_color | Exterior color designation |
base_interior_color | Base interior color |
base_exterior_color | Base exterior color |
drivetrain | Drivetrain configuration |
slideouts | Number of slideouts |
sleeps | Sleeping capacity |
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/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 0,
make: 'Forest River',
year: 2024,
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 |
---|---|---|
price | RV listing price range | 500-10500 |
miles | RV mileage range | 0-10000 |
msrp | Manufacturer retail price | 500-10500 |
The Search API calculates comprehensive statistics for numeric fields, providing market analysis and competitive intelligence insights for RV inventory.
Parameters
stats
— Comma-separated list of fields to calculate statistics on
stats=price,miles
Example
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 0,
year: '2024',
make: 'Forest River',
model: 'Salem',
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:
Field | Description |
---|---|
price | RV listing price statistics |
miles | RV mileage statistics |
Search for RVs available near specific locations using geographic coordinates, zip codes, or radius parameters for location-based inventory discovery.
Parameters
latitude
and longitude
- Exact coordinateszip
- ZIP code reference pointradius
- Search radius in milesYou can combine location parameters with any other search filters for precise geographic targeting.
Example
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 2,
make: 'Forest River',
year: '2024',
model: 'Salem',
zip: '60069',
radius: 100
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Response
dist
field with distance from the specified coordinates or ZIP codeThe response includes comprehensive RV listing information with nested objects for media, dealer, and RV-specific build specifications.
interface RVSearchResponse {
num_found: number; // Total number of listings matching search criteria
listings: RVListing[]; // Array of vehicle listings
facets?: Facets; // Field 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 RVListing {
id: string; // Unique listing identifier
vin: string; // Vehicle Identification Number
heading?: string; // Formatted listing title
price?: number; // Current listing price
miles?: number; // Vehicle mileage
msrp?: number; // Manufacturer's Suggested Retail Price (as per dealer website)
data_source: string; // Original data source identifier. Mostly `mc` for MarketCheck
vdp_url?: string; // Vehicle detail page URL
exterior_color?: string; // Exterior color description
interior_color?: string; // Interior color description
base_int_color?: string; // Standardized interior color
base_ext_color?: string; // Standardized exterior color
seller_type: string; // Type of seller (dealer, fsbo, auction)
inventory_type: string; // Inventory classification (new, used)
stock_no?: string; // Dealer stock number
last_seen_at: number; // Last seen timestamp (Unix Seconds), when the listing was last updated
last_seen_at_date: string; // Last seen date (ISO format)
scraped_at: number; // First seen timestamp (Unix Seconds), when the listing was first scraped
scraped_at_date: string; // First seen date (ISO format)
first_seen_at: number; // First seen timestamp (Unix Seconds), when the listing was first seen. Copy of `scraped_at` field
first_seen_at_date: string; // First seen date (ISO format)
first_seen_at_source: number; // First seen at source website timestamp (Unix Seconds)
first_seen_at_source_date: string; // First seen at source website date (ISO format)
first_seen_at_mc: number; // First seen at MarketCheck timestamp (Unix Seconds)
first_seen_at_mc_date: string; // First seen at MarketCheck date (ISO format)
source: string; // Data source website domain
media?: RVMedia; // Photos and media content links
dealer?: RVDealer; // Dealer information
build?: RVBuild; // Vehicle specifications
dist?: number; // Distance in miles from provided coords (when location filter is used)
}
interface RVMedia {
photo_links?: string[]; // Array of photo URLs from dealer website
floorplan_image_link?: string; // Floorplan image URL, when available
}
interface RVDealer {
id: string; // Unique dealer identifier
seller_name: string; // Dealer business name
inventory_url: string; // Dealer website URL
data_source: string; // Original data source identifier. Mostly `mc` for MarketCheck
status: string; // Current availability status
listing_count: number; // Number of listings for this term
dealer_type: string; // Dealer classification (franchise, independent)
street: string; // Street address
city: string; // City name
state: string; // State or province
country: string; // Country code
zip: string; // Postal/ZIP code
latitude: string; // Geographic latitude
longitude: string; // Geographic longitude
seller_phone: string; // Contact phone number
seller_email?: string; // Contact email address
created_at: string; // First seen date (ISO format)
msa_code: string; // Metropolitan Statistical Area code
}
interface RVBuild {
year: number; // Model year
make: string; // Vehicle manufacturer
model: string; // Vehicle model
model_o: string; // Manufacturer model code
trim: string; // Trim level
class: string; // RV class (Class A, Class B, Class C, Travel Trailer, etc.)
slideouts: string; // Number of slideouts
sleeps: string; // Sleeping capacity
fuel_type: string; // Fuel type (gasoline, electric, hybrid, etc.)
engine: string; // Engine description
length: string; // Overall length (e.g., "37'8\"")
gvwr: string; // Gross Vehicle Weight Rating
chassis: string; // Chassis type (Ford F53, Freightliner, etc.)
transmission?: string; // Transmission type
fresh_water_capacity?: string; // Fresh water tank capacity
seating_capacity?: string; // Standard seating capacity
}
interface Facets {
[key: string]: {
item: string; // Facet term/value
count: number; // Number of listings for this term
}[];
}
interface Stats {
[key: string]: {
min: number; // Minimum value
max: number; // Maximum value
count: number; // Number of values
missing: number; // Count of missing values
sum: number; // Sum of all values
mean: number; // Arithmetic mean
stddev: number; // Standard deviation
sum_of_squares: number; // Sum of squared values
median: number; // Median value
percentiles: {
[key: string]: number; // Percentile values
};
};
}
interface RangeFacets {
[key: string]: {
counts: {
lower_bound: number; // Range lower bound
upper_bound: number; // Range upper bound
count: number; // Number of listings in range
}[];
interval: number; // Interval size
start: number; // Starting value
end: number; // Ending value
before: number; // Count below start
between: number; // Count within range
after: number; // Count above end
};
}
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>"
}
Filter listings based on specific RV attributes like make, model, year, class, and RV-specific features. This allows users to find RVs that match their exact preferences.
Example:
Here we're filtering for Class A motorhomes from 2020 to 2025 from Forest River, Winnebago.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {
api_key: 'YOUR_API_KEY',
rows: 2,
make: 'Forest River,Winnebago',
year_range: '2020-2025',
class: 'class A'
},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
class
to filter by RV class types:
class=Class A
for large motorhomesclass=Class B
for van-style RVsclass=Class C
for cab-over motorhomesclass=Travel Trailer
for towable RVsclass=Fifth Wheel
for large towable RVsExample:
Here we're filtering for Class C motorhomes.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {api_key: 'YOUR_API_KEY', class: 'class C', rows: 2},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
vin
parameter to search for a specific RV by its VIN (Vehicle Identification Number)Example:
Here we're searching for an RV by its VIN.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {api_key: 'YOUR_API_KEY', vin: '5ZT2ALTB1S9011042'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Search by RV-specific attributes like sleeping capacity, slideouts, and length specifications.
Parameters:
sleeps
- Sleeping capacity (e.g., "6", "8")slideouts
- Number of slideouts (e.g., "2", "3", "4")length_range
- Length range filteringgvwr
- Gross Vehicle Weight Ratingfresh_water_capacity
- Fresh water tank capacityExample:
Here we're searching for RVs with at least 2 slideouts.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {api_key: 'YOUR_API_KEY', slideouts: '2', sleeps: '5'},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Filter RV listings within numeric ranges using the following parameters. Range values must be integers in min-max
format.
Parameter | Type | Default Lower | Default Upper | Description |
---|---|---|---|---|
price_range | integer | 1000 | 100000 | Filter by price range |
miles_range | integer | 1000 | 100000 | Filter by mileage |
msrp_range | integer | 1000 | 100000 | Filter by MSRP range |
year_range | integer | 1981 | 2025 | Filter by year range |
length_range | string | 1 | 200 | Filter by RV length |
Example:
Here we're filtering for RVs in a specific price range.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {api_key: 'YOUR_API_KEY', price_range: '5000-10000', rows: 2},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
Search for specific terms across all RV listing fields using the search_text
parameter.
Example:
Here we're searching for RVs with "Feather" mentioned anywhere in the listing.
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.marketcheck.com/v2/search/rv/active',
params: {api_key: 'YOUR_API_KEY', search_text: 'Feather', rows: 1},
headers: {Accept: 'application/json'}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
The API supports filtering by various RV classes:
RV searches support specialized filtering:
Introduction
Comprehensive search APIs for filtering recreational vehicle inventory with minimal latency across multiple data sources.
Auto-Complete
Implement real-time auto-completion for RV search inputs using facet capabilities with suggestions and counts across US recreational vehicle inventory data.