UkRealEstateData
UK live listings

OnTheMarket

Search live onthemarket.com sale, rent and new-home listings as JSON. Autocomplete a UK place, page through the result set, then load a property by id. Paths match the RapidAPI Onthemarket listings product.

GET · search-buy
GET /properties/search-buy
?locationId=oxford&limit=25&page=1

data.properties[0].id
20138220
2 bedroom property for sale
Harefields, Oxford OX2 · £102,500

Overview

This API reads publicly rendered OnTheMarket pages and returns them in a stable JSON envelope. Search cards keep OnTheMarket’s kebab-case keys (property-title, short-price, details-url). Detail payloads are the site’s native camelCase property object. We do not invent listings.

Resolve a place first
/properties/auto-complete?query=oxfordlocation-id oxford.

Then search or open a listing
Pass that id into search-buy / search-rent, or pass a listing id into /properties/details.

Typical flow

1. Autocomplete → 2. Search a channel → 3. Details by listing id. Agent lookup is the same pattern with a branch slug.

GET /properties/auto-complete?query=oxford
GET /properties/search-buy?locationId=oxford&page=1&limit=25
GET /properties/details?id=20138220
GET /agents/details?id=allen-and-harris-oxford-rose-hill

Authentication

On RapidAPI, send your RapidAPI application key. The origin key is injected by RapidAPI and is not required in client code.

X-RapidAPI-Key: YOUR_RAPIDAPI_KEY
X-RapidAPI-Host: YOUR_RAPIDAPI_HOST

Direct calls to this origin use X-API-Key with the provider secret. /OTM and /otm/health are public.

Endpoints

Base URL https://api.ukrealestatedata.com. Same paths on RapidAPI once the Hub listing points at this origin.

MethodPathPurpose
GET/properties/auto-completePlace suggestions. Read data[].location-id.
GET/properties/search-buyLive for-sale listings.
GET/properties/search-rentLive to-rent listings.
GET/properties/search-new-homesNew-build channel.
GET/properties/detailsFull listing. Query id from search.
GET/map/search-buy · /map/search-rent · /map/search-new-homesPin-shaped cards for map views.
GET/agents/auto-completeSame location resolver as properties.
GET/agents/searchBranches in a place. Read data.agents[].id.
GET/agents/detailsBranch page. Query id is the slug, e.g. acorn-london-bridge.
curl -s "https://api.ukrealestatedata.com/properties/search-buy?locationId=oxford&limit=5&page=1" \
  -H "X-API-Key: YOUR_ORIGIN_KEY"

Parameters

Search (buy, rent, new-homes, map)

NameInTypeDescription
locationId query string required From auto-complete location-id. Example oxford.
page query integer ≥ 1 optional Result page. Default 1. Page 2 hits OnTheMarket with ?page=2.
limit query integer 1–50 optional How many cards to return from that page. Default 25.
sort query string optional recommended (default), most-recent, highest-price, lowest-price.
priceRange query string optional Min and max, comma-separated. Example 200000,450000.
bedrooms query string optional Min and max, comma-separated. Example 2,4.
propertyType query string optional Comma-separated: detached, semi-detached, terraced, flats, bungalows, farms-land.
radius query string optional Miles from the location. Omit or 0 for the place only.
keywords query string optional Free-text filter, passed through to OnTheMarket.
addedToSite query string optional Recently added window, e.g. 24-hours, 3-days, 7-days.
onlyShow query string optional Comma-separated flags: new-home, retirement, auction, shared-ownership, pet-friendly, recently-reduced.
includeUnderOffer query boolean optional Sale searches. Include under-offer stock.
furnished · letLength · includeLetAgreed query rent Lettings-only filters.

Details and agents

NameEndpointDescription
query auto-complete required Partial place name, e.g. London Bridge.
id /properties/details required From data.properties[].id.
locationId /agents/search required Same location ids as property search. Alias: id.
id /agents/details required Branch slug from data.agents[].id or the path in details-url.

Response body

Every JSON body is { status, message, timestamp, data }. status is true on success.

FieldTypeMeaning
data.location-idstringResolved place, e.g. oxford.
data.location-namestringDisplay name from OnTheMarket.
data.propertiesarrayListing cards. Client path: data → properties → id.
data.total-resultsintegerFull result count for the search, not the page length.
data.page · data.limitintegerEcho of the request.
data.total-pagesintegerLast page OnTheMarket advertises.
data.source-urlstringThe onthemarket.com URL that was fetched.

Search card

FieldTypeMeaning
idstringListing id for /properties/details.
property-titlestringe.g. 2 bedroom property for sale.
address · price · short-pricestringAs shown on the card.
bedrooms · bathroomsintegerWhen OnTheMarket supplies them.
details-urlstringAbsolute onthemarket.com details link.
location.lat · location.lonnumberPin coordinates when present.
agent.idstringBranch slug, e.g. allen-and-harris-oxford-rose-hill.
cover-image · imagesobject / arrayDefault and webp URLs.

Pagination

Pass page=2, page=3, … The origin fetches ?page=N on OnTheMarket. limit only slices the current page; it does not change the upstream page size.

Featured cards can repeat
A short numeric id (for example 3142) may appear on more than one page. That is OnTheMarket’s spotlight row, not a stuck page parameter. Compare the longer listing ids — those move.

GET /properties/search-buy?locationId=oxford&limit=5&page=1
GET /properties/search-buy?locationId=oxford&limit=5&page=2
GET /properties/search-buy?locationId=oxford&limit=5&page=3

Details

GET /properties/details?id=20138220 returns the listing’s Redux property object. Keys are camelCase: displayAddress, humanisedPropertyType, priceRaw, agent, images, floorplans, similar properties. Search stayed kebab-case because that is how OnTheMarket’s list endpoint is shaped.

Agents

data.agents[].id is the branch slug taken from /agents/branch/{slug}/. Use that slug on /agents/details?id=. Do not send OnTheMarket’s internal numeric branch id.

Examples

Autocomplete

query=oxford

{
  "status": true,
  "message": "Successful.",
  "data": [
    {
      "location-id": "oxford",
      "display-name": "Oxford, Oxfordshire",
      "location-type": "city"
    }
  ]
}

Search buy, page 1

locationId=oxford&limit=2

{
  "status": true,
  "message": "Successful.",
  "data": {
    "location-id": "oxford",
    "page": 1,
    "limit": 2,
    "total-results": 904,
    "total-pages": 34,
    "properties": [
      {
        "id": "20138220",
        "property-title": "2 bedroom property for sale",
        "address": "Harefields, Oxford, Oxfordshire, OX2",
        "price": "£102,500",
        "bedrooms": 2,
        "details-url": "https://www.onthemarket.com/details/20138220/"
      }
    ]
  }
}

Details

id=20138220data.id, data.displayAddress, data.price, data.agent.

Errors

HTTPerrorWhen
400bad_requestMissing query, locationId, or listing id.
401unauthorizedMissing or invalid API key.
404not_foundListing or agent slug is not on OnTheMarket.
502parse_error / upstream_errorChallenge page or OnTheMarket error. Retry once; allow 90 seconds.
{
  "status": false,
  "message": "locationId is required",
  "error": "bad_request",
  "details": {}
}

Limits

Free RapidAPI BASIC is capped per month. This product is unofficial and is not affiliated with OnTheMarket or Strike.