AutoScout24 APIautoscout24.cz ↗
Search and retrieve European car listings from AutoScout24.cz. Filter by make, model, price, mileage, fuel type, and country. Get full specs and seller details.
What is the AutoScout24 API?
The AutoScout24.cz API provides access to European car listings through 3 endpoints covering search, detailed listing retrieval, and taxonomy lookups. Use search_listings to query across multiple countries with filters for make, model, fuel type, transmission, and price range, then call get_listing_details to pull full specs, equipment lists, seller contact, and images for any individual listing.
curl -X GET 'https://api.parse.bot/scraper/6c748037-c16d-4187-b23b-698e47fb8669/search_listings?desc=0&fuel=B&gear=A&make=13&page=1&sort=standard&country=NL' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace autoscout24-cz-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""AutoScout24.cz — search European car listings and drill into full details."""
from parse_apis.autoscout24_cz_api import (
AutoScout24, FuelType, Sort, Country, ListingNotFound
)
client = AutoScout24()
# List available makes to find a make ID for filtering.
make = client.makes.list(limit=5).first()
print(f"First make: {make.name} (id={make.id})")
# Search for diesel BMW listings in the Netherlands, sorted by price ascending.
for listing in client.listingsummaries.search(
make="13",
fuel=FuelType.DIESEL,
country=Country.NETHERLANDS,
sort=Sort.PRICE,
limit=3,
):
print(f"{listing.make} {listing.model} — {listing.price}, {listing.mileage}")
# Drill into the first result for full details (equipment, tech specs, seller).
summary = client.listingsummaries.search(
make="13", country=Country.NETHERLANDS, limit=1
).first()
if summary:
try:
detail = summary.details()
print(f"Detail: {detail.title}, power={detail.power}, color={detail.color}")
print(f"Seller: {detail.seller.company_name}, dealer={detail.seller.is_dealer}")
print(f"Tech: displacement={detail.technical_data.displacement}, weight={detail.technical_data.weight}")
except ListingNotFound as exc:
print(f"Listing removed: {exc}")
print("Exercised: makes.list / listingsummaries.search / summary.details")
Search car listings across Europe with filters for make, model, price, mileage, fuel type, transmission, country, and year. Returns paginated results sorted by the chosen criterion. When no country filter is specified, listings from all supported countries are returned. Each listing includes summary information; use get_listing_details with the listing URL for full vehicle data including equipment and technical specs.
| Param | Type | Description |
|---|---|---|
| desc | integer | Sort direction: 0 for ascending, 1 for descending. |
| fuel | string | Fuel type code. |
| gear | string | Transmission type code. |
| make | string | Make ID as returned by get_taxonomy (e.g. '13' for BMW, '9' for Audi, '32' for Volkswagen). |
| page | integer | Page number for pagination. |
| sort | string | Sorting criteria. |
| model | string | Model ID within the selected make. |
| country | string | Country code filter. Accepted values include 'AT', 'BE', 'DE', 'ES', 'FR', 'IT', 'LU', 'NL'. Omitting returns listings from all of Europe. |
| year_to | integer | Maximum year of first registration. |
| price_to | integer | Maximum price in EUR. |
| year_from | integer | Minimum year of first registration. |
| mileage_to | integer | Maximum mileage in km. |
| price_from | integer | Minimum price in EUR. |
| mileage_from | integer | Minimum mileage in km. |
{
"type": "object",
"fields": {
"listings": "array of listing summary objects",
"total_pages": "integer, total number of pages available",
"current_page": "integer, current page number",
"total_results": "integer, total number of matching listings"
},
"sample": {
"data": {
"listings": [
{
"id": "3650947f-4973-4e35-8371-cd2bbb10812c",
"url": "https://www.autoscout24.cz/nabidky/bmw-520-520i-m-sport-benzin-cerna-cat_ma13mo1648-3650947f-4973-4e35-8371-cd2bbb10812c",
"fuel": "Benzín",
"make": "BMW",
"year": "03-2018",
"model": "520",
"price": "€ 20 549",
"images": [
"https://prod.pictures.autoscout24.net/listing-images/3650947f-4973-4e35-8371-cd2bbb10812c_48183189-9fe6-4849-9d37-a34b39d94de6.jpg/250x188.webp"
],
"phones": [
"+31 (0)85 - 0003359"
],
"mileage": "158 391 km",
"variant": "Sedan",
"location": {
"zip": "1101 CL",
"city": "AMSTERDAM",
"countryCode": "NL"
},
"price_raw": "20549",
"seller_name": "Autohero Nederland",
"seller_type": "Dealer",
"transmission": "Automatická"
}
],
"total_pages": 200,
"current_page": 1,
"total_results": 163232
},
"status": "success"
}
}About the AutoScout24 API
Endpoints Overview
The API exposes three endpoints. get_taxonomy returns the full list of car makes with their numeric IDs — these IDs are required inputs for the make parameter in search_listings. search_listings accepts optional filters including make, model, fuel, gear, country, page, sort, and desc, and returns paginated results with total_results, total_pages, current_page, and an array of listing summary objects. When country is omitted, results span all supported markets.
Listing Detail Fields
get_listing_details accepts a url as returned in search_listings results and returns a structured object with fields including id, make, model, title, price, power (formatted as kW and hp), color, doors, seats, url, plus full equipment lists, technical data, seller contact information, and high-resolution images. Listings that have been removed or are stale return an input_not_found error.
Geographic Coverage and Filtering
search_listings supports a country filter accepting ISO codes for AT (Austria), BE (Belgium), DE (Germany), ES (Spain), FR (France), IT (Italy), LU (Luxembourg), and NL (Netherlands). Omitting the country parameter returns listings across all of those markets simultaneously. Sorting is configurable via sort and direction via desc (0 for ascending, 1 for descending), and pagination is managed through the page parameter.
Taxonomy and Make IDs
Before filtering by make, call get_taxonomy to retrieve the current list of makes and their corresponding IDs. The response is a sorted array of objects with id and name fields. The IDs are not human-memorable values — for example, BMW is 13, Audi is 9, and Volkswagen is 32 — so querying get_taxonomy first is the reliable way to build correct search_listings requests.
The AutoScout24 API is a managed, monitored endpoint for autoscout24.cz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when autoscout24.cz changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official autoscout24.cz API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a cross-border car price comparison tool using
search_listingswith differentcountrycodes and thepriceresponse field. - Aggregate equipment and spec data from
get_listing_detailsto train a vehicle feature extraction model. - Monitor listing availability by polling
get_listing_detailsURLs and trackinginput_not_foundresponses for removed ads. - Populate a used-car search UI with paginated results from
search_listingsfiltered byfuel,gear, andmake. - Build a make/model dropdown using the
idandnamefields fromget_taxonomyto drive search form inputs. - Extract
power,doors, andseatsfromget_listing_detailsto generate structured vehicle summaries for a fleet procurement tool. - Compare average listing prices by country by running identical
makeandmodelqueries across each supportedcountrycode.
| 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 | 100 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 AutoScout24 offer an official developer API?+
What does `search_listings` return and how specific can the filtering get?+
search_listings returns an array of listing summary objects alongside total_results, total_pages, and current_page. You can filter simultaneously by make (using IDs from get_taxonomy), model, fuel type code, gear transmission code, country (AT, BE, DE, ES, FR, IT, LU, NL), and control sort order with sort and desc. Year and mileage are noted as supported filter dimensions as well.What happens if a listing URL passed to `get_listing_details` no longer exists?+
input_not_found error for any listing that has been removed or has gone stale on the source site. This makes it straightforward to detect delisted vehicles when monitoring a saved set of URLs.Does the API return dealer inventory counts, seller ratings, or review data?+
get_listing_details returns seller contact information alongside vehicle specs, equipment, and images, but dealer-level inventory counts and seller ratings are not currently part of the response fields. The API covers individual listing data across the supported European markets. You can fork it on Parse and revise to add an endpoint targeting dealer profile pages.Is Czech Republic (CZ) included in the country filter for `search_listings`?+
country parameter are AT, BE, DE, ES, FR, IT, LU, and NL. CZ is not listed as a supported filter value. Omitting country returns results across all supported markets. You can fork this API on Parse and revise it to investigate whether additional country codes can be added.