preowned.ferrari.com APIpreowned.ferrari.com ↗
Search and retrieve preowned Ferrari listings worldwide. Get specs, pricing, dealer info, and inventory data via 5 structured API endpoints.
curl -X POST 'https://api.parse.bot/scraper/2acfe330-1a3e-4d34-806b-ecdd95525bd7/search_listings' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"page": 0,
"sort": "price-asc",
"limit": "5",
"locale": "en-US",
"countries": "US"
}'Search for preowned Ferrari listings with optional filters for country, model, price, year, and more. Returns vehicle summaries including VINs, ad IDs, pagination info, and available filter options.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed) |
| sort | string | Sort order. Accepted values: 'price-asc', 'price-desc', 'year-asc' |
| limit | integer | Number of results per page |
| locale | string | Locale for results (e.g., 'en-US', 'en-EN') |
| models | string | Comma-separated model slugs to filter by (e.g., 'F8 CP,F171'). Slugs available from list_models endpoint. |
| year_to | integer | Maximum production year filter |
| price_to | integer | Maximum price filter |
| countries | string | Comma-separated country slugs to filter by (e.g., 'US,IT,DE'). Slugs available from list_countries endpoint. |
| year_from | integer | Minimum production year filter |
| price_from | integer | Minimum price filter |
{
"type": "object",
"fields": {
"results": "object containing 'ads' (array of vehicle listings), 'pagination' (object with total, pages, limit), and 'filters' (object with available filter options)"
},
"sample": {
"data": {
"results": {
"ads": [
{
"id": "IljixbcgVnJGsKsQfDGsrsY2GXufUHKCmrDt%2FK4Fdzz4g8DUpj0afIaGJVzZWNgOuIYTFSTJ%2FhVNxEH%2BsvPxAxm37uloJHUaaTKEHbpGEA%3D%3D",
"vin": "ZFF92LLA9L0256196",
"year": 2020,
"model": {
"name": "F8 Tributo",
"slug": "F8 CP"
},
"price": 379900,
"dealer": {
"city": "Plano",
"name": "Ferrari Dallas",
"country": "US"
},
"engine": "90° V8",
"carName": "F8 Tributo",
"country": {
"name": "USA",
"slug": "US",
"region": "NA"
},
"odometer": 5437,
"priceUnit": "USD",
"odometerUnit": "mi",
"exteriorColor": "Bianco Avus"
}
],
"filters": {
"models": {
"options": [
{
"name": "296 GTB",
"slug": "F171",
"count": 109
}
]
}
},
"pagination": {
"limit": 5,
"pages": 181,
"total": 903
}
}
},
"status": "success"
}
}About the preowned.ferrari.com API
The preowned.ferrari.com API provides access to Ferrari's official certified preowned marketplace through 5 endpoints covering inventory search, vehicle details, model catalogs, country coverage, and authorized dealer directories. The search_listings endpoint accepts filters for model, price range, production year, and country, returning VINs, ad IDs, pagination metadata, and available filter facets. The get_vehicle_details endpoint expands any ad ID into full specification sheets, option lists, images, and dealer contact data.
Inventory Search and Filtering
The search_listings endpoint accepts a POST body with parameters including models (comma-separated model slugs), countries (country slugs), price_to, year_to, sort (price-asc, price-desc, or year-asc), limit, and page. Results include an ads array of vehicle summaries with VINs and ad IDs, a pagination object containing total, pages, and limit, and a filters object reflecting available facets for the current result set. Model slugs and country slugs required for filtering come from the list_models and list_countries endpoints respectively.
Vehicle Detail Records
The get_vehicle_details endpoint accepts one or more comma-separated ad IDs from search results and returns a detailed record per vehicle. Each record includes the full specification sheet, a list of factory-fitted optional features, an image gallery, and dealer contact information — significantly more data than the search summary. Pass a locale parameter (e.g., en-US) to control language and regional formatting of returned content.
Reference Data: Models, Countries, and Dealers
Three supporting GET endpoints provide the reference data needed to build well-formed queries. list_models returns an array of model objects each with slug, name, count, and slugSeo, reflecting only models that have active listings. list_countries returns country objects with slug, name, region, count, and slugSeo. list_dealers requires a country slug and returns authorized Ferrari dealers for that country, including name, url, image, and a boolean options object indicating whether the dealer offers service, showroom, bodyshop, and classiche capabilities.
- Build a cross-country price comparison tool for specific Ferrari models using
search_listingswithmodelsandcountriesfilters - Track preowned inventory levels per model over time by polling
list_modelsand monitoring thecountfield - Aggregate full specification sheets and option lists for a given model by batch-fetching ad IDs through
get_vehicle_details - Map authorized Ferrari dealers by country and filter by
showroomorclassicheflags fromlist_dealers - Feed a custom vehicle alert system that monitors new listings in a specific country and year range using
search_listingswithyear_toandcountries - Power a research dashboard comparing option configurations across preowned listings using the
optionalsfields fromget_vehicle_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does preowned.ferrari.com have an official public developer API?+
What does `get_vehicle_details` return beyond what `search_listings` provides?+
search_listings returns lightweight summaries — VINs, ad IDs, and pagination info — suitable for browsing. get_vehicle_details expands each ad ID into a full specification sheet, a list of factory-fitted optional features, a multi-image gallery, and structured dealer contact information including URL and service capability flags. You should first retrieve ad IDs from search_listings, then pass those IDs to get_vehicle_details to get the full record.How does pagination work in `search_listings`?+
page parameter. The response pagination object returns total (total matching listings), pages (total page count), and limit (results per page). Set limit to control page size, and increment page to walk through result sets. No cursor tokens are used — standard integer offsets only.Does the API return historical sold listings or auction results?+
Are private seller listings included, or only authorized dealer inventory?+
list_dealers endpoint reflects this — it returns dealers with flags for showroom, service, bodyshop, and classiche, and search_listings results correspond to inventory held by those dealers. Private party listings are not part of the source marketplace, so they are not covered here. You can fork the API on Parse and revise it if you need to incorporate inventory from a different source.