Property Finder agent profile
One agent's public profile: name, position, nationality, languages, super-agent and verified flags, experience since, WhatsApp response time, listing counts (residential and commercial, rent and sale), bio, photo, agency, areas of expertise and the agent's listings (25 a page, every page, filterable by category; listings_total, listings_pages, next_page).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
id | string | Agent id (the number at the end of the agent's link), e.g. 275389. Example: 275389 |
url | string | A propertyfinder.ae/en/agent/<name>-<id> link. |
page | integer | Listings page (25 a page). Pass next_page back; null on the last page. Example: 2 Default: 1 |
category | buy | rent | commercial_buy | commercial_rent | Only listings of this category (default: all). |
sort | featured | newest | price_low | price_high | beds_least | beds_most | Listings order (default: the site's own, featured first). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/propertyfinder/v1/agent?id=275389" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/propertyfinder/v1/agent",
params={"id": "275389"},
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/agent");
url.searchParams.set("id", "275389");
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).