Pickles Auctions API & Scraper
The Pickles Auctions API returns Australia's largest vehicle and industrial auction house as clean JSON, in four actions: search, lot_detail, auctions and facets.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
On 2026-10-01 the live catalogue held 10,959 lots on offer, split across cars (5,488), government and industrial general goods (3,058), earthmoving and mobile plant (764), trucks (700), trailers (441), motorcycles (224), caravans (145), machinery (79), boats (52) and IT and office equipment (8), running in 194 separate sale events. search narrows that by free text or by any combination of make, model, badge, series, exact year or a year range, odometer range, engine hours, state and city, buy method, salvage or non-salvage, WOVR write-off status, body, fuel type, transmission, drive type, colour, selling vendor, sale event and price range, and sorts by ending soonest, sale start, year, odometer or price. Every lot row carries the stock number, the public lot URL, make, model, badge, year, body, colour, odometer with the exact wording Pickles prints next to it, VIN, registration plate and state and expiry, keys, salvage flag and WOVR status, incident type, the selling vendor's name, the suburb, city and state the lot sits in, how it is sold, when bidding ends, the sale event it belongs to with its start and end time and selling branch, and a photo count with a thumbnail. lot_detail adds the full auction description, every photo URL in order (8 to 70 on the lots sampled), standard equipment, accessories, fitted extras, option pack, ROPS and FOPS and physical dimensions. auctions returns the live sale calendar with each sale's exact lot count, and facets returns the live values of any of 22 fields with exact counts, so you discover the valid filter values instead of guessing them. Verified on 2026-10-01: 53 of 53 live checks behaved as expected on two separate runs, all 24 exposed filters measurably narrowed the catalogue in the same run, and on 16 lots across six buckets the VIN matched the lot's own public page 12 of 12, the registration plate 12 of 12, the odometer 10 of 10, the Buy-Now price 3 of 3 and the vendor 16 of 16, with zero mismatches. No Pickles account and no API key on their side — one ReefAPI key and the standard { ok, data, meta, error } envelope.
What is actually on offer — the live catalogue on 2026-10-01
These are facet counts read off the live index in one call, not estimates. They move as sales open and close; `facets` returns today's numbers the same way, and every search response carries the exact matching total in meta.
| category | lots on offer | what it is | VIN / rego published? |
|---|---|---|---|
| cars | 5,488 | salvage and insurance write-offs, dealer trade-ins, fleet and government cars | yes, on vehicles |
| general-goods | 3,058 | government and industrial surplus: pallets, consumables, tooling, office stock | no, serial number where there is one |
| earthmoving-and-mobile-plant | 764 | excavators, loaders, dozers, mobile plant — engine hours instead of kilometres | no, serial number |
| trucks | 700 | prime movers, rigids, light commercials | yes |
| trailers | 441 | semi, tipper, dog and box trailers | yes |
| motorcycles | 224 | road, off-road and scooters | yes |
| caravans | 145 | caravans and campers | yes |
| machinery | 79 | workshop and fixed machinery | no, serial number |
| boats | 52 | trailer boats and marine | no, hull id where published |
| computers-smartphones-office-machines | 8 | IT and office equipment | no |
Lots are spread over NSW 3,134, VIC 2,217, QLD 2,173, WA 1,420, SA 1,041, NT 371, TAS 300, ACT 225 and 78 listed as national. 4,495 of the 10,959 are salvage stock and 6,464 are not; the WOVR register status splits as 1,623 not applicable, 1,413 repairable write-off, 1,356 statutory write-off and 54 inspection-passed repairable. Only lots currently on offer are reachable: Pickles' own public visibility rule excludes sold, withdrawn and finished lots, so there is no sold-price archive and no price history on this surface.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/pickles/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"make": "toyota",
"size": 20
}
}{
"ok": true,
"meta": {
"api": "pickles",
"endpoint": "search",
"mode": "live",
"latency_ms": 776.9,
"record_count": 20,
"bytes": 169194,
"cache_hit": false,
"completeness_pct": 1.5,
"stop_reason": "limit_reached",
"filters_applied": [
"makeFilter eq 'toyota'"
],
"pagination": {
"page": 1,
"size": 20,
"has_more": true,
"next_page": 2
},
"upstream_requests": 1,
"total_results": 1331,
"charged_credits": 1,
"version": "1.0.0",
"request_id": "36d641ff6fbb40df",
"queue_ms": 1.3
},
"data": {
"lots": [
{
"stock_number": "62320606",
"title": "Toyota Hilux",
"summary": "CP: 01/2018,Toyota,Hilux,GUN126R SR,Cab Chassis Dual Cab,5 seats,4 doors",
"category": "cars",
"category_label": "Cars",
"asset_type": "Vehicle",
"lines_of_business": [
"cars-motorcycles",
"salvage"
],
"url": "https://www.pickles.com.au/used/details/cars/2018-toyota-hilux/62320606",
"make": "Toyota",
"model": "Hilux",
"series": "GUN126R",
"badge": "SR",
"year": 2018,
"build_year": null,
"compliance_date": "01/2018",
"body": "Cab Chassis Dual Cab",
"colour": "White",
"colour_manufacturer": "040 - Glacier White (T)",
"doors": 4,
"seats": 5,
"engine_litres": 2.8,
"engine_capacity": 2.8,
"engine_type": null,
"cylinders": 4,
"fuel_type": "Diesel",
"fuel_economy": "9",
"transmission": "Sports Automatic",
"gears": 6,
"drive_type": "4X4 Dual Range",
"power_kw": 130,
"horsepower": 130,
"odometer": 272256,
"odometer_note": "Kms. Showing on Odometer",
"kilometres": 272256,
"engine_hours": null,
"vin": "MR0KA3CDX01210591",
"serial_number": null,
"hull_id": null,
"registration_plate": "LV30",
"registration_state": "WA",
"registration_expiry": null,
"has_keys": true,
"spare_keys": true,
"sold_with_plates": false,
"plates_count": null,
"service_history": "Partial Service History",
"is_salvage": true,
"salvage_label": "Salvage",
"wovr_status": null,
"incident_types": null,
"driveable": true,
"engine_starts": true,
"burnt": false,
"price_aud": null,
"buy_now_price_aud": null,
"minimum_bid_aud": null,
"buy_method": "Pickles Online",
"selling_method": null,
"buy_now_during_auction": false,
"bidding_ends_at": "2026-10-21T07:00:00Z",
"for_sale": true,
"vendor_name": "BHP NICKEL WEST PTY LTD",
"sale": {
"sale_id": 16517,
"sale_number": 16277,
"name": "WA Mining - Earth Moving & Mobile Plant sale",
"status": "INPREP",
"selling_methods": [
"[trimmed-depth]"
],
"starts_at": "2026-10-20T02:00:00Z",
"ends_at": "2026-10-21T07:00:00Z",
"event_location": "Corner Phoenix Road & Sudlow Road , Bibra Lake, Western Australia, Australia, 6163",
"branch": "Bibra Lake, Perth (WA)"
},
"location_suburb": "Bibra Lake",
"location_city": "Perth",
"location_state": "WA",
"location_timezone": "AWST",
"image_count": 34,
"thumbnail": "https://www.pickles.com.au/images/transform/dfb9ef53-f721-40bf-83d3-6baf588fb41e/d664619e-8b8a-445d-9fe3-7d156d2bfa8e.jpeg",
"ancap_rating": 5,
"green_star_rating": null,
"redbook_code": "AUVTOYO2018AEBY",
"redbook_description": "GUN126R SR Cab Chassis Double Cab 4dr Spts Auto 6sp 4x4 1045kg 2.8DT",
"vfacts_class": "Light Commercial",
"gvm": null,
"gvm_unit": null,
"gcm": null,
"tare": null,
"towing_braked": 3200
},
{
"stock_number": "62429765",
"title": "Toyota Yaris",
"summary": "CP: 03/2013,Toyota,Yaris,Hatchback",
"category": "cars",
"category_label": "Cars",
"asset_type": "Vehicle",
"lines_of_business": [
"cars-motorcycles",
"salvage"
],
"url": "https://www.pickles.com.au/used/details/cars/2013-toyota-yaris/62429765",
"make": "Toyota",
"model": "Yaris",
"series": null,
"badge": null,
"year": 2013,
"build_year": null,
"compliance_date": "03/2013",
"body": "Hatchback",
"colour": "Red",
"colour_manufacturer": null,
"doors": null,
"seats": null,
"engine_litres": null,
"engine_capacity": null,
"engine_type": null,
"cylinders": 4,
"fuel_type": "Petrol - Unleaded ULP",
"fuel_economy": null,
"transmission": "Manual",
"gears": null,
"drive_type": null,
"power_kw": null,
"horsepower": null,
"odometer": 189325,
"odometer_note": "Kms. Showing on Odometer",
"kilometres": 189325,
"engine_hours": null,
"vin": "JTDKW3D370D534070",
"serial_number": null,
"hull_id": null,
"registration_plate": null,
"registration_state": null,
"registration_expiry": null,
"has_keys": false,
"spare_keys": null,
"sold_with_plates": true,
"plates_count": null,
"service_history": null,
"is_salvage": true,
"salvage_label": "Salvage",
"wovr_status": "Repairable Write-Off",
"incident_types": [
"Impact"
],
"driveable": null,
"engine_starts": null,
"burnt": false,
"price_aud": null,
"buy_now_price_aud": null,
"minimum_bid_aud": null,
"buy_method": "Pickles Live",
"selling_method": null,
"buy_now_during_auction": false,
"bidding_ends_at": "2026-10-08T12:59:59Z",
"for_sale": true,
"vendor_name": "1800 REPAIR PTY LTD",
"sale": {
"sale_id": 16343,
"sale_number": 16103,
"name": "Melbourne Salvage Vehicles",
"status": "INPREP",
"selling_methods": [
"[trimmed-depth]"
],
"starts_at": "2026-10-07T22:30:00Z",
"ends_at": "2026-10-08T12:59:59Z",
"event_location": "104-116 Operations Road , Tullamarine, Victoria, Australia, 3043",
"branch": "Tullamarine, Melbourne (VIC)"
},
"location_suburb": "Tullamarine",
"location_city": "Melbourne",
"location_state": "VIC",
"location_timezone": "AEST",
"image_count": 24,
"thumbnail": "https://www.pickles.com.au/images/transform/ae713cd6-1c76-45be-a731-fbc47a8ac271/fc936925-24f5-4c90-bbf9-ea933f71a356.jpeg",
"ancap_rating": null,
"green_star_rating": null,
"redbook_code": null,
"redbook_description": null,
"vfacts_class": null,
"gvm": null,
"gvm_unit": null,
"gcm": null,
"tare": null,
"towing_braked": null
},
{
"stock_number": "62427512",
"title": "Toyota Corolla",
"summary": "CP: 01/2009,Toyota,Corolla,ZRE152R Ascent,Sedan,4 doors",
"category": "cars",
"category_label": "Cars",
"asset_type": "Vehicle",
"lines_of_business": [
"cars-motorcycles",
"salvage"
],
"url": "https://www.pickles.com.au/used/details/cars/2009-toyota-corolla/62427512",
"make": "Toyota",
"model": "Corolla",
"series": "ZRE152R",
"badge": "Ascent",
"year": 2009,
"build_year": null,
"compliance_date": "01/2009",
"body": "Sedan",
"colour": "White",
"colour_manufacturer": null,
"doors": 4,
"seats": null,
"engine_litres": 1.8,
"engine_capacity": 1.8,
"engine_type": null,
"cylinders": 4,
"fuel_type": "Petrol - Unleaded ULP",
"fuel_economy": "7.4",
"transmission": "Automatic",
"gears": 4,
"drive_type": "FWD : Front Wheel Drive",
"power_kw": 100,
"horsepower": 100,
"odometer": 262112,
"odometer_note": "Kms. Showing on Odometer",
"kilometres": 262112,
"engine_hours": null,
"vin": "JTNBU52E00J027692",
"serial_number": null,
"hull_id": null,
"registration_plate": "1HBF997",
"registration_state": "WA",
"registration_expiry": "2026-10-05T00:00:00.000Z",
"has_keys": true,
"spare_keys": null,
"sold_with_plates": false,
"plates_count": 2,
"service_history": null,
"is_salvage": true,
"salvage_label": "Salvage",
"wovr_status": "Inspection Passed Repairable Writeoff",
"incident_types": [
"Impact"
],
"driveable": null,
"engine_starts": null,
"burnt": false,
"price_aud": null,
"buy_now_price_aud": null,
"minimum_bid_aud": null,
"buy_method": "Pickles Live",
"selling_method": null,
"buy_now_during_auction": false,
"bidding_ends_at": "2026-10-12T15:59:59Z",
"for_sale": true,
"vendor_name": "RAC INSURANCE PTY LIMITED",
"sale": {
"sale_id": 16410,
"sale_number": 16170,
"name": "Perth Salvage Vehicles",
"status": "INPREP",
"selling_methods": [
"[trimmed-depth]"
],
"starts_at": "2026-10-12T02:00:00Z",
"ends_at": "2026-10-12T15:59:59Z",
"event_location": "Corner Phoenix Road & Sudlow Road , Bibra Lake, Western Australia, Australia, 6163",
"branch": "Bibra Lake, Perth (WA)"
},
"location_suburb": "Bibra Lake",
"location_city": "Perth",
"location_state": "WA",
"location_timezone": "AWST",
"image_count": 24,
"thumbnail": "https://www.pickles.com.au/images/transform/45821f66-41f2-4be3-a930-45b3cc3c066c/a19c7ecf-788e-44d1-9145-6d2b9e15ad70.jpeg",
"ancap_rating": 4,
"green_star_rating": 7,
"redbook_code": "AUVTOYO2009AEDQ",
"redbook_description": "ZRE152R Ascent Sedan 4dr Auto 4sp 1.8i",
"vfacts_class": "Passenger",
"gvm": null,
"gvm_unit": null,
"gcm": null,
"tare": null,
"towing_braked": 1300
}
]
}
}What the Pickles Auctions API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search live Pickles auction lots. Free-text `query` and/or structured filters (category, asset_type, make, model, badge, series, year or year_min/year_max, odometer_min/max, hours_max, state + city, buy_method, salvage, wovr, body, fuel_type, transmission, drive_type, colour, vendor, sale_id, price_min/max, has_keys). Sortable and paginated. PASS AT LEAST ONE of `query` or a filter — with neither, you get the whole live catalogue (10 959 lots on 2026-10-01). Every filter is AND-ed server-side against the live index, and `meta.total_results` is the exact upstream count so you can verify a filter bit. | Price-intelligence teams call search to search live Pickles auction lots. | query, category, asset_type, make, model, ... |
| lot_detail | Full record for one lot by `stock_number` (the digits at the end of a pickles.com.au/used/details/... URL, and the `stock_number` of any search row). Adds everything search trims: the long auction description, EVERY photo URL in order, standard equipment, accessories, fitted extras, option pack, ROPS/FOPS and physical dimensions — on top of all search fields. A stock number that is not in the live public catalogue returns NOT_FOUND, never an empty success. | Classifieds aggregators call lot_detail to get full record for one lot by `stock_number` (the digits at the end of a pickles.com.au/used/det…. | stock_number |
| auctions | The live Pickles auction/sale calendar, built from the lots that are currently on offer: sale id, sale name, start and end time, status, event location, selling branch, selling methods, the states its lots sit in and the EXACT number of live lots in it. Use a returned `sale_id` as search's `sale_id` filter to list that sale's catalogue. Optional `state` / `category` scope the calendar. NOTE: the exact number of live sales is always reported as `meta.sales_total`; the engine names as many of them as one catalogue scan reaches and reports that as `meta.sales_named` — it never pretends the list is complete. | Resale and arbitrage tools call auctions to get the live Pickles auction/sale calendar, built from the lots that are currently on offer. | state, category, limit |
| facets | The live filter taxonomy: every distinct value of one field across the lots currently on offer, with its exact lot count. This is how you discover the valid values for search's free-string filters (make, model, body, fuel_type, transmission, drive_type, colour, vendor, wovr) instead of guessing them. One cheap call, no lot bodies transferred. | Lead-generation teams call facets to get the live filter taxonomy. | field, field, query, limit |
Call search from your stack
curl -X POST https://api.reefapi.com/pickles/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"make":"toyota","size":20}'import requests
r = requests.post(
"https://api.reefapi.com/pickles/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"make": "toyota",
"size": 20
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/pickles/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"make": "toyota",
"size": 20
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.pickles.search with {"make":"toyota","size":20}.Who uses this API and why
- Track Australian salvage supply for a repair or dismantling business: filter cars by WOVR status, state and incident type, then pull the full photo set and the damage description for each lot before the sale closes.
- Price used stock for a dealership by watching what the same make, model, badge and year band is actually being offered for across all eight states, with odometer and keys-present on every row.
- Feed an insurer or assessor dashboard with write-off volumes by vendor, state and incident type — 4,495 salvage lots and 1,356 statutory write-offs were on offer on the day this was measured.
- Build an auction-clock alerting service: sort by ending soonest, keep bidding_ends_at and the sale event's start and end time, and notify on lots that match a saved filter.
- Source industrial and government surplus: 764 earthmoving and plant lots with engine hours, 700 trucks, 441 trailers and 3,058 general-goods lots, filterable by state and vendor and resolvable to a full lot record with every photo.
Questions developers ask before integrating
Do I get the VIN and the registration plate?
Yes, wherever Pickles publishes them, and unmodified. On 16 sampled lots the VIN our API returned appeared verbatim on the lot's own public page 12 of 12 times, and the registration plate 12 of 12, with zero mismatches. The other four were a pallet of parts, two pieces of earthmoving plant and a general-goods lot, which have no VIN at all — those come back as null rather than as a guess. Registration state and registration expiry come with them on 41 of 60 sampled lots.
Can I see the current bid?
No, and the API will not pretend otherwise. Pickles does not publish a live highest bid anywhere on its public surface. The field exists in its own data but came back empty on all 1,490 rows we measured, and it is not even filterable, so we do not offer it at all rather than hand you a key that is null on every row. What Pickles does publish is the STARTING bid, and only on its online lots: minimum_bid_aud was filled on 302 of the 746 Pickles Online rows we measured, 40 percent of them, and on none of the Pickles Live, Buy Now, EOI or on-site Auction rows. The commonest value is 1 AUD, which is a real one-dollar opening, and the range ran to 34,700. Beyond that you get the mechanism and the clock — buy_method, selling_method, bidding_ends_at and the sale event's own start and end time. To follow a lot you poll it; to know when to stop, read bidding_ends_at.
Why is the price null on most lots?
Because most lots are auctions, and an auction lot has no price until it sells. Pickles writes a zero there, and a zero is not a price, so the API returns null instead of letting a 0 be read as a bargain. Only Buy-Now and fixed-price stock carries a real number: 379 of 10,959 lots on 2026-10-01, and the price_min filter narrows to exactly those 379. On the three priced lots we checked, the figure matched the lot's own page 3 of 3.
How do I know a filter actually did something?
Every search response reports meta.total_results, which is the exact number of lots matching your request, so you can compare it against the unfiltered figure yourself. We did, in a single run against an unfiltered total of 10,959: make=toyota gives 1,219, model=Hilux 282, category=cars 5,488, state=nsw 3,134, state=vic with city=melbourne 1,976, year_min=2020 2,666, odometer_max=50000 840, hours_max=1000 176, buy_method=buy_now 390, salvage=salvage 4,495, wovr set to statutory write-off 1,356, fuel_type=Diesel 2,786, transmission=Automatic 1,751, vendor=YOUI PTY LTD 591, price_min=1 379. All 24 exposed filters narrowed the set. Nothing is exposed that Pickles accepts and ignores.
What do I pass for make, body, fuel type or vendor? I do not want to guess.
You do not have to — that is what the facets action is for. Ask it for any of 22 fields (make, model, badge, series, category, asset_type, body, fuel_type, transmission, drive_type, colour, salvage, wovr, buy_method, selling_method, vendor, year, line_of_business, state, city, sale_id, bid_end) and it returns the live values with their exact lot counts, biggest first. It is a cheap lookup, so you can resolve values before every run rather than shipping a stale list. On 2026-10-01 make returned toyota 1,219, ford 524, hyundai 398, mazda 378, mitsubishi 315, ldv 281 and holden 261 at the top.
Can I list everything in one particular auction?
Yes. Call auctions, take the sale_id you want, and pass it to search as sale_id. On 2026-10-01 sale 16405 — NSW/ACT Online Salvage out of Milperra, Sydney — had 297 live lots, and search returned exactly that total. Each calendar entry also carries the sale name, status, start and end time, the event location, the selling branch, the selling methods, the states its lots sit in and its exact live lot count.
Is the auction calendar complete?
The count is; the names are not always. auctions reports meta.sales_total, which is the exact number of live sale events — 194 on 2026-10-01 — and meta.sales_named, which is how many of them one catalogue scan was able to name. That was 83. With the default limit of 25 soonest-first sales you get a complete answer, and we report both numbers rather than letting the list look exhaustive when it is not. Pickles publishes no separate sale endpoint, so the calendar is derived from the lots themselves.
What does lot_detail add over a search row?
The long auction description, every photo URL in sequence — 8 to 70 photos on the 16 lots we checked, with 24 to 56 typical for a damaged car or a truck — plus standard equipment, accessories, fitted extras, option pack, ROPS and FOPS for plant, and length, width and height. Everything in the search row is in there too. A stock number taken from search resolved to the same lot, with the same VIN, 16 of 16 times.
What happens if I ask for a lot that has already been sold?
You get NOT_FOUND with a message saying the stock number is not in the live public catalogue, never an empty success you have to interpret. Pickles answers a dead stock number with a normal-looking page that contains no lot, and the API turns that into a proper not-found. A search that genuinely matches nothing is different: that is ok with zero rows and total_results 0, because an empty answer is an answer.
Is this a price history or a sold-results API?
No. Pickles' public catalogue only exposes lots currently on offer — its own visibility rule excludes anything whose bidding has already ended — so there are no hammer prices, no sold archive and no history series here. This is a live-catalogue API: what is for sale right now, where it is, what condition it is in and when it closes.
What is the Pickles Auctions API?
Pickles Auctions API is a ReefAPI endpoint group for australia's biggest vehicle and industrial auction house as json: salvage cars, trucks, plant, boats and government surplus with vin, rego, wovr status and the auction clock. It returns live JSON through POST requests under /pickles/v1.
Is the Pickles Auctions API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Pickles Auctions calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Pickles Auctions login or account?
No login to Pickles Auctions is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Pickles Auctions data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.