Property Finder listing search
Property listings on Property Finder (UAE) to buy or rent, residential or commercial, or new projects, with location, property type, price, bedrooms, bathrooms, area, furnishing, amenities, keywords, rent period, listed-within and verified filters and the site's sorts. Each listing: id, reference, title, type, price, currency and period, price per area, bedrooms, bathrooms, size, furnishing, completion status, location (with path and position), amenities, description, listed date, badges (verified, featured, exclusive, great value, price drop), photos, agent, agency, permit details and link. 25 per page; total is the site's count. Pass next_page back as page; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
category | buy | rent | commercial_buy | commercial_rent | new_projects | buy (default), rent, commercial_buy, commercial_rent or new_projects. Example: rent |
location_id | string | Location ids from /propertyfinder/v1/locations, comma-separated, e.g. 50 (Dubai Marina). Example: 50 |
property_type | apartment | villa | townhouse | penthouse | compound | duplex | full_floor | half_floor | whole_building | land | bulk_sale_unit | bungalow | hotel_apartment | bulk_rent_unit | office | shop | warehouse | retail | factory | labor_camp | show_room | staff_accommodation | business_centre | co_working_space | farm | Property type. |
price_min | integer | Minimum price (AED). |
price_max | integer | Maximum price (AED). |
bedrooms | string | Bedrooms, comma-separated 0-8 (0 = studio, 8 = more than 7), e.g. 1,2. |
bathrooms | string | Bathrooms, comma-separated 1-8 (8 = more than 7). |
area_min | integer | Minimum size (sqft). |
area_max | integer | Maximum size (sqft). |
furnished | any | furnished | unfurnished | partly | Furnishing (default any). |
amenities | string | Amenity codes, comma-separated: AC central A/C, MR maids room, BA balcony, SP shared pool, SS shared spa, SY shared gym, CS concierge, CP covered parking, VW view of water, BL view of landmark, PA pets allowed, ST study, PG private garden, PP private pool, PY private gym, PJ private jacuzzi, BW built-in wardrobes, WC walk-in closet, BK kitchen appliances, MS maid service, PR play area, CO children's pool, BR barbecue area. |
keywords | string | Keywords in the listing, e.g. sea view. |
rent_period | yearly | monthly | weekly | daily | Rent: price period. |
listed_within | 1d | 7d | 15d | 30d | 90d | Only listings added within this time. |
verified | true | false | true: only verified listings. |
sort | featured | newest | price_low | price_high | beds_least | beds_most | delivery_earliest | delivery_latest | featured (default), newest, price_low, price_high, beds_least, beds_most, delivery_earliest, delivery_latest. |
page | integer | Page, from 1. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/propertyfinder/v1/search?category=rent" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/propertyfinder/v1/search",
params={"category": "rent"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/propertyfinder/v1/search");
url.searchParams.set("category", "rent");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).