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
| Endpoint | What it returns |
|---|---|
GET /api/properties?ids=a,b | All live offers, or exactly the requested ids in order — includes an offerId→owner-profile map. |
GET /api/search | Filtered + 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/stats | Marketplace aggregates — listings, cities, regions, medians. |
GET /api/trends?city=makati | Monthly 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.