askill
singapore-property-search

singapore-property-searchSafety 95Repository

Search Singapore properties on 99.co and PropertyGuru. Use when the user asks to find condos, HDBs, or landed properties for rent or sale in Singapore, filter by MRT, district, price, or size.

0 stars
1.2k downloads
Updated 1/17/2026

Package Files

Loading files...
SKILL.md

Singapore Property Search

Search properties in Singapore using both 99.co and PropertyGuru APIs.

Rules

  1. Always include property URLs - Full links for each listing
  2. Show source - Label listings as 99.co or PropertyGuru
  3. Key details - Price, bedrooms, size, walking distance to MRT
  4. Summarize first - Count from each source before listing results

Quick Start

cd ~/.factory/skills/singapore-property-search/scripts && bun run search.ts

Edit search parameters at the bottom of scripts/search.ts.

Prerequisites

Run scripts/install-prerequisites.sh or install manually:

  • Bun: brew install oven-sh/bun/bun
  • agent-browser (fallback): npx add-skill agent-browser

Search Parameters

{
  listingType: "rent" | "sale",
  propertyType: "condo" | "hdb" | "landed" | "all",
  queryType: "subway_station" | "zone" | "district" | "none",  // 99.co
  queryId: "sg-mrt-orchard",      // 99.co location ID
  freetext: "orchard",            // PropertyGuru location
  minPrice: 3000,
  maxPrice: 5000,
  minBedrooms: 2,
  maxWalkMins: 5,                 // Client-side filter
}

Location ID Patterns (99.co)

TypeFormatExample
MRTsg-mrt-{name}sg-mrt-orchard, sg-mrt-bukit-panjang
Zonezo{area}zobukit_panjang, zoang_mo_kio
Districtdtdistrict{num}dtdistrict09, dtdistrict10

For PropertyGuru, use natural names in freetext: "orchard", "bukit panjang"

API Summary

99.coPropertyGuru
BypassAccept: application/jsonMobile User-Agent
Endpoint/api/v10/web/search/listingsHTML with __NEXT_DATA__
Locationquery_type + query_idsfreetext param
Agent PhoneYesDetail page only

Discover Location IDs

// 99.co autocomplete
const res = await fetch(
  "https://www.99.co/api/v2/web/autocomplete/location?" +
  new URLSearchParams({
    input: "bukit panjang",
    listing_type: "rent",
    property_segments: "residential",
    include_mrts: "true",
  }),
  { headers: { Accept: "application/json" } }
);

Fallback: Browser Navigation

If direct fetch fails due to Cloudflare changes, use agent-browser:

agent-browser --session 99co open "https://www.99.co/singapore/rent"
agent-browser --session 99co eval "
  const res = await fetch('/api/v10/web/search/listings?listing_type=rent&property_segments=residential');
  return await res.json();
"

See references/ folder for detailed browser navigation guides:

  • agent-browser.md - Command reference
  • 99co-browser.md - 99.co navigation
  • propertyguru-browser.md - PropertyGuru navigation

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

78/100Analyzed 2/20/2026

Well-structured technical skill for searching Singapore properties with comprehensive API documentation, TypeScript examples, and fallback browser navigation. Includes clear trigger section (R3), structured commands (R5), and high-density reference content (R11). Slight penalty for misaligned tags and specificity to Singapore market limits reusability. Missing error handling details reduces completeness slightly.

95
85
60
70
80

Metadata

Licenseunknown
Version-
Updated1/17/2026
Publisheryemyat

Tags

apici-cd