LTA DataMall Bus Arrival
Real-time bus arrival estimates for any bus stop in Singapore, including load, deck type and wheelchair accessibility for the next three buses per service. The most-used SG transport API.
How to authenticate
5 stops to a working call
- 1Go to datamall.lta.gov.sg and click Request for API Access.
- 2Fill in the registration form with your email; approval is automated.
- 3Receive your AccountKey by email (usually within minutes).
- 4Send it on every request as the AccountKey header.
- 5Read the API User Guide PDF (linked on the DataMall site) for all endpoint paths.
Example request
curl -H 'AccountKey: YOUR_ACCOUNT_KEY' -H 'accept: application/json' 'https://datamall2.mytransport.sg/ltaodataservice/v3/BusArrival?BusStopCode=83139'Example response
{"odata.metadata":"...","BusStopCode":"83139","Services":[{"ServiceNo":"15","NextBus":{"EstimatedArrival":"2026-07-05T16:35:00+08:00","Load":"SEA"}}]}How to get access (free)
Go to Request for API Access on LTA DataMall and fill in the form. DataMall says dynamic datasets are served through APIs with an Account Key issued to registered subscribers, and it offers instant access. Use is under the Singapore Open Data Licence and DataMall's API Terms of Service. We found no fee on the official site.
v3 BusArrival request
curl -H 'AccountKey: YOUR_ACCOUNT_KEY' -H 'accept: application/json' \
'https://datamall2.mytransport.sg/ltaodataservice/v3/BusArrival?BusStopCode=83139'BusStopCode: required, 5 digits.ServiceNo: optional, returns one service only.
Response shape, per the API User Guide:
{"odata.metadata":"...","BusStopCode":"83139",
"Services":[{"ServiceNo":"15","Operator":"SBST",
"NextBus":{"OriginCode":"77009","DestinationCode":"77131",
"EstimatedArrival":"2026-...T14:46:27+08:00","Latitude":"...","Longitude":"...",
"VisitNumber":"1","Load":"SEA","Feature":"WAB","Type":"SD"},
"NextBus2":{...},"NextBus3":{...}}]}Load is SEA, SDA or LSD (seats, standing, limited standing). Type is SD, DD or BD (single, double, bendy). Feature WAB means wheelchair accessible. NextBus2 and NextBus3 can be empty late at night.
Error 404 and other problems
We called v3 BusArrival without an AccountKey on 2026-09-25. It returned HTTP 404 with the text The requested API was not found, not a 401. So a 404 usually means a missing or wrong AccountKey header. Check:
- The header name is exactly
AccountKey, sent as a header, not a query string. - The path is
/ltaodataservice/v3/BusArrival. Older paths such asBusArrivalv2come from earlier guides. - An empty
Servicesarray means no buses are in service at that stop right now.
LTA DataMall Bus Arrival: common questions
Is the LTA DataMall Bus Arrival free?
Yes. Land Transport Authority (LTA) offers the LTA DataMall Bus Arrival free of charge.
Does the LTA DataMall Bus Arrival need an API key?
Yes. It uses API key. Go to datamall.lta.gov.sg and click Request for API Access. Fill in the registration form with your email; approval is automated. Receive your AccountKey by email (usually within minutes). Send it on every request as the AccountKey header. Read the API User Guide PDF (linked on the DataMall site) for all endpoint paths.
What is the LTA DataMall Bus Arrival endpoint?
The base URL is https://datamall2.mytransport.sg/ltaodataservice/v3/BusArrival. A working example: curl -H 'AccountKey: YOUR_ACCOUNT_KEY' -H 'accept: application/json' 'https://datamall2.mytransport.sg/ltaodataservice/v3/BusArrival?BusStopCode=83139'
Is the LTA bus arrival API free?
Yes. LTA DataMall issues an AccountKey after you register, and we found no fee on the official site.
How do I get access to the LTA bus arrival API?
Submit the Request for API Access form on datamall.lta.gov.sg. The AccountKey is emailed to you.
Why does the bus arrival API return error 404?
Our test with no AccountKey returned 404 'The requested API was not found'. Send the AccountKey header and use the /ltaodataservice/v3/BusArrival path.
What is the v3 BusArrival endpoint?
GET https://datamall2.mytransport.sg/ltaodataservice/v3/BusArrival?BusStopCode=83139 with header AccountKey.
What does EstimatedArrival contain?
An ISO 8601 time with the +08:00 Singapore offset for each of NextBus, NextBus2 and NextBus3.
Verified 2026-09-25 against datamall.lta.gov.sg, datamall.lta.gov.sg
Notes for AI agents
Missing or wrong AccountKey returns a 404 or an HTML error page, not a 401; if you get 404 check the header first. v3 is current; older /BusArrivalv2 paths are deprecated.
Machine-readable version: /api/apis/lta-datamall-bus-arrival
On the same line
HDB Carpark Availability
HDB via data.gov.sg
Live lot availability for HDB carparks across Singapore, updated every minute. Each carpark reports total lots and available lots per lot type (car, motorcycle, heavy vehicle).
LTA DataMall Traffic Incidents
Land Transport Authority (LTA)
Current road incidents (accidents, roadworks, vehicle breakdowns, heavy traffic) with type, coordinates and a human-readable message. Companion endpoints cover travel times, traffic images and carpark lots.
LTA DataMall Train Service Alerts
Land Transport Authority (LTA)
Real-time MRT and LRT service status, including disruption details, affected segments and free shuttle information. Returns an all-clear status when trains run normally.
Taxi Availability (Live Positions)
LTA via data.gov.sg
GeoJSON MultiPoint of every available taxi in Singapore right now, refreshed about every 30 seconds. Thousands of coordinates in a single keyless call.