Overview
This API reads publicly rendered OpenRent pages and returns them in a stable JSON envelope. Search cards use kebab-case keys (property-title, price-pcm, details-url). Detail payloads use camelCase. We do not invent listings. OpenRent is lettings-only — there is no sale channel.
Resolve a place first/openrent/properties/auto-complete?query=oxford → location-id oxford.
Then search or open a listing
Pass that id into search-rent, or pass a listing id into /openrent/properties/details.
Typical flow
1. Autocomplete → 2. Search rent → 3. Details by listing id.
GET /openrent/properties/auto-complete?query=oxford GET /openrent/properties/search-rent?locationId=oxford&page=1&limit=20 GET /openrent/properties/details?id=3000876
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. /openrent and /openrent/v1/health are public.
Endpoints
Base URL https://api.ukrealestatedata.com. Same paths on RapidAPI once the Hub listing points at this origin. Prefix every endpoint with /openrent.
| Method | Path | Purpose |
|---|---|---|
| GET | /openrent/properties/auto-complete | Place suggestions. Read data[].location-id. |
| GET | /openrent/properties/search-rent | Live to-rent listings. |
| GET | /openrent/properties/details | Full listing. Query id from search. |
| GET | /openrent/v1/health | Liveness. No API key. |
curl -s "https://api.ukrealestatedata.com/openrent/properties/search-rent?locationId=oxford&limit=5&page=1" \ -H "X-API-Key: YOUR_ORIGIN_KEY"
Parameters
Search rent
| Name | In | Type | Description | |
|---|---|---|---|---|
locationId |
query | string | required | From auto-complete location-id. Example oxford. |
page |
query | integer ≥ 1 | optional | Result page. Default 1. Page 2 hits OpenRent with ?skip=20. |
limit |
query | integer 1–50 | optional | How many cards to return from that page. OpenRent serves 20 per page. Default 20. |
pricesMin · pricesMax |
query | string | optional | Monthly rent in pounds. Maps to OpenRent prices_min / prices_max. |
bedroomsMin · bedroomsMax |
query | string | optional | Bedroom range. |
furnishedType |
query | string | optional | furnished, unfurnished, or 0 / 1 / 2. |
propertyType |
query | string | optional | houses, flats, rooms. |
sort |
query | string | optional | distance (default), lowest-price, highest-price, new. |
acceptPets · includeBills · hasParking · hasGarden · acceptStudents |
query | boolean | optional | OpenRent checkbox filters. |
Details and autocomplete
| Name | Endpoint | Description | |
|---|---|---|---|
query |
auto-complete | required | Partial place name, e.g. Oxford. |
id |
/openrent/properties/details | required | From data.properties[].id. |
Response body
Every JSON body is { status, message, timestamp, data }. status is true on success.
| Field | Type | Meaning |
|---|---|---|
data.location-id | string | Resolved place, e.g. oxford. |
data.properties | array | Listing cards. Client path: data → properties → id. |
data.total-results | integer | Full result count for the search, not the page length. |
data.page · data.limit | integer | Echo of the request. |
data.page-size | integer | OpenRent page size, always 20. |
data.source-url | string | The openrent.co.uk URL that was fetched. |
Search card
| Field | Type | Meaning |
|---|---|---|
id | string | Listing id for /openrent/properties/details. |
property-title | string | e.g. 2 Bed Flat, High St, OX1. |
price · price-pcm · price-pw | string | As shown on the card. |
bedrooms · bathrooms | integer | When OpenRent supplies them. |
furnished | string | Furnished or Unfurnished. |
details-url | string | Absolute openrent.co.uk details link. |
Pagination
Pass page=2, page=3, … The origin fetches OpenRent with ?skip=20, ?skip=40, and so on (20 listings per page). limit only slices the current page.
GET /openrent/properties/search-rent?locationId=oxford&limit=5&page=1 GET /openrent/properties/search-rent?locationId=oxford&limit=5&page=2 GET /openrent/properties/search-rent?locationId=oxford&limit=5&page=3
Details
GET /openrent/properties/details?id=3000876 follows OpenRent’s short URL (openrent.co.uk/3000876 → the slug page). Keys are camelCase: displayAddress, pricePcm, description, location.lat, furnishing, images.
Examples
Autocomplete
query=oxford
{
"status": true,
"message": "Successful.",
"data": [
{
"location-id": "oxford",
"display-name": "Oxford, Oxfordshire",
"location-type": "city"
}
]
}
Search rent, page 1
locationId=oxford&limit=1
{
"status": true,
"message": "Successful.",
"data": {
"location-id": "oxford",
"page": 1,
"limit": 1,
"total-results": 154,
"page-size": 20,
"properties": [
{
"id": "3000876",
"property-title": "2 Bed Flat, High St, OX1",
"price": "£4,550",
"bedrooms": 2,
"details-url": "https://www.openrent.co.uk/property-to-rent/oxford/2-bed-flat-high-st-ox1/3000876"
}
]
}
}
Details
id=3000876 — data.id, data.displayAddress, data.pricePcm, data.location.
Errors
| HTTP | error | When |
|---|---|---|
| 400 | bad_request | Missing query, locationId, or listing id. |
| 401 | unauthorized | Missing or invalid API key. |
| 404 | not_found | Listing is not on OpenRent. |
| 502 | parse_error / upstream_error | Challenge page or OpenRent 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 OpenRent.