zoopla.co.uk APIzoopla.co.uk ↗
Search Zoopla sale and rental listings, retrieve full property details, query sold house prices, and find estate agents via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/662dcd36-9d0e-48ea-b79b-6506677690b8/search_properties_for_sale?page=1&location=london' \ -H 'X-API-Key: $PARSE_API_KEY'
Search properties for sale in a specific location with various filters. Returns paginated results including featured and regular listings.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| radius | integer | Search radius in miles. |
| locationrequired | string | Location slug (e.g., 'london', 'manchester', 'se1'). |
| max_beds | integer | Maximum number of bedrooms. |
| min_beds | integer | Minimum number of bedrooms. |
| max_price | integer | Maximum price. |
| min_price | integer | Minimum price. |
| property_type | string | Property type slug (e.g., 'detached', 'flat', 'bungalow'). |
{
"type": "object",
"fields": {
"page": "integer",
"listings": "array of property listing objects with address, price, listingId, propertyType, title, etc.",
"location": "string",
"total_results": "integer or null"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"price": "£475,000",
"title": "2 bed flat for sale",
"address": "Foundry House, Limehouse E14",
"listingId": "72353414",
"listingType": "featured",
"publishedOn": "5th Feb 2026",
"propertyType": "flat",
"priceUnformatted": 475000
}
],
"location": "london",
"total_results": null
},
"status": "success"
}
}About the zoopla.co.uk API
This API exposes 5 endpoints covering Zoopla's UK property marketplace, including live sale and rental listings, sold house price history, and estate agent search. The search_properties_for_sale and search_properties_to_rent endpoints accept location slugs, bedroom counts, price ranges, and property type filters, returning paginated arrays of listings with address, price, listingId, and propertyType fields. Sold price data adds UPRN identifiers and full sale history per property.
Sale and Rental Search
Both search_properties_for_sale and search_properties_to_rent take a required location slug — such as london, manchester, or a postcode district like se1 — alongside optional filters: min_price, max_price, min_beds, max_beds, property_type (e.g. detached, flat, bungalow), and radius in miles. Results are paginated via the page parameter and return a total_results count alongside a listings array. Each listing object includes address, price, listingId, propertyType, and title. Rental prices are per calendar month (pcm).
Listing Details and Sold Prices
get_property_listing_details accepts a Zoopla listing_id string and returns fields including title, section, listingId, publishedOn, propertyType, and displayAddress. The endpoint checks for-sale inventory first, then falls back to rental if the listing is not found in the sale index.
search_sold_house_prices returns historical transaction data for a location. Each result in the results array includes a uprn (Unique Property Reference Number), lastSale details, address, and property attributes. Bedroom and bathroom range filters (min_beds, max_beds, min_baths, max_baths) and a property_type code are supported. Pagination uses cursor-based page_info objects with hasPreviousPage, hasNextPage, startCursor, and endCursor fields in addition to an integer total_results count.
Estate Agent Search
search_estate_agents takes a location slug and returns an agents array where each agent object carries name, displayAddress, contactNumber, logo, and listingsStatistics. The response also includes a total agent count and a pagination object with pageNumber and pageTotal.
- Build a property price alert tool that monitors new
search_properties_for_saleresults for a postcode and price range. - Aggregate sold house price data by location using
search_sold_house_pricesto produce neighbourhood valuation trends. - Populate a rental comparison dashboard with
search_properties_to_rentresults filtered by bedroom count and monthly budget. - Create a property detail page that pulls
publishedOn,propertyType, anddisplayAddressfromget_property_listing_details. - Build an estate agent directory for a specific city using the
name,contactNumber, andlistingsStatisticsfields fromsearch_estate_agents. - Research investment opportunities by cross-referencing live sale listings with sold price history for the same location slug.
- Track listing inventory counts across UK cities by comparing
total_resultsvalues from repeated sale and rental searches.
| 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 | 250 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 Zoopla have an official developer API?+
What does `search_sold_house_prices` return beyond the sale price?+
uprn (Unique Property Reference Number), lastSale details covering the transaction, a full address, and a property attributes object. Pagination is cursor-based via a page_info object, unlike the integer-only paging used by the listing search endpoints.How does `get_property_listing_details` handle rental versus sale listings?+
listing_id string and the endpoint checks the for-sale index first. If no match is found there, it checks the rental index and returns the result from whichever section the listing belongs to. The section field in the response identifies which type was matched.Does the API return floor plans, EPC ratings, or full photo galleries for listings?+
title, displayAddress, propertyType, publishedOn, and section. Floor plans, EPC certificates, and photo galleries are not included in the current response shape. You can fork this API on Parse and revise get_property_listing_details to add those fields if the source exposes them.Can I filter `search_sold_house_prices` by a specific date range?+
location, bedroom and bathroom counts, and property_type. You can fork this API on Parse and revise the endpoint to add date-based filtering.