"""Explore URA ArcGIS REST API endpoints discovered by auto-reverse.""" import json import requests BASE = "https://maps.ura.gov.sg/ArcGis/rest/services/lsag" def show(label: str, url: str, params: dict | None = None): print(f"\n{'='*60}") print(f" {label}") print(f" {url}") print(f"{'='*60}") r = requests.get(url, params=params or {}, timeout=15) print(f"Status: {r.status_code}") try: data = r.json() print(json.dumps(data, indent=2)[:3000]) except Exception: print(r.text[:1000]) # 1. URA Sale Sites — layer metadata show("URA Sale Sites — Layer Info", f"{BASE}/ura_sale_sites/MapServer/0") # 2. URA Sale Sites — query all features show( "URA Sale Sites — All Features", f"{BASE}/ura_sale_sites/MapServer/0/query", {"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"}, ) # 3. HDB Sale Sites — layer metadata show("HDB Sale Sites — Layer Info", f"{BASE}/hdb_sale_sites2/MapServer/0") # 4. HDB Sale Sites — query show( "HDB Sale Sites — All Features", f"{BASE}/hdb_sale_sites2/MapServer/0/query", {"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"}, ) # 5. JTC Sale Sites — layer metadata show("JTC Sale Sites — Layer Info", f"{BASE}/jtc_sale_sites/MapServer/0") # 6. JTC Sale Sites — query show( "JTC Sale Sites — All Features", f"{BASE}/jtc_sale_sites/MapServer/0/query", {"where": "1=1", "outFields": "*", "f": "json", "resultRecordCount": "5"}, )