PropertyFinder APIpropertyfinder.ae ↗
Search UAE property listings, agents, and broker companies via the PropertyFinder API. Get prices, locations, amenities, ratings, and transaction history.
What is the PropertyFinder API?
The PropertyFinder UAE API gives you access to 7 endpoints covering property listings, agent profiles, and broker companies across the UAE. Use search_properties to filter by price, bedrooms, bathrooms, area, and category (buy or rent), returning paginated results with up to 25 listings per page including AED pricing, GPS-ready location data, agent contact details, and full amenity arrays. Location autocomplete, company search, and individual agent profiles round out the surface.
curl -X GET 'https://api.parse.bot/scraper/655aaf4d-c785-4a58-aa77-9fc5a41fc908/get_location_suggestions?query=Dubai+Marina' \ -H 'X-API-Key: $PARSE_API_KEY'
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 propertyfinder-ae-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: PropertyFinder UAE SDK — bounded, re-runnable; every call capped."""
from parse_apis.propertyfinder_uae_api import (
PropertyFinder, Category, Sort, AgentCategory, Query, ResourceNotFound
)
pf = PropertyFinder()
# Search for locations matching "Dubai Marina"
for loc in pf.locations.search(query=Query.DUBAI_MARINA, limit=5):
print(loc.name, loc.id, loc.parent_name)
# Search for luxury apartments for sale, sorted by price high to low
for prop in pf.properties.search(
category=Category.BUY,
location_id="50",
bedrooms="3",
sort=Sort.PRICE_HIGH,
limit=3,
):
print(prop.title, prop.price.value, prop.price.currency)
print(prop.location.full_name, prop.size.value, prop.size.unit)
print(prop.agent.name, prop.agent.is_super_agent)
# Search for sale agents and drill into one profile
agent = pf.agents.search(category_id=AgentCategory.SALE, limit=1).first()
if agent:
print(agent.name, agent.total_properties, agent.average_rating)
print(agent.broker.name)
# Get a specific agent's full profile with typed-error handling
try:
detail = pf.agents.get(slug="ryan-morgan-198365")
print(detail.name, detail.phone, detail.superagent)
except ResourceNotFound as exc:
print(f"Agent not found: {exc.slug}")
# Search for broker companies
for company in pf.companies.search(query="Elite", limit=3):
print(company.name, company.total_properties, company.total_agents)
# Get a specific company's full profile
company_detail = pf.companies.get(slug="elite-property-brokerage-4428")
print(company_detail.name, company_detail.address, company_detail.license_number)
print("exercised: locations.search / properties.search / agents.search / agents.get / companies.search / companies.get")
Autocomplete suggestions for locations (cities, communities, buildings). Returns location IDs and names for use as filters in search_properties. Each result includes the location's parent hierarchy.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Location search query (e.g., 'Dubai Marina', 'Downtown', 'Palm Jumeirah') |
{
"type": "object",
"fields": {
"items": "array of location objects with id, name (n), path (p), and parent name (p_n)"
},
"sample": {
"data": {
"items": [
{
"a": "",
"n": "Dubai Marina",
"p": "1.50",
"id": "50",
"p_n": "Dubai",
"i_c_v": true,
"i_t_v": false
}
]
},
"status": "success"
}
}About the PropertyFinder API
Property Search and Listing Data
The search_properties endpoint accepts filters for category (buy or rent), bedrooms, bathrooms, min_area/max_area in sqft, and max_price in AED. Results are paginated at 25 items per page and include a pagination object with total_count, total_pages, and current_page. Each property object carries id, title, price, location, agent, broker, images, size, description, and amenities. The sort parameter accepts mr (most recent), pl (price low to high), or ph (price high to low). For location-targeted searches, call get_location_suggestions first — it returns id, name, path, and parent info for cities, communities, and buildings — and pass the resulting location ID into your search query.
Agent and Broker Profiles
search_agents returns agent profiles including phone, email, superagent status, star ratings, transaction history, and associated broker details, with support for filtering by category_id (1 for sale, 2 for rent) and a free-text query parameter. get_agent_details expands a single agent record using the name-id slug format (constructed from the slug and id fields in search results) and adds areasOfExpertise, claimedTransactionsList, averageRating, and totalProperties.
Broker Company Data
search_companies lets you query broker companies by name, returning a brokers array with fields for id, name, urlSlug, phone, email, totalProperties, totalAgents, address, and licenseNumber. Pass the urlSlug from those results into get_company_details to retrieve the full company profile including description, logo, awards, and an associated listings array of active property records for that company.
Known Limitations
The get_property_details endpoint retrieves data for a single listing by slug_url, but this route is subject to AWS WAF protection and may return a blocked status. For reliable single-property data, the search_properties endpoint returns the same core fields and is the recommended path for production use.
The PropertyFinder API is a managed, monitored endpoint for propertyfinder.ae — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when propertyfinder.ae 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 propertyfinder.ae 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?+
- Aggregate buy and rent listings across UAE communities with price, size, and amenity data for a property search portal.
- Build an agent comparison tool using ratings, transaction counts, and areas of expertise from get_agent_details.
- Monitor AED price trends across bedroom categories in specific Dubai locations using search_properties with location IDs.
- Enrich a CRM with broker company profiles including license numbers, agent counts, and contact info from search_companies.
- Power a location autocomplete field in a UAE property app using get_location_suggestions.
- Identify top-performing brokerages by total listed properties using get_company_details and its associated listings array.
- Filter available rental inventory by bathroom count and area range for a relocation service targeting specific neighborhoods.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.