Trade Me motors
New Zealand vehicle listings with make, model, condition, region, body style, fuel type, transmission, year, price, odometer, engine size, seats and seller type filters and sort: make, model, year, odometer, price, body style, fuel, transmission, engine size, colour, owners, location and photos, paged. Pass id or url (or latest=true with the search params to open the first current result) for one listing with the full description, all attributes, photos and, for dealers, the dealer. Private sellers' details are never returned.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
q | string | Keywords. |
make | string | Make, e.g. Toyota. Example: Toyota |
model | string | Model, e.g. Corolla (with make). |
region | auckland | bay-of-plenty | canterbury | gisborne | hawkes-bay | manawatu-whanganui | marlborough | nelson-tasman | northland | otago | southland | taranaki | waikato | wellington | west-coast | Region name or id. |
condition | string | new, used, classic, exdemo or certifiedpreowned. |
body_style | string | Convertible, Coupe, Hatchback, Sedan, StationWagon, Suv, Ute, Van or People Mover. |
fuel_type | string | Petrol, Diesel, Hybrid, Plug-in hybrid, Electric or LPG. |
transmission | manual | automatic | Transmission. |
seller | private | dealer | Seller type. |
year_min | string | Earliest year. |
year_max | string | Latest year. |
price_min | string | Minimum price (NZD). |
price_max | string | Maximum price (NZD). |
odometer_min | string | Minimum odometer (km). |
odometer_max | string | Maximum odometer (km). |
engine_size_min | string | Minimum engine size (cc). |
engine_size_max | string | Maximum engine size (cc). |
seats_min | string | Minimum seats. |
seats_max | string | Maximum seats. |
sort | featured | price_asc | price_desc | oldest | newest_vehicle | lowest_km | highest_km | latest | closing_soon | Sort order (default featured). |
limit | string | Results per page (1-50, default 25). |
page | string | Page number (default 1); next_page is null on the last page. |
id | string | Trade Me listing id (one listing). |
url | string | Trade Me listing url (one listing). |
latest | string | true: open the first current result of a search made with these params instead of an id. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/trademe/v1/motors" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/trademe/v1/motors",
params={},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/trademe/v1/motors");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).