Discover/Onthemarket API
live

Onthemarket APIonthemarket.com

Search for rental homes on OnTheMarket.com by location, price, bedrooms, property type, and keywords to find your next place to live. Filter results across thousands of available rentals to narrow down properties that match your specific needs and budget.

This API takes change requests — .
Endpoint health
monitored
search_rentals
Checks pendingself-healing
Endpoints
1
Updated
3h ago
This call costs3 credits / call— charged only on success
Try it
Page number for pagination (30 results per page).
Keyword filter for property descriptions (e.g. 'garden', 'air-conditioning', 'parking').
UK postcode (e.g. 'SW1A 1AA') or area/city name (e.g. 'london', 'manchester'). Resolved to a location slug via the OnTheMarket autocomplete API.
Maximum monthly rent in GBP (per calendar month).
Minimum monthly rent in GBP (per calendar month).
Maximum number of bedrooms.
Minimum number of bedrooms.
Filter by property type. When omitted, all property types are returned.
api.parse.bot/scraper/fcb9bd7d-a4e6-4105-80a4-ba97b8eab5cd/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/fcb9bd7d-a4e6-4105-80a4-ba97b8eab5cd/search_rentals?page=1&keywords=garden&location=SW1A+1AA&max_price=5000&min_price=1000&max_bedrooms=3&min_bedrooms=2&property_type=detached' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace onthemarket-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: OnTheMarket SDK — bounded, re-runnable; every call capped."""
from parse_apis.onthemarket_com_api import OnTheMarket, PropertyType, LocationNotFound

client = OnTheMarket()

# Search for flats to rent near a London postcode, filtered by price and bedrooms
for prop in client.rental_properties.search(
    location="SW1A 1AA",
    property_type=PropertyType.FLAT,
    min_bedrooms=2,
    max_price=5000,
    limit=3,
):
    print(prop.address, prop.price, prop.bedrooms, prop.property_type)

# Drill-down: take one result
result = client.rental_properties.search(
    location="manchester", keywords="garden", limit=1
).first()
if result:
    print(result.property_title, result.short_price, result.agent_name)

# Typed error handling
try:
    for p in client.rental_properties.search(location="ZZZZZ999", limit=1):
        print(p.address)
except LocationNotFound as e:
    print(f"Location not found: {e.location}")

print("exercised: rental_properties.search")
All endpoints · 1 totalmissing one? ·

Search rental properties by location with optional filters for price range (PCM), bedroom count, property type, and keywords. Returns paginated results with 30 properties per page, auto-iterated by the SDK. Results include address, price, bedrooms, bathrooms, features, agent details, and coordinates.

Input
ParamTypeDescription
pageintegerPage number for pagination (30 results per page).
keywordsstringKeyword filter for property descriptions (e.g. 'garden', 'air-conditioning', 'parking').
locationrequiredstringUK postcode (e.g. 'SW1A 1AA') or area/city name (e.g. 'london', 'manchester'). Resolved to a location slug via the OnTheMarket autocomplete API.
max_priceintegerMaximum monthly rent in GBP (per calendar month).
min_priceintegerMinimum monthly rent in GBP (per calendar month).
max_bedroomsintegerMaximum number of bedrooms.
min_bedroomsintegerMinimum number of bedrooms.
property_typestringFilter by property type. When omitted, all property types are returned.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "per_page": "number of results per page (always 30)",
    "properties": "array of rental property listings",
    "total_results": "total number of matching properties"
  },
  "sample": {
    "data": {
      "page": 1,
      "per_page": 30,
      "properties": [
        {
          "id": "15071921",
          "price": "£3,900 pcm (£900 pw)",
          "address": "Buckingham Gate, London, SW1E",
          "bedrooms": 2,
          "features": [
            "Nearest station 0.2mi.",
            "Furnished",
            "Nearest school 0.1mi."
          ],
          "latitude": 51.49891,
          "bathrooms": 2,
          "image_url": "https://media.onthemarket.com/properties/15071921/1628608525/image-0-480x320.webp",
          "longitude": -0.138518,
          "agent_name": "Chestertons - Westminster",
          "agent_phone": "020 8022 7380",
          "details_url": "https://www.onthemarket.com/details/15071921/",
          "short_price": "£3,900",
          "property_type": "Flat",
          "property_title": "2 bedroom flat to rent",
          "days_since_added": "Added > 14 days"
        }
      ],
      "total_results": 5
    },
    "status": "success"
  }
}

About the Onthemarket API

The Onthemarket API on Parse exposes 1 endpoint for the publicly available data on onthemarket.com. Calls return JSON over HTTPS and are billed per successful response.

Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.