Singapore Carpark Availability & Metadata (Live)
Pricing
from $0.0015 / carpark returned
Singapore Carpark Availability & Metadata (Live)
Live HDB carpark availability joined with carpark metadata: available/total lots, occupancy %, address, coordinates, parking type, free/night parking. Nearest-available search and stale-data flag. No key.
Pricing
from $0.0015 / carpark returned
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Share
Live parking availability for Singapore's ~2,000 HDB carparks โ available/total lots and occupancy % โ joined with the official carpark metadata (address, coordinates, parking type, free/night parking, decks, gantry height). Includes nearest-available search and a stale-data flag. Clean JSON, CSV or Excel. Built on Singapore's official open data, no key, no login.
Great for parking & mobility apps, delivery/fleet routing, and smart-city analytics โ run it on a schedule to build an occupancy history.

What you get
- ๐
ฟ๏ธ Live lots โ
availableLots,totalLots,occupancyPct, per-lot-type breakdown, and the carpark's ownupdateDatetime - ๐ Location โ address + WGS84
latitude/longitude(converted from SVY21) for mapping & routing - ๐ข Metadata โ car-park type, parking system, short-term/free/night parking, decks, gantry height, basement
- ๐ฏ Nearest-available โ pass a point + radius and get carparks sorted nearest-first, filtered by minimum free lots
- โฑ๏ธ Freshness โ
isStaleflags carparks whose reading lags the feed - ๐งพ Provenance โ stable
id,sourceUrl,collectedAt,feedTimestamp
Example input
Find carparks with 20+ free lots within 1km of a point:
{ "latitude": "1.3521", "longitude": "103.8198", "radiusKm": 1, "minAvailableLots": 20 }
Output

{"id": "sgcp-HE12","carParkNumber": "HE12","address": "BLK 201-210 HENDERSON CRESCENT","latitude": 1.2874,"longitude": 103.8199,"carParkType": "SURFACE CAR PARK","parkingSystem": "ELECTRONIC PARKING","freeParking": "SUN & PH FR 7AM-10.30PM","nightParking": true,"totalLots": 105,"availableLots": 30,"occupancyPct": 71.4,"lotDetails": [{ "lotType": "C", "total": 105, "available": 30 }],"updateDatetime": "2026-07-30T15:09:26","isStale": false,"sourceUrl": "https://data.gov.sg/datasets/d_ca933a644e55d34fe21f28b8052fac63/view","collectedAt": "2026-07-30T07:10:00.000Z"}
With a radius search each row also includes distanceKm.
Output schema
| Field | Type | Description |
|---|---|---|
id | string | Stable unique identifier for the carpark record. |
carParkNumber | string | Official HDB carpark number/code. |
address | string | Street address of the carpark. |
latitude | number | WGS84 latitude of the carpark. |
longitude | number | WGS84 longitude of the carpark. |
carParkType | string | Type of carpark (e.g. surface, multi-storey). |
parkingSystem | string | Parking system in use (e.g. electronic parking). |
shortTermParking | string | Short-term parking hours/policy. |
freeParking | boolean | Whether free parking is offered during certain hours. |
nightParking | boolean | Whether night parking is available. |
carParkDecks | integer | Number of parking decks. |
gantryHeight | number | Height clearance at the gantry, in metres. |
basement | string | Whether the carpark has basement parking. |
totalLots | integer | Total number of parking lots. |
availableLots | integer | Number of currently available lots. |
occupancyPct | integer | Percentage of lots currently occupied. |
lotDetails | array | Per-lot-type breakdown of total and available lots. |
updateDatetime | string (ISO date) | When the carpark last reported its availability. |
isStale | boolean | Whether the reading lags the live feed. |
feedTimestamp | string (ISO date) | Timestamp of the source availability feed. |
sourceUrl | string (URL) | Link to the source open dataset. |
collectedAt | string (ISO date) | When this Actor collected the record. |
distanceKm | number | Distance from the search point, in km (radius search only). |
Input fields
| Field | Description |
|---|---|
carParkNumbers | Specific carparks, or empty for all. |
latitude / longitude / radiusKm | Nearest-available search around a point. |
minAvailableLots | Only carparks with at least this many free lots. |
maxItems | Max carparks (0 = all). |
FAQ
How live is it?
The availability feed updates roughly each minute; each carpark also carries its own updateDatetime, and isStale flags laggy readings.
Where do coordinates come from? The metadata dataset stores SVY21 coordinates; the Actor converts them to WGS84 latitude/longitude so you can map and do radius search.
Can I build an occupancy history? Yes โ schedule the Actor and each run appends a timestamped snapshot.
How does billing work? A tiny per-run fetch charge plus pay per carpark returned.
Can I integrate this with other tools? The Singapore Carpark Availability Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Related Actors
- Singapore Hawker Centres & Closure Calendar
- Singapore Childcare & Preschool Directory
- OSM POI Scraper
Notes
Original clean-room implementation using Singapore's official HDB open data (data.gov.sg), reused under the Singapore Open Data Licence. Not affiliated with or endorsed by HDB or the Singapore Government.