DoneDeal APIdonedeal.ie ↗
Search and filter used car and caravan listings from DoneDeal.ie. Filter by price, mileage, keyword, and section. Returns title, price, year, mileage, and location.
What is the DoneDeal API?
The DoneDeal.ie API exposes 1 endpoint — search_listings — that returns used vehicle listings from Ireland's DoneDeal marketplace. Each listing object includes up to 9 fields: id, title, price, price_in_euro, year, mileage, engine, location, and publish_date_relative. You can filter results by price range, mileage range, section (cars or caravans), and keyword, or sort by relevance, price, or recency.
curl -X GET 'https://api.parse.bot/scraper/8ac8f002-e3be-40da-a75e-93e4304da8bd/search_listings?sort=relevance&limit=5&query=golf§ion=cars&price_to=50000&mileage_to=200000&price_from=1000&mileage_from=0' \ -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 donedeal-ie-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.
from parse_apis.donedeal_vehicle_listings_api import DoneDeal, Sort, Section
client = DoneDeal()
# Search for affordable cars sorted by price
for listing in client.listings.search(query="golf", sort=Sort.PRICE_ASC, section=Section.CARS, price_to=20000, limit=5):
print(listing.title, listing.price_in_euro, listing.year, listing.mileage, listing.location)
Search for used vehicle listings on DoneDeal.ie. Supports filtering by price and mileage ranges, keyword search, sorting, and pagination. Returns a list of vehicle ads with details including price, year, mileage, engine type, location, seller info, and images. Paginates internally up to the requested limit. Each ad's mileage may be null when not provided by the seller.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| limit | integer | Maximum number of listings to return. |
| query | string | Keyword search term (e.g. 'golf', 'campervan', 'toyota'). |
| section | string | Vehicle section to search in. |
| price_to | integer | Maximum price filter in Euro. |
| mileage_to | integer | Maximum mileage filter in km. |
| price_from | integer | Minimum price filter in Euro. |
| mileage_from | integer | Minimum mileage filter in km. |
{
"type": "object",
"fields": {
"ads": "array of Listing objects with vehicle details including id, title, price, price_in_euro, year, mileage, engine, location, publish_date_relative, publish_date, listing_url, seller_type, dealer_name, seller_info, and images",
"total": "integer count of ads returned"
},
"sample": {
"data": {
"ads": [
{
"id": 42280407,
"year": "2010",
"price": "€1,234",
"title": "VW GOLF",
"engine": "1.5 Diesel",
"images": [
"https://media.donedeal.ie/example"
],
"mileage": 271157,
"location": "Sligo",
"dealer_name": null,
"listing_url": "https://www.donedeal.ie/cars-for-sale/vw-golf/42280407",
"seller_info": {
"type": "PRIVATE"
},
"seller_type": "PRIVATE",
"publish_date": "2026-06-09 21:33:38",
"price_in_euro": 1234,
"publish_date_relative": "11 hours"
}
],
"total": 5
},
"status": "success"
}
}About the DoneDeal API
What the API Returns
The search_listings endpoint returns an array of listing objects under the ads key, along with a total integer indicating how many ads matched the query. Each listing carries a unique id, a human-readable title, price and price_in_euro fields, year, mileage, engine type, seller location, and publish_date_relative — a relative timestamp like "3 hours ago" useful for gauging listing freshness.
Filtering and Sorting
The endpoint accepts price_from and price_to as integer Euro values to bracket price ranges, and mileage_from / mileage_to in kilometres to narrow by vehicle condition. The section parameter restricts results to either cars or caravans. The query parameter accepts keyword strings such as 'golf', 'campervan', or 'toyota' to filter by make, model, or body type. The sort parameter accepts relevance, price_asc, price_desc, or date_desc, and limit controls how many records come back per request.
Coverage and Scope
The API covers listings from DoneDeal.ie, the primary Irish second-hand vehicle marketplace. The two supported sections are cars and caravans. The response fields reflect publicly visible listing data — price, mileage, engine spec, and seller location — without requiring any user authentication. Listing freshness depends on how recently the original listing was posted or updated on DoneDeal.ie.
The DoneDeal API is a managed, monitored endpoint for donedeal.ie — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when donedeal.ie 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 donedeal.ie 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?+
- Track daily price changes on used Toyota or Volkswagen listings filtered by
queryandprice_to - Build a mileage-aware car search tool using
mileage_fromandmileage_toto surface low-km vehicles - Aggregate caravan listings for a niche marketplace by setting
sectiontocaravansand sorting bydate_desc - Monitor newly posted listings in a given price bracket using
price_from,price_to, andsort=date_desc - Feed vehicle inventory data into a price comparison dashboard using
price_in_euroandyearfields - Power a regional search tool by filtering listings and parsing the
locationfield from each result
| 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 DoneDeal.ie have an official developer API?+
What does the `search_listings` endpoint return for each listing?+
ads array includes: id, title, price, price_in_euro, year, mileage, engine, location, and publish_date_relative. The total field at the top level gives the count of matching ads returned in that response.Are vehicle sections beyond `cars` and `caravans` covered — for example, motorbikes, trucks, or vans?+
section parameter supports cars and caravans only. You can fork this API on Parse and revise it to add additional DoneDeal sections such as motorbikes or trucks.Does the API return seller contact details or full listing descriptions?+
How fresh is the listing data?+
publish_date_relative field reflects when the listing was posted or last updated on DoneDeal.ie. There is no guaranteed polling interval, so the data reflects DoneDeal.ie at the time of each API call rather than a cached snapshot.