Manheim APImanheim.co.uk ↗
Access Manheim UK vehicle auction listings, upcoming events, and auction centre details via 8 structured endpoints. Filter by make, model, fuel type, and more.
What is the Manheim API?
The Manheim UK API gives developers structured access to vehicle auction data across 8 endpoints, covering live listings, upcoming auction events, and UK auction centre locations. Use search_vehicles to query active stock with filters for make, model, fuel type, vehicle type, and sales channel, or call get_auction_events to retrieve scheduled auctions grouped by date within any date range you specify.
curl -X GET 'https://api.parse.bot/scraper/7f23834d-205f-4e5e-a8bf-f49d398ff718/search_vehicles?make=BMW&page=1&model=BMW%7C1+SERIES&keyword=BMW&fuel_type=Petrol&vehicle_type=Car&sales_channel=Physical+Auction&auction_centre=Birmingham' \ -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 manheim-co-uk-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.
"""Walkthrough: Manheim UK vehicle auction SDK — search, filter, drill-down."""
from parse_apis.manheim_uk_api import Manheim, VehicleType, FuelType, SalesChannel, CentreNotFound
client = Manheim()
# Search diesel cars — limit caps TOTAL items fetched across all pages.
for vehicle in client.vehicles.search(fuel_type=FuelType.DIESEL, vehicle_type=VehicleType.CAR, limit=5):
print(vehicle.brand, vehicle.model_name, vehicle.odometer)
# Drill into one vehicle's images via .first()
car = client.vehicles.search(make="BMW", limit=1).first()
if car:
detail = car.images()
print(f"{car.brand} {car.model_name}: {len(detail.images)} photos")
# Get filter options — shows all facets with counts
filters = client.filteroptionses.get()
print(f"Total vehicles: {filters.TotalResults}")
for facet in filters.Facets.VehicleType[:3]:
print(f" {facet.Text}: {facet.Count}")
# Browse upcoming auction events
for event_group in client.eventdategroups.list(limit=2):
print(f"Date: {event_group.DateFormatted}")
# Browse auction centres, then get detail for one
centre = client.auctioncentres.list(limit=1).first()
if centre:
info = centre.detail()
print(info.name, info.address, info.phone)
# Typed error handling: catch CentreNotFound on a bad slug
try:
bad = client.auctioncentre("nonexistent-centre-xyz").detail()
except CentreNotFound as exc:
print(f"Centre not found: {exc}")
# Explore makes and their models
make = client.makes.list(limit=1).first()
if make:
print(f"{make.Text}: {make.Count} vehicles")
for model in make.models(limit=3):
print(f" {model.Text} ({model.Count})")
print("exercised: vehicles.search / vehicle.images / filteroptionses.get / eventdategroups.list / auctioncentres.list / centre.detail / makes.list / make.models")
Search for vehicle auction listings with optional filters. Returns paginated results with up to 30 vehicles per page. Pagination advances via the page parameter. Each vehicle includes make, model, grade, registration date, transmission, engine size, odometer reading, auction centre, and sales channels.
| Param | Type | Description |
|---|---|---|
| make | string | Filter by vehicle make (e.g. 'BMW', 'FORD', 'AUDI'). Values from get_vehicle_makes. |
| page | integer | Page number for pagination. |
| model | string | Filter by vehicle model (e.g. 'BMW|1 SERIES'). Values from get_vehicle_models_by_make. |
| keyword | string | Free-text search keyword. |
| fuel_type | string | Filter by fuel type. Accepted values: 'Petrol', 'Diesel', 'Electric', 'Hybrid', 'BiFuel', 'Diesel PHEV', 'Petrol PHEV'. |
| vehicle_type | string | Filter by vehicle type. Accepted values: 'Car', 'Van', 'Motorbike', 'Plant', 'Truck'. |
| sales_channel | string | Filter by sales channel. Accepted values: 'Physical Auction', 'Dealer Auction', 'Preview Stock'. |
| auction_centre | string | Filter by auction centre name (e.g. 'Colchester', 'Birmingham'). Values from get_auction_centres. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"vehicles": "array of vehicle listing objects",
"total_results": "integer total number of matching vehicles"
},
"sample": {
"data": {
"page": 1,
"vehicles": [
{
"id": "1003581",
"brand": "AUDI",
"grade": "GRADE 4",
"odometer": "152,375 Miles",
"image_url": "http://images.manheim.co.uk/images/units/ims_small/c35582ed-693d-4acd-b26b-f3a0f7298905_ext_7.jpg",
"model_name": "TT 2.0 TDI Quattro 2dr",
"description": "Diesel - Silver - HJ09WMV - 2 Door Coupe",
"engine_size": "2.0L",
"transmission": "Manual",
"auction_centre": "Colchester",
"sales_channels": [
"Physical Auction",
"Simulcast"
],
"registration_date": "05/2009"
}
],
"total_results": 14646
},
"status": "success"
}
}About the Manheim API
Vehicle Listings and Search
search_vehicles is the core endpoint, returning paginated results of up to 30 vehicles per page. Each vehicle object includes id, brand, model_name, description, grade, image_url, registration_date, odometer, and transmission. You can narrow results using make, model, fuel_type, vehicle_type, sales_channel, auction_centre, or a free-text keyword. Valid filter values come from companion endpoints: get_vehicle_makes returns all makes with live stock counts, and get_vehicle_models_by_make returns models for a given make including their Count, Group, and Value identifiers. get_filter_options returns facet arrays for VehicleType, Make, Model, FuelType, and SalesChannel, each with Value, Text, Count, and Icon fields, along with a TotalResults figure for the full inventory.
Auction Events and Centres
get_auction_events accepts start_date and end_date in dd/mm/yyyy HH:MM:SS format and returns events grouped by date, with each row containing auction centre details, vehicle counts, and vendor information. The response includes TotalResults, TotalPages, and CurrentPage for pagination. get_auction_centres lists every Manheim UK location with name, slug, and url. Pass a slug to get_auction_centre_detail to retrieve the centre's full postal address, phone number, and an upcoming_auctions array covering the next 7 days, each entry including date, name, and a vehicle count in the info field.
Vehicle Images
get_vehicle_detail accepts a vehicle_id from search_vehicles results and returns an array of high-resolution image URLs. Vehicles that do not have professional photography return an empty images array, so callers should handle that case explicitly. This endpoint is the only way to retrieve full-resolution images beyond the thumbnail image_url present in search results.
The Manheim API is a managed, monitored endpoint for manheim.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when manheim.co.uk 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 manheim.co.uk 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 price-monitoring tool that tracks available stock by make and model using
search_vehicleswithmakeandmodelfilters. - Generate a calendar of upcoming UK vehicle auctions by polling
get_auction_eventswith a rolling date range. - Display auction centre contact details and weekly schedules in a dealer portal using
get_auction_centre_detail. - Populate make/model dropdowns dynamically with live stock counts from
get_vehicle_makesandget_vehicle_models_by_make. - Build a fleet remarketing dashboard filtered by
sales_channelvalues such as 'Dealer Auction' or 'Physical Auction'. - Aggregate high-resolution vehicle imagery for listings by fetching full image arrays from
get_vehicle_detail. - Analyse inventory distribution across fuel types using the
FuelTypefacet counts returned byget_filter_options.
| 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 Manheim UK offer an official developer API?+
What does `get_auction_events` return and how is pagination handled?+
get_auction_events returns results grouped by date, with each group containing auction rows that include centre details, vehicle counts, and vendor information. The response exposes TotalResults, TotalPages, and CurrentPage fields. The start_date and end_date parameters accept dates in dd/mm/yyyy HH:MM:SS format; if omitted, they default to today and 30 days from today respectively.Does the API return bid history, sale prices, or past auction results?+
Are full vehicle specifications such as engine size, colour, or damage grade exposed in the search results?+
search_vehicles response includes grade, odometer, transmission, registration_date, fuel_type, and description, but detailed specs like engine size or colour are not currently returned as discrete fields. You can fork this API on Parse and revise the vehicle detail endpoint to surface additional specification fields if they are available on the listing page.What happens when a vehicle has no professional photography in `get_vehicle_detail`?+
id with an empty images array. The thumbnail image_url in search_vehicles results is separate and may still be present, but get_vehicle_detail specifically targets high-resolution photography, which not all lots have.