Properstar APIproperstar.co.uk ↗
Search Properstar.co.uk listings via API. Get price, photos, bedrooms, bathrooms, size, coordinates, and broker data for properties in cities worldwide.
What is the Properstar API?
The Properstar.co.uk API exposes 4 endpoints covering international property listings for sale, including cities in Mexico, Spain, France, and beyond. search_homes returns paginated arrays of up to 1,000 listings per page with price, coordinates, bedroom and bathroom counts, and listing URLs. get_listing fetches full detail for a single property including multi-currency pricing, a complete photo gallery, area measurements, and advertiser contact information.
curl -X GET 'https://api.parse.bot/scraper/9800404f-6941-420d-99e7-6cb1a6d4cb67/search_homes?city=cancun&page=1&country=mexico' \ -H 'X-API-Key: $PARSE_API_KEY'
Search apartments and houses for sale in a specified country and city across Properstar's international listings (covering Spain, France, and other countries worldwide). Returns paginated results with property details including price, listing URL, pictures, bedroom/bathroom count, size in square feet, text location, latitude/longitude coordinates, full description text, and amenities. Each page returns up to 1000 listings. The upstream API limits total retrievable results to 2000 (effectively 2 pages of 1000 each). The Azure WAF JS challenge is solved automatically on each request, adding ~2 seconds latency. Amenities are fetched from individual listing detail pages for up to 25 listings per request; remaining listings may have amenities as null. Transient upstream 502 errors and WAF blocks are retried before surfacing a failure. Returns stale_input when the requested page is beyond the retrievable window.
| Param | Type | Description |
|---|---|---|
| cityrequired | string | City slug for the search URL (e.g. 'cancun', 'playa-del-carmen', 'barcelona'). Use lowercase with hyphens for multi-word cities. |
| page | integer | Page number for pagination (1-based). Each page returns up to 1000 listings. The API caps total retrievable results at 2000, so only pages 1 and 2 return data for most searches. |
| country | string | Country slug for the search URL (e.g. 'mexico', 'spain', 'france'). Use lowercase with hyphens. |
{
"type": "object",
"fields": {
"page": "Current page number",
"listings": "Array of property listings with id, url, title, price, location, latitude, longitude, bedrooms, bathrooms, size_sqft, property_type, advertiser, pictures, description, and amenities (array of amenity name strings, e.g. ['Swimming pool', 'Garden'], or null if detail page was not fetched)",
"page_size": "Number of listings returned on this page (up to 1000)",
"total_results": "Total number of matching listings across all pages"
},
"sample": {
"data": {
"page": 1,
"listings": [
{
"id": 119421149,
"url": "https://www.properstar.co.uk/listing/119421149",
"price": "GBP 410,924",
"title": "House for sale, Isla Blanca 201, 77504 Cancún, Q.R., Mexico (Cancún, Mexico)",
"bedrooms": 3,
"latitude": 21.137162,
"location": "Cancún, Isla Blanca 201, 77504 Cancún, Q.R., Mexico",
"pictures": [
"https://files-api.properstar.com/api/v2/files/ba59a512-139b-46b5-9454-68ee4f817740/1?mode=crop&width=512&height=384&format=jpeg"
],
"bathrooms": 4,
"longitude": -86.828409,
"size_sqft": 3509,
"highlights": "House • 3 bed. • 4 bath. • 3509 sq ft",
"property_type": "House"
}
],
"total_results": 9101
},
"status": "success"
}
}About the Properstar API
Endpoints and Response Data
search_homes accepts a required city slug (e.g. cancun, barcelona) and an optional country slug, returning a listings array alongside total_results and page_size. Each listing includes id, url, title, price, latitude, longitude, bedrooms, bathrooms, size_sqft, and property_type. Pagination is 1-based; each page holds up to 1,000 records and the API caps total retrievable results across pages.
search_homes_filtered extends the same search with optional numeric filters: min_price / max_price in GBP, min_bedrooms / max_bedrooms, and max_bathrooms. Omitting any filter places no restriction on that field. The response shape is identical to search_homes, making it straightforward to add filtering to an existing integration without restructuring downstream code.
get_listing takes a numeric id from search results and returns a richer object. The price field is an object containing a values array with per-currency entries (currencyId, value, optional perSquareMeter). The medias field includes a count and an ordered array of media items with type metadata. The area object reports living size in m² alongside the measurement unit. The location object includes geocodeLevel, postcode, showAddress, and showPostcode flags alongside coordinates.
get_brokers aggregates advertiser names across up to 2,000 listings for a given city and country, deduplicates them, and returns a sorted brokers array with a total_brokers count. This is useful for market-presence analysis or building broker directories for specific cities without manually paginating through search results.
The Properstar API is a managed, monitored endpoint for properstar.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when properstar.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official properstar.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a cross-border property search app filtered by price in GBP and bedroom count using
search_homes_filtered. - Aggregate geolocation data from
latitudeandlongitudefields to plot listings on an interactive map. - Track broker activity in a city over time using the
get_brokersdeduplicated advertiser list. - Compare per-square-meter prices across currencies for the same property using the
price.valuesarray fromget_listing. - Compile photo galleries for listing detail pages using the ordered
medias.itemsarray returned byget_listing. - Monitor total listing volume in specific cities by recording
total_resultsfromsearch_homeson a schedule. - Identify property type distribution (apartments vs. houses) in a city by aggregating
property_typeacross paginated search results.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Properstar have an official developer API?+
How does pagination work in search_homes, and what is the cap on retrievable results?+
search_homes and search_homes_filtered both return up to 1,000 listings per page. The total_results field tells you how many listings exist across all pages, but the API caps the total number of records that can be retrieved across all pages — so very large city markets may not return every listing. Use page to step through results starting from 1.Does get_listing return rental listings or only properties for sale?+
Are property listings available for all countries, or is coverage limited?+
country parameter accepts slugs for multiple markets including Mexico, Spain, and France. However, coverage depends on what Properstar indexes for each country and city. Sparse markets may return few or zero listings for a given city slug. There is no endpoint that enumerates all supported country or city slugs — you can fork the API on Parse and revise it to add a country/city discovery endpoint.Does the API return listing history, price change data, or sold prices?+
price field in both search and detail endpoints reflects the current asking price at retrieval time across available currencies. You can fork the API on Parse and revise it to add a price-tracking or history endpoint if your use case requires it.