Search Gumtree UK ads
Gumtree UK classified ads for a keyword, category and location with distance, price, seller type, condition and sort, plus category filters (cars: year, mileage, make, model, fuel, transmission, body type; property: bedrooms and property type; any other filter the site offers through attributes). Each result has price, location, age, photo, photo count, seller type, delivery option, promotions and attributes (the ad's key/value details such as make, model, year, mileage, fuel, bedrooms, property type); applied shows the category, location and radius the site resolved, applied_filters every filter the site applied, and filters the filter groups the page offers (key, label, type, values with ad counts; range filters list their min_key/max_key for attributes). Featured ads come first, as on the site. Private sellers' names, phone numbers and email addresses are never returned (masked in ad text).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
q | string | Keywords. Example: bike |
category | string | Gumtree category slug (all, for-sale, bicycles, mobile-phones, cars, motorbikes-scooters, flats-houses, property-to-rent, home-garden, jobs). |
location | string | Town, city, area or postcode (default uk). Example: london |
distance | string | Radius in miles around the location. |
price_min | string | Minimum price (GBP). |
price_max | string | Maximum price (GBP). |
seller_type | private | trade | private or trade. |
condition | new | used | refurbished | for_parts | Item condition. |
min_year | integer | Cars: earliest registration year. |
max_year | integer | Cars: latest registration year. |
min_mileage | integer | Cars: minimum mileage (miles). |
max_mileage | integer | Cars: maximum mileage (miles). |
vehicle_make | string | Cars: make, e.g. bmw, ford, volkswagen (see the vehicle_make values in filters). |
vehicle_model | string | Cars: model as the site lists it, e.g. 3 SERIES (with vehicle_make; see filters). |
fuel_type | string | Cars: fuel type, e.g. petrol, diesel, electric, hybrid. |
transmission | string | Cars: automatic or manual. |
body_type | string | Cars: body type, e.g. hatchback, saloon, estate, convertible, coupe, mpv. |
min_beds | integer | Property: minimum bedrooms. |
max_beds | integer | Property: maximum bedrooms. |
property_type | string | Property: flat, house or other. |
attributes | string | Any other site filter as comma-separated key:value pairs using the keys in filters, e.g. vehicle_colour:black,min_vehicle_engine_size:999,pets_allowed:true. |
sort | relevance | newest | price_asc | price_desc | distance | Sort order. |
page | integer | Results page, 1 for the first. Pass back next_page; null on the last page. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/gumtree/v1/search?q=bike" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/gumtree/v1/search",
params={"q": "bike"},
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/gumtree/v1/search");
url.searchParams.set("q", "bike");
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).