Catalog / Zoopla

Zoopla API

zoopla.co.uk

Read-only live access to Zoopla public property listings, listing details, sold house prices, and estate-agent search results. Search routes accept Zoopla location slugs and preserve the source's page and filter parameters.

  • Real estate
  • zoopla
  • property
  • real-estate
  • uk
  • house-prices
  • estate-agents
5 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the Zoopla API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Search Properties For Sale

Optional parameters 8

Zoopla location slug, such as london or west-yorkshire/leeds.

One-based Zoopla result page.

Search radius in miles; 0 means the selected area only.

Maximum bedrooms.

Minimum bedrooms.

Maximum asking price in GBP.

Minimum asking price in GBP.

Zoopla property type slug, such as houses or flats.

View call pricing
cURL · Properties for sale
curl --request GET --get 'https://api.agent-data.dev/zoopla-co-uk/v1/properties/for-sale' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY"

Endpoints

Inputs and response fields for every endpoint in this API.

GETProperties for sale/v1/properties/for-sale

Search Properties For Sale

Input

locationOptionalQuery · string, default: london

Zoopla location slug, such as london or west-yorkshire/leeds.

Example: london

pageOptionalQuery · integer, min: 1, default: 1

One-based Zoopla result page.

Example: 1

radiusOptionalQuery · number, min: 0, max: 40 | null

Search radius in miles; 0 means the selected area only.

Example: 5

max_bedsOptionalQuery · integer, min: 0, max: 20 | null

Maximum bedrooms.

Example: 4

min_bedsOptionalQuery · integer, min: 0, max: 20 | null

Minimum bedrooms.

Example: 2

max_priceOptionalQuery · integer, min: 0 | null

Maximum asking price in GBP.

Example: 750000

min_priceOptionalQuery · integer, min: 0 | null

Minimum asking price in GBP.

Example: 250000

property_typeOptionalQuery · string | null

Zoopla property type slug, such as houses or flats.

Example: houses

Response

pageinteger
listingsobject[]
listings[].tags?string[]
listings[].price?string | null
listings[].summary?string | null
listings[].listedOn?string | null
listings[].agentName?string | null
listings[].amenities?string[]
listings[].detailUrlstring
listings[].listingIdstring
listings[].displayAddress?string | null
locationstring
totalResultsinteger

Fields marked ? are optional.

GETProperties to rent/v1/properties/to-rent

Search Properties To Rent

Input

locationOptionalQuery · string, default: london

Zoopla location slug, such as london or west-yorkshire/leeds.

Example: london

pageOptionalQuery · integer, min: 1, default: 1

One-based Zoopla result page.

Example: 1

radiusOptionalQuery · number, min: 0, max: 40 | null

Search radius in miles; 0 means the selected area only.

Example: 5

max_bedsOptionalQuery · integer, min: 0, max: 20 | null

Maximum bedrooms.

Example: 4

min_bedsOptionalQuery · integer, min: 0, max: 20 | null

Minimum bedrooms.

Example: 2

max_priceOptionalQuery · integer, min: 0 | null

Maximum rent in GBP for the source's default frequency.

Example: 3000

min_priceOptionalQuery · integer, min: 0 | null

Minimum rent in GBP for the source's default frequency.

Example: 1000

property_typeOptionalQuery · string | null

Zoopla property type slug, such as houses or flats.

Example: houses

Response

pageinteger
listingsobject[]
listings[].tags?string[]
listings[].price?string | null
listings[].summary?string | null
listings[].listedOn?string | null
listings[].agentName?string | null
listings[].amenities?string[]
listings[].detailUrlstring
listings[].listingIdstring
listings[].displayAddress?string | null
locationstring
totalResultsinteger

Fields marked ? are optional.

GETProperties by listing id/v1/properties/{listing_id}

Get Property Listing Details

Input

listing_idRequiredPath · string

Zoopla numeric property listing ID.

Example: 73745526

Response

titlestring
countsobject
counts.numBedrooms?integer | null
counts.numBathrooms?integer | null
counts.numLivingRooms?integer | null
sectionstring
branchV2object
ingestedobject
locationobject
listingIdstring | integer
adTargetingobject
propertyTypestring
displayAddressstring
metaDescriptionstring

Fields marked ? are optional.

GETHouse prices/v1/house-prices

Search Sold House Prices

Input

locationOptionalQuery · string, default: london

Zoopla location slug, such as london or west-yorkshire/leeds.

Example: london

pageOptionalQuery · integer, min: 1, default: 1

One-based Zoopla sold-price result page.

Example: 1

max_bedsOptionalQuery · integer, min: 0, max: 20 | null

Maximum bedrooms.

Example: 4

min_bedsOptionalQuery · integer, min: 0, max: 20 | null

Minimum bedrooms.

Example: 2

max_bathsOptionalQuery · integer, min: 0, max: 20 | null

Maximum bathrooms.

Example: 3

min_bathsOptionalQuery · integer, min: 0, max: 20 | null

Minimum bathrooms.

Example: 1

property_typeOptionalQuery · string | null

Zoopla sold-price type code (D detached, S semi-detached, T terraced, F flats) or matching label.

Example: D

Response

pageinteger
resultsobject[]
results[].datestring
results[].priceinteger
results[].address?string | null
results[].propertyType?string | null
locationstring
pageInfoobject
pageInfo.endCursorstring
pageInfo.hasNextPageboolean
pageInfo.startCursorstring
pageInfo.hasPreviousPageboolean
totalResultsinteger

Fields marked ? are optional.

GETEstate agents/v1/estate-agents

Search Estate Agents

Input

locationOptionalQuery · string, default: london

Zoopla location slug, such as london or west-yorkshire/leeds.

Example: london

pageOptionalQuery · integer, min: 1, default: 1

One-based Zoopla estate-agent result page.

Example: 1

Response

totalinteger
agentsobject[]
agents[].idinteger
agents[].logo?object | null
agents[].namestring
agents[].uriNamestring
agents[].featured?boolean | null
agents[].description?string | null
agents[].displayNamestring
agents[].contactNumber?string | null
agents[].displayAddressstring
agents[].listingsStatistics?object | null
locationstring
paginationobject
pagination.pageTotalinteger
pagination.pageNumberinteger

Fields marked ? are optional.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.