upah.ph

FOR DEVELOPERS

Build on the catalogue

Upah.ph exposes a small read-mostly JSON API, machine feeds and an embeddable listing card. No key is needed — endpoints are rate-limited per IP and stay honest: aggregates are computed live, never cached into fiction.

OpenAPI description

The full machine-readable contract lives at /openapi.json (OpenAPI 3.0). It covers every public endpoint on this page.

Listings & search

EndpointWhat it returns
GET /api/properties?ids=a,bAll live offers, or exactly the requested ids in order — includes an offerId→owner-profile map.
GET /api/searchFiltered + sorted search: q, city, near, category, type, payment, price/beds/baths/sqm windows, developer, openHouse, reduced, floodSafe, ₱/m² bounds, amenity keys, sort, page/limit.
GET /api/suggest?q=Typeahead suggestions — cities, areas, developers and property types.

Sort orders: price:asc price:desc newest sqm:asc sqm:desc ppu:asc ppu:desc . Amenity feature keys:

pool parking garden gym security schools transport floodsafe mrt petfriendly furnished elevator balcony gated newbuilt ownerfinanced opentoday negotiable urgent

Market data

GET /api/statsMarketplace aggregates — listings, cities, regions, medians.
GET /api/trends?city=makatiMonthly median ₱/m² + price snapshots; per-city time series.
GET /api/estimate?city=&type=Median ₱/m² with inter-quartile band; honestly falls back to scope: "national" under n<3.
GET /api/agents / /api/agents/<id>Public owner directory and profile pages with response stats and reviews.

Feeds

/feed.xml is an Atom feed of the 50 newest live listings — also /feed.xml?city=<city> per city and /feed.xml?type=<type> per property type. /sitemap.xml lists every public route with image entries.

Embed a listing

Every listing has a compact iframe card — drop it into a blog post or partner page:

<iframe src="https://upah.ph/embed/<listing-id>" width="360" height="480" style="border:0;border-radius:12px" loading="lazy" title="Listing on Upah.ph"></iframe>

Embeds are read-only, carry no cookies and link back to the canonical listing page.

Fair use

Cache-friendly responses (stats/trends/estimate carry short public cache headers). Be reasonable — heavy scraping gets rate-limited. Questions or partner access: contact us.