Introduction
..#######..##....##.########.##.....##....###....########. .##.....##.###...##.##.......###...###...##.##...##.....## .##.....##.####..##.##.......####.####..##...##..##.....## .##.....##.##.##.##.######...##.###.##.##.....##.########. .##.....##.##..####.##.......##.....##.#########.##....... .##.....##.##...###.##.......##.....##.##.....##.##....... ..#######..##....##.########.##.....##.##.....##.##.......
Welcome to the OneMap API documentation page. Our team is here to support you in the development of your geospatial applications!
Tap on OneMap’s extensive set of APIs and let your innovative juices flow. You can mash up your own data, search for addresses and do much more with our base maps!
Watch this space as we continue to improve our API services!
Notes
-
There is a maximum of 250 API calls per minute.
Should you wish to increase your limit, please contact us at:
onemap@sla.gov.sg -
Response field “LONGTITUDE” will be deprecated for “LONGITUDE”.
This will impact Search and Reverse-Geocoding.
Basemap
Our maps are currently available in EPSG:3857 Coordinate System, a Spherical Mercator projection widely adopted by most map service providers.
You can view the demo and sample codes at our map micro-site.
Authentication Service (POST)
This API authenticates the user credentials and the service returns response in JSON format.
/privateapi/auth/post/getToken
HTTPS Requests:
POST /privateapi/auth/post/getToken
Please note that token is not required for our Search and Coordinate Converters and Static Map services.
We have also provided a list of authentication modules for OneMap.
The parameters should be placed as JSON inside your POST request body.
Example Response:
{
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwNTM1NjAxLCJleHAiOjE0NjA1MzkyMDEsIm5iZiI6MTQ2MDUzNTYwMSwianRpIjoiZThjZGMxZmYxM2Y3MWVmZWU0MTQ1ZGEwNzVjYzE0Y2MifQ.gXhl_OUdufq0g_VJDrnY0kHJCU4aE8VoS3quWAqnV-w",
"expiry_timestamp":"1460794801"
}
Parameters
Variables | Description |
---|---|
email Required |
Registered email entered by the user during the registration. |
password Required |
Registered password entered by the user during the registration. |
HTML Example:
<!DOCTYPE html>
<html>
<body>
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<script>
var settings = {
"url" : "https://developers.onemap.sg/privateapi/auth/post/getToken",
"data" :
{
"email": "youremail@onemap.sg",
"password": "yourpassword"
},
"async" : "true"
}
$.post(settings).done(function (response) {
document.write(response);
});
</script>
</body>
</html>
NodeJS Example:
var request = require("request");
var options =
{
method: 'POST',
url: 'https://developers.onemap.sg/privateapi/auth/post/getToken',
headers:
{
'cache-control': 'no-cache, max-age=0',
'content-type': 'application/json'
},
json: { email: 'youremail@onemap.sg', password: 'yourpassword' }
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
OneMap REST APIs
Search
This API provides searching of address data for a given search value. It returns search results with both latitude, longitude
and x, y
coordinates of the searched location.
/commonapi/search
Usage:
/commonapi/search?searchVal={SearchText}&returnGeom={Y/N}&getAddrDetails={Y/N}&pageNum={PageNumber}
Examples:
With optional variables:
https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1
Parameters
Variables | Description |
---|---|
searchVal Required |
Keywords entered by user that is used to filter out the results. |
returnGeom {Y/N} Required |
Checks if user wants to return the geometry. |
getAddrDetails {Y/N} Required |
Checks if user wants to return address details for a point. |
pageNum Optional |
Specifies the page to retrieve your search results from. |
Sample Response(Only 2 Results):
{
"found":5,
"totalNumPages":1,
"pageNum":1,
"results":[
{
"SEARCHVAL":"INLAND REVENUE AUTHORITY OF SINGAPORE (IRAS)",
"BLK_NO":"55",
"ROAD_NAME":"NEWTON ROAD",
"BUILDING":"INLAND REVENUE AUTHORITY OF SINGAPORE (IRAS)",
"ADDRESS":"55 NEWTON ROAD, SINGAPORE 307987",
"POSTAL":"307987",
"X":"28983.7537272647",
"Y":"33554.4361084122",
"LATITUDE":"1.31972890510723",
"LONGITUDE":"103.842158118267",
"LONGTITUDE":"103.842158118267"
},
{
"SEARCHVAL":"REVENUE HOUSE",
"BLK_NO":"55",
"ROAD_NAME":"NEWTON ROAD",
"BUILDING":"REVENUE HOUSE",
"ADDRESS":"55 NEWTON ROAD, SINGAPORE 307987",
"POSTAL":"307987",
"X":"28977.8507137401",
"Y":"33547.5712691676",
"LATITUDE":"1.31966682211667",
"LONGITUDE":"103.842105076401",
"LONGTITUDE":"103.842105076401"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.2.min.js"></script>
<script>
function Cloud(){
$.ajax({
url: 'https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
Cloud();
</script>
</head>
</html>
Reverse Geocode (SVY21)
This API retrieves a building address that lies within the defined buffer/radius of the specified x, y
coordinates.
Road names are returned within 20m of the specified coordinates in JSON format.
/privateapi/commonsvc/revgeocodexy
Usage:
/privateapi/commonsvc/revgeocodexy?location={x,y}&token={token}&buffer={buffer}&addressType={addressType}
Parameters
Variables | Description |
---|---|
location {x, y} Required |
X,Y Coordinates in SVY21 format. |
token Required |
API token provided by the Authentication Service. |
buffer Optional |
Default: 10 Values: 0-500 (in meters) Rounds up all buildings in a circumference from a point like a compass; and searches building addresses within the buffer/radius range. |
addressType Optional |
Default: All Values: HDB, All Provide user the selection of All or HDB properties within the buffer/radius. If HDB is chosen, this will filter to show all HDB-related building. |
otherFeatures Optional |
Default:N Values: Y, N Enables users to retrieve information on reservoirs, playgrounds, jetties and many more. |
Examples:
With optional variables:
https://developers.onemap.sg/privateapi/commonsvc/revgeocodexy?location=24291.97788882387,31373.0117224489&token=0v9hsciobp1ifa5bgpkin21cs3&revgeocodexy?&buffer=100&addressType=all
Without optional variables:
https://developers.onemap.sg/privateapi/commonsvc/revgeocodexy?location=24291.97788882387,31373.0117224489&token=0v9hsciobp1ifa5bgpkin21cs3
Example Response (Buildings):
{
"GeocodeInfo":[
{
"BUILDINGNAME":"NEW TOWN PRIMARY SCHOOL",
"BLOCK":"300",
"ROAD":"TANGLIN HALT ROAD",
"POSTALCODE":"148812",
"XCOORD":"24303.327416",
"YCOORD":"31333.331116",
"LATITUDE":"1.2996418106402365",
"LONGITUDE":"103.80011086725216",
"LONGTITUDE":"103.80011086725216"
}
]
}
Example Response (Roads):
{
"GeocodeInfo":[
{
"ROAD":"STADIUM WALK",
"XCOORD":"32964.401642579214",
"YCOORD":"31636.744777400974",
"LATITUDE":"1.3023856",
"LONGITUDE":"103.8779260",
"LONGTITUDE":"103.8779260"
}
]
}
Example Response (Other Features):
{
"GeocodeInfo":[
{
"FEATURE_NAME":"KALLANG FIELDS",
"XCOORD":"33159.1597983748",
"YCOORD":"31783.4077108439",
"LATITUDE":"1.3037119357111573",
"LONGITUDE":"103.87967601502585",
"LONGTITUDE":"103.87967601502585"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function GeoXY(){
$.ajax({
url: 'https://developers.onemap.sg/privateapi/commonsvc/revgeocodexy?location=24291.97788882387,31373.0117224489&token=0v9hsciobp1ifa5bgpkin21cs3?revgeocodexy?&buffer=100&addressType=all',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
GeoXY();
</script>
</head>
</html>
Reverse Geocode (WGS84)
This API retrieves a building address that lies within the defined buffer/radius of the specified latitude, longitude
coordinates. Road names are retuned within 20m for the specified coordinates.
Road names are returned within 20m of the specified coordinates in JSON format.
/privateapi/commonsvc/revgeocode
Usage:
/privateapi/commonsvc/revgeocode?location={latitude,longitude}&token={token}&buffer={buffer}&addressType={addressType}
Parameters
Variables | Description |
---|---|
location {latitude, longitude} Required |
Latitude and longitude Coordinates in WGS84 format. |
token Required |
API token provided by the Authentication Service. |
buffer Optional |
Default: 10 Values: 0-500 (in meters) Like a compass, it will round up all buildings in a circumference from a point, and search building addresses within the buffer/radius range. |
addressType Optional |
Default: All Values: HDB, All Provides user the selection of All or HDB properties within the buffer/radius. If HDB is chosen, this will filter to show all HDB buildings. |
otherFeatures Optional |
Default:N Values: Y, N Enables users to retrieve information on reserviors, playgrounds, jetties and much more. |
Examples:
With optional variables:
https://developers.onemap.sg/privateapi/commonsvc/revgeocode?location=1.3,103.8&token=0v9hsciobp1ifa5bgpkin21cs3&buffer=100&addressType=all
Without optional variables:
https://developers.onemap.sg/privateapi/commonsvc/revgeocode?location=1.3,103.8&token=0v9hsciobp1ifa5bgpkin21cs3
Example Response (Buildings):
{
"GeocodeInfo":[
{
"BUILDINGNAME":"NEW TOWN PRIMARY SCHOOL",
"BLOCK":"300",
"ROAD":"TANGLIN HALT ROAD",
"POSTALCODE":"148812",
"XCOORD":"24303.327416",
"YCOORD":"31333.331116",
"LATITUDE":"1.2996418106402365",
"LONGITUDE":"103.80011086725216",
"LONGTITUDE":"103.80011086725216"
}
]
}
Example Response (Roads):
{
"GeocodeInfo":[
{
"ROAD":"STADIUM WALK",
"XCOORD":"32964.401642579214",
"YCOORD":"31636.744777400974",
"LATITUDE":"1.3023856",
"LONGITUDE":"103.8779260",
"LONGTITUDE":"103.8779260"
}
]
}
Example Response (Other Features):
{
"GeocodeInfo":[
{
"FEATURE_NAME":"KALLANG FIELDS",
"XCOORD":"33159.1597983748",
"YCOORD":"31783.4077108439",
"LATITUDE":"1.3037119357111573",
"LONGITUDE":"103.87967601502585",
"LONGTITUDE":"103.87967601502585"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function GeoLatLong(){
$.ajax({
url: 'https://developers.onemap.sg/privateapi/commonsvc/revgeocode?location=1.3,103.8&token=0v9hsciobp1ifa5bgpkin21cs3&buffer=100&addressType=all',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
GeoLatLong();
</script>
</head>
</html>
Coordinates Converters
This API provides 6 conversion functions between EPSG 3414 (SVY21), EPSG 3857 and EPSG 4326 (WGS84) formats.
4326(WGS84) to 3857
/commonapi/convert/4326to3857
Usage:
/commonapi/convert/4326to3857?latitude={latitude}&longitude={longitude}
Parameters
Variables | Description |
---|---|
latitude Required |
Latitude Coordinates in WGS84 format. |
longitude Required |
Longitude Coordinates in WGS84 format. |
Example:
https://developers.onemap.sg/commonapi/convert/4326to3857?latitude=1.319728905&longitude=103.8421581
Example Response:
{
"Y":146924.54200324757,
"X":11559656.16256661
}
4326(WGS84) to 3414(SVY21)
/commonapi/convert/4326to3414
Usage:
/commonapi/convert/4326to3414?latitude={latitude}&longitude={longitude}
Parameters
Variables | Description |
---|---|
latitude Required |
Latitude Coordinates in WGS84 format. |
longitude Required |
Longitude Coordinates in WGS84 format. |
Example:
https://developers.onemap.sg/commonapi/convert/4326to3414?latitude=1.319728905&longitude=103.8421581
Example Response:
{
"X":28983.788791079794,
"Y":33554.5098132845
}
3414(SVY21) to 3857
/commonapi/convert/3414to3857
Usage:
/commonapi/convert/3414to3857?X={X Coordinates}&Y={Y Coordinates}
Parameters
Variables | Description |
---|---|
X Required |
X Coordinates in SVY21 format. |
Y Required |
Y Coordinates in SVY21 format. |
Example:
https://developers.onemap.sg/commonapi/convert/3414to3857?X=28983.788791079794&Y=33554.5098132845
Example Response:
{
"Y":146924.61623592745,
"X":11559655.939078204
}
3414(SVY21) to 4326(WGS84)
/commonapi/convert/3414to4326
Usage:
/commonapi/convert/3414to4326?X={X Coordinates}&Y={Y Coordinates}
Parameters
Variables | Description |
---|---|
X Required |
X Coordinates in SVY21 format. |
Y Required |
Y Coordinates in SVY21 format. |
Example:
https://developers.onemap.sg/commonapi/convert/3414to4326?X=28983.788791079794&Y=33554.5098132845
Example Response:
{
"latitude":1.319729571666614,
"longitude":103.84215609236949
}
3857 to 3414(SVY21)
/commonapi/convert/3857to3414
Usage:
/commonapi/convert/3857to3414?X={X Coordinates}&Y={Y Coordinates}
Parameters
Variables | Description |
---|---|
X Required |
X Coordinates in SVY21 format. |
Y Required |
Y Coordinates in SVY21 format. |
Example:
https://developers.onemap.sg/commonapi/convert/3857to3414?Y=146924.54200324757&X=11559656.16256661
Example Response:
{
"X":28983.788791079794,
"Y":33554.50981328348
}
3857 to 4326(WGS84)
/commonapi/convert/3857to4326
Usage:
/commonapi/convert/3857to4326?X={X Coordinates}&Y={Y Coordinates}
Parameters
Variables | Description |
---|---|
X Required |
X Coordinates in SVY21 format. |
Y Required |
Y Coordinates in SVY21 format. |
Example:
https://developers.onemap.sg/commonapi/convert/3857to4326?Y=146924.54200324757&X=11559656.16256661
Example Response:
{
"latitude":1.319728904999991,
"longitude":103.8421581
}
Themes
The OneMap has a compilation of thematic information from various agencies. We hope to make it easier for users with a simple REST call!
Check Theme Status
/privateapi/themesvc/checkThemeStatus
Usage:
/privateapi/themesvc/checkThemeStatus?queryName={queryName}&dateTime={dateTime}&token={token}
Check the updatedness of themes.
Parameters
Variables | Description |
---|---|
queryName Required |
Queries status of a theme. Themes’ query names can be retrieved using Get All Themes Info service. |
dateTime Required |
The date and time. Format YYYY-MM-DDTHH:MM:SS:FFFZ .EG: 2015-02-10T16:00:00.000Z . |
token Required |
API token provided by the Authentication Service. |
Example:
https://developers.onemap.sg/privateapi/themesvc/checkThemeStatus?queryName=dengue_cluster&dateTime=2015-02-10T16:00:00.000Z&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU
Example Response:
{
"UpdatedFile":false
}
Get Theme Info
/privateapi/themesvc/getThemeInfo
Usage:
/privateapi/themesvc/getThemeInfo?token={token}&queryName={queryName}
Example:
https://developers.onemap.sg/privateapi/themesvc/getThemeInfo?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU&queryName=kindergartens
This API searches themes via the queryName
and returns the themes' info.
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
queryName Required |
Enables users to retrieve theme information. Themes' query names can be retrieved using Get All Themes Info service. |
Example Response:
{
"Theme_Names":[
{
"THEMENAME":"Kindergartens",
"QUERYNAME":"kindergartens"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function ThemeNamesByQuery(){
$.ajax({
url: 'https://developers.onemap.sg/privateapi/themesvc/getThemeInfo?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU&queryName=kindergartens',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
ThemeNamesByQuery();
</script>
</head>
</html>
Get All Themes Info
/privateapi/themesvc/getAllThemesInfo
This API retrieves and returns a list of all available themes.
Usage:
/privateapi/themesvc/getAllThemesInfo?token={token}&moreInfo={Y/N}
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
moreInfo Optional |
Default: N Values: Y, N Returns more information of themes such as icon names, category names, and theme owners if set as Y . |
Example:
With optional variables:
https://developers.onemap.sg/privateapi/themesvc/getAllThemesInfo?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU&moreInfo=Y
Without optional Variables:
https://developers.onemap.sg/privateapi/themesvc/getAllThemesInfo?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU
Example Response (Without optional variables; Snippet):
{
"Theme_Names":[
{
"THEMENAME":"PA Headquarters",
"QUERYNAME":"paheadquarters"
},
{
"THEMENAME":"After Death Facilities",
"QUERYNAME":"afterdeathfacilities"
},
{
"THEMENAME":"WaterActivities@SG",
"QUERYNAME":"aquaticsg"
},
{
"THEMENAME":"AXS Express Top Up",
"QUERYNAME":"axs_express_topup"
},
{
"THEMENAME":"Bloodbank locations",
"QUERYNAME":"blood_bank"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function Themes(){
$.ajax({
url: 'https://developers.onemap.sg/privateapi/themesvc/getAllThemesInfo?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
Themes();
</script>
</head>
</html>
Retrieve Theme
/privateapi/themesvc/retrieveTheme
Usage:
/privateapi/themesvc/retrieveTheme?queryName={Query Name}&token={token}&extents={Set Location}
This API searches and returns specified list of themes that are filtered out via a search term.
Examples:
With optional variables:
https://developers.onemap.sg/privateapi/themesvc/retrieveTheme?queryName=kindergartens&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU&extents=1.291789,%20103.7796402,1.3290461,%20103.8726032
Without optional variables:
https://developers.onemap.sg/privateapi/themesvc/retrieveTheme?queryName=kindergartens&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU
Parameters
Variables | Description |
---|---|
queryName Required |
Enables users to retrieve theme information. Themes' query names can be retrieved using Get All Themes Info service. |
token Required |
API token provided by the Authentication Service. |
extents Optional |
Location provided by user. |
Example Response (Snippet):
{
"SrchResults":[
{
"FeatCount":59,
"Theme_Name":"Kindergartens",
"Category":"Education",
"Owner":"MINISTRY OF EDUCATION",
"DateTime":{"date":"2017-03-08 23:00:04.254000","timezone_type":1,"timezone":"+00:00"}
},
{
"NAME":"JHS Montessori Kindergarten",
"DESCRIPTION":"Kindergartens",
"ADDRESSPOSTALCODE":"248373",
"ADDRESSSTREETNAME":"491B River Valley Road #02-01 Valley Point Tower",
"LatLng":"1.29307225899878,103.827075942185",
"ICON_NAME":"school.gif"
},
{
"NAME":"Kim Keat Christian Church Kindergarten",
"DESCRIPTION":"Kindergartens",
"ADDRESSPOSTALCODE":"339843",
"ADDRESSSTREETNAME":"11 Beng Wan Road",
"LatLng":"1.32441878302634,103.865899487598",
"ICON_NAME":"school.gif"
}
]
}
HTML Example:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function ThemeDetails(){
$.ajax({
url: 'https://developers.onemap.sg/privateapi/themesvc/retrieveTheme?queryName=kindergartens&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwOTYxNTI2LCJleHAiOjE0NjA5ODEzMjYsIm5iZiI6MTQ2MDk2MTUyNiwianRpIjoiMzI2ZjFmNzVmMmQxZGYxODJiNDNmNjgyNWIwMWFmYjEifQ.g7BidyQPfPbS5XzkixvJ6oAk360DsRu0Sym7h2APQhU&extents=1.291789,%20103.7796402,1.3290461,%20103.8726032',
success: function(result){
//Set result to a variable for writing
var TrueResult = JSON.stringify(result);
document.write(TrueResult);
}});
}
ThemeDetails();
</script>
</head>
</html>
Planning Area
These services provide data related to the planning area of Singapore.
Planning Area Polygons
This set of JSON response provides users with information of Singapore’s planning area.
/privateapi/popapi/getAllPlanningarea
Usage:
/privateapi/popapi/getAllPlanningarea?token={token}
Example:
https://developers.onemap.sg/privateapi/popapi/getAllPlanningarea?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExLCJ1c2VyX2lkIjoxMSwiZW1haWwiOiJrYWlrYWljb25nQGdtYWlsLmNvbSIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDY2NTYzNzAyLCJleHAiOjE0NjY5OTU3MDIsIm5iZiI6MTQ2NjU2MzcwMiwianRpIjoiMGU3NWE2YWRmZDk0YzRiNTk2ZGMyY2NhZjNmMGIzNzUifQ.aaCn4M-gNkreX4--gdLBfg3UWEGPjyIJwkme5mH5oEU
Sample Response:
[
{"pln_area_n":"SIMPANG","geojson":"{\"type\":\"MultiPolygon\",\"coordinates\":
[[[[103.859314255112,1.43905653845967],[103.859555997694,1.43861048633809],[103.859717162003,1.43854290137258],[103.859878325326,1.43831311606076],
[103.860079781027,1.43825904721717],[103.860348387871,1.43812387784192],
[103.86054984252,1.4379076095267],[103.860872171382,1.43773188868334],
[103.861181066913,1.43739396943393],[103.861323548112,1.43708314874515],[103.861335026738,1.43700621981347],[103.861503625812,1.43686109358725],[103.861705619734,1.4364533876568],[103.861879201218,1.43607173406952],[103.862223551115,1.4358574615477],[103.862448589649,1.4354774007516]...
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Optional |
This is the planning year that you are retrieving. Year Available: 1998,2008,2014 |
Names of Planning Area
This set of JSON response will retrieve the names of every planning area in Singapore.
/privateapi/popapi/getPlanningareaNames
Usage:
/privateapi/popapi/getPlanningareaNames?token={token}
Example:
https://developers.onemap.sg/privateapi/popapi/getPlanningareaNames?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NzE5MTUzODksImV4cCI6MTQ3MjM0NzM4OSwibmJmIjoxNDcxOTE1Mzg5LCJqdGkiOiI2ZDk5M2E2NDFiMDFiNWMzNDhkYWFhNDQyMTNjYmZiMiJ9.oPTmF2VJr9HHJ3lyrZ_cRqg-bGg0IU95UB8BPKKJ97g
Sample Response:
[
{"pln_area_n": "SIMPANG"},{"pln_area_n": "SOUTHERN ISLANDS"},{"pln_area_n": "SUNGEI KADUT"},{"pln_area_n": "TUAS"}...
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Optional |
This is the planning year that you are retrieving. Year Available: 1998,2008,2014 |
Planning Area Query
This set of JSON response will retrieve a single planning area based on your given latitude and longitude.
/privateapi/popapi/getPlanningarea
Usage:
/privateapi/popapi/getPlanningarea?token={token}&lat=1.3&lng=103.8
Example:
https://developers.onemap.sg/privateapi/popapi/getPlanningarea?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjczNjA0NjEsImV4cCI6MTQ2Nzc5MjQ2MSwibmJmIjoxNDY3MzYwNDYxLCJqdGkiOiJjNzkwZjBhYjQwOTcwNzFhMWE4MDQ1YTFjNjRlM2M5MSJ9.Pp6zos_p_jjiChWsi2F7O-k-yxgr173QlXqeGc-rpWw&lat=1.3&lng=103.8
Sample Response:
[
{"pln_area_n": "QUEENSTOWN","geojson": "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[103.802283981872,1.30724221295973],[103.802425275872,1.30723324251248],[103.802425416944,1.30723323166185],
[103.802458961548,1.3072307152304],[103.802652599571,1.30721836399803],[103.802696566049,1.3071728668585],[103.803189909937,1.30671929783162],[103.803283706296,1.30651729103507],
[103.803508863524,1.30558818387374],[103.803555843427,1.30411268276738],[103.803574359692,1.30396638663125],[103.803622995749,1.30354546967306],[103.803856417354,1.30254212053914],
[103.804124982262,1.30196506125208],[103.804803771942,1.3004823930227],[103.805123881249,1.30040789688888],[103.805105908234,1.3003555050315],[103.805889814255,1.30018357681829],
[103.805905135703,1.30023369868607],[103.805908743234,1.30024549978044],[103.806263580325,1.30017300071634],[103.806326784411,1.30013228961175],[103.806422855741,1.30006613274865],
[103.806498700633,1.30001778712831],[103.806579602452,1.29997707530201],[103.806680728717,1.2999363636879],[103.807065010095,1.29987020984425],[103.807156023758,1.2998651219351],
[103.807277375759,1.29987275694056],[103.807436648869,1.29989820379476],[103.807679787396,1.29995077882159],[103.807699168777,1.29988470975123],[103.807731733404,1.29974967305778]...
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
lat Required |
This represents the Latitude position of your point. |
lng Required |
This represents the Longitude position of your point. |
year Optional |
This is the planning year that you are retrieving. Year Available: 1998,2008,2014 |
Population Query
This API provides population datasets provided by the Department Of Statistics for analytical needs.
Economic Status Data
Users can retrieve data related to economic status of different planning area in Singapore.
/privateapi/popapi/getEconomicStatus
Usage:
/privateapi/popapi/getEconomicStatus?token={token}&planningArea={planningArea}&year={year}&gender={male/female}
Example:
https://developers.onemap.sg/privateapi/popapi/getEconomicStatus?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjExLCJ1c2VyX2lkIjoxMSwiZW1haWwiOiJrYWlrYWljb25nQGdtYWlsLmNvbSIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDY2NTYzNzAyLCJleHAiOjE0NjY5OTU3MDIsIm5iZiI6MTQ2NjU2MzcwMiwianRpIjoiMGU3NWE2YWRmZDk0YzRiNTk2ZGMyY2NhZjNmMGIzNzUifQ.aaCn4M-gNkreX4--gdLBfg3UWEGPjyIJwkme5mH5oEU&year=2010&planningArea=Bedok&gender=female
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
gender Optional |
Based on gender {male or female}. Returns all results by default. |
Example Response:
[
{
"planning_area":"Bedok",
"employed":64100,
"unemployed":2802,
"inactive":59608,
"year":2010,
"gender":"Female"
}
]
Education Status Data
Users can retrieve data related to educational status of different planning area in Singapore.
/privateapi/popapi/getEducationAttending
Usage:
/privateapi/popapi/getEducationAttending?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getEducationAttending?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjczNjA0NjEsImV4cCI6MTQ2Nzc5MjQ2MSwibmJmIjoxNDY3MzYwNDYxLCJqdGkiOiJjNzkwZjBhYjQwOTcwNzFhMWE4MDQ1YTFjNjRlM2M5MSJ9.Pp6zos_p_jjiChWsi2F7O-k-yxgr173QlXqeGc-rpWw&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"pre_primary":4103,
"primary":20171,
"secondary":15944,
"post_secondary":4364,
"polytechnic":6343,
"prof_qualification_diploma":1326,
"university":5550,
"year":2010
}
]
Ethnic Distribution Data
Users can retrieve data related to ethnic distribution of different planning area in Singapore.
/privateapi/popapi/getEthnicGroup
Usage:
/privateapi/popapi/getEthnicGroup?token={token}&planningArea={planningArea}&year={year}&gender={male/female}
Example:
https://developers.onemap.sg/privateapi/popapi/getEthnicGroup?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjczNjA0NjEsImV4cCI6MTQ2Nzc5MjQ2MSwibmJmIjoxNDY3MzYwNDYxLCJqdGkiOiJjNzkwZjBhYjQwOTcwNzFhMWE4MDQ1YTFjNjRlM2M5MSJ9.Pp6zos_p_jjiChWsi2F7O-k-yxgr173QlXqeGc-rpWw&planningArea=Bedok&year=2010&gender=male
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
gender Optional |
Based on gender {male or female}. Returns all results by default. |
Example Response:
[
{
"planning_area": "Bedok",
"chinese": 102310,
"malays": 23178,
"indian": 13028,
"others": 5884,
"year": 2010,
"gender": "Male"
}
]
Work Income For Household (Monthly)
Users can retrieve data related to monthly household work income of different planning area in Singapore.
/privateapi/popapi/getHouseholdMonthlyIncomeWork
Usage:
/privateapi/popapi/getHouseholdMonthlyIncomeWork?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getHouseholdMonthlyIncomeWork?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjczNjA0NjEsImV4cCI6MTQ2Nzc5MjQ2MSwibmJmIjoxNDY3MzYwNDYxLCJqdGkiOiJjNzkwZjBhYjQwOTcwNzFhMWE4MDQ1YTFjNjRlM2M5MSJ9.Pp6zos_p_jjiChWsi2F7O-k-yxgr173QlXqeGc-rpWw&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area": "Bedok",
"total": 0,
"no_working_person": 11143,
"below_sgd_1000": 3965,
"sgd_1000_to_1999": 7815,
"sgd_2000_to_2999": 8461,
"sgd_3000_to_3999": 8128,
"sgd_4000_to_4999": 6733,
"sgd_5000_to_5999": 6174,
"sgd_6000_to_6999": 5291,
"sgd_7000_to_7999": 4229,
"sgd_8000_to_8999": 3712,
"sgd_9000_to_9999": 2758,
"sgd_10000_over": 22815,
"year": 2010
}
]
Household Size Data
Users can retrieve data related to household size of different planning area in Singapore.
/privateapi/popapi/getHouseholdSize
Usage:
/privateapi/popapi/getHouseholdSize?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getHouseholdSize?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"person1":12598,
"person2":17613,
"person3":18412,
"person4":19446,
"person5":12730,
"person6":5989,
"person7":2682,
"person_more_8":1756,
"year":2010
}
]
Household Structure Data
Users can retrieve data related to household structure of different planning area in Singapore.
/privateapi/popapi/getHouseholdStructure
Usage:
/privateapi/popapi/getHouseholdStructure?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getHouseholdStructure?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"no_family_nucleus":17526,
"ofn_1_gen":11330,
"ofn_2_gen":50450,
"ofn_3_more_gen":5758,
"tfn_1to2_gen":1435,
"tfn_3_more_gen":4412,
"three_more_fam_nucleus":313,
"year":2010
}
]
Income from Work Data
Users can retrieve data related to income from work of different planning area in Singapore.
/privateapi/popapi/getIncomeFromWork
Usage:
/privateapi/popapi/getIncomeFromWork?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getIncomeFromWork?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"below_sgd_1000":18538,
"sgd_1000_to_1499":14931,
"sgd_1500_to_1999":15419,
"sgd_2000_to_2499":14218,
"sgd_2500_to_2999":11664,
"sgd_3000_to_3999":18523,
"sgd_4000_to_4999":12131,
"sgd_5000_to_5999":9322,
"sgd_6000_to_6999":6026,
"sgd_7000_to_7999":4335,
"sgd_8000_over":22561,
"year":2010
}
]
Industry of Population Data
Users can retrieve data related to industry of population of different planning area in Singapore.
/privateapi/popapi/getIndustry
Usage:
/privateapi/popapi/getIndustry?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getIndustry?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"manufacturing":16075,
"construction":6570,
"wholesale_retail_trade":25387,
"transportation_storage":15153,
"accommodation_food_services":9265,
"information_communications":7082,
"financial_insurance_services":12394,
"real_estate_services":3845,
"professional_services":10380,
"admin_support_services":7836,
"public_admin_education":18516,
"health_social_services":6052,
"arts_entertainment_recreation":2551,
"other_comm_social_personal":4846,
"others":1716,
"hotels_restaurants":0,
"transport_communications":0,
"business_services":0,
"other_services_industries":0,
"year":2010
}
]
Language Literacy Data
Users can retrieve data related to language literacy of different planning area in Singapore.
/privateapi/popapi/getLanguageLiterate
Usage:
/privateapi/popapi/getLanguageLiterate?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getLanguageLiterate?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"no_literate":10245,
"l1_chi":36837,
"l1_eng":31341,
"l1_mal":4960,
"l1_tam":545,
"l1_non_off":503,
"l2_eng_chi":95125,
"l2_eng_mal":38815,
"l2_eng_tam":4519,
"l2_other_two":1181,
"l3_eng_chi_mal":6862,
"l3_eng_mal_tam":867,
"l3_other_three":8283,
"year":2010,
"l2_eng_non_off":6937
}
]
Marital Status Data
Users can retrieve data related to marital status of different planning area in Singapore.
/privateapi/popapi/getMaritalStatus
Usage:
/privateapi/popapi/getMaritalStatus?token={token}&planningArea={planningArea}&year={year}&gender={male/female}
Example:
https://developers.onemap.sg/privateapi/popapi/getMaritalStatus?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010&gender=male
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
gender Optional |
Based on gender {male or female}. Returns all results by default. |
Example Response:
[
{
"planning_area":"Bedok",
"single":43753,
"married":71251,
"widowed":2204,
"divorced":3303,
"year":2010,
"gender":"Male"
}
]
Mode of Transports to School Data
Users can retrieve data related to mode of transports to School of different planning area in Singapore.
/privateapi/popapi/getModeOfTransportSchool
Usage:
/privateapi/popapi/getModeOfTransportSchool?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getModeOfTransportSchool?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"bus":16868,
"mrt":2085,
"mrt_bus":7934,
"mrt_car":235,
"mrt_other":60,
"taxi":148,
"car":8162,
"pvt_chartered_bus":6387,
"lorry_pickup":158,
"motorcycle_scooter":334,
"others":3354,
"no_transport_required":11696,
"year":2010
}
]
Mode of Transport to Work Data
Users can retrieve data related to mode of transport to work of different planning area in Singapore.
/privateapi/popapi/getModeOfTransportWork
Usage:
/privateapi/popapi/getModeOfTransportWork?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getModeOfTransportWork?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"bus":31472,
"mrt":11280,
"mrt_bus":25128,
"mrt_car":1052,
"mrt_other":916,
"taxi":2473,
"car":40895,
"pvt_chartered_bus":3879,
"lorry_pickup":2632,
"motorcycle_scooter":5954,
"others":9398,
"no_transport_required":10986,
"year":2010
}
]
Occupation Data
Users can retrieve data related to occupation of different planning area in Singapore.
/privateapi/popapi/getOccupation
Usage:
/privateapi/popapi/getOccupation?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getOccupation?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"senior_officials_managers":24211,
"professionals":21520,
"associate_professionals_tech":32095,
"clerical":18003,
"service_sales":18914,
"agricultural_fishery":41,
"production_craftsmen":7351,
"plant_machine_operators":10273,
"cleaners_labourers":10512,
"workers_not_classified":4747,
"year":2010
}
]
Age Data
Users can retrieve data related to age of different planning area in Singapore.
/privateapi/popapi/getPopulationAgeGroup
Usage:
/privateapi/popapi/getPopulationAgeGroup?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getPopulationAgeGroup?&planningArea=Bedok&year=2014&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsInVzZXJfaWQiOjMsImVtYWlsIjoicHVibGljQXBpUm9sZUBzbGEuZ292LnNnIiwiZm9yZXZlciI6ZmFsc2UsImlzcyI6Imh0dHA6XC9cLzEwLjAuMy4xMTo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDgwMjQzNTAyLCJleHAiOjE0ODA2NzU1MDIsIm5iZiI6MTQ4MDI0MzUwMiwianRpIjoiOWNhMTY2NDZlYWJiNTcyNTFkNjI1NjI3MGNjMjUzOGUifQ.B0gSImYp8onJ9cj0uvNtukdtwJKUIOxjbYUyIQzR4V8
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area": "Bedok",
"age_0_4": 12180,
"age_5_9": 14020,
"age_10_14": 15420,
"age_15_19": 17550,
"age_20_24": 20010,
"age_25_29": 20020,
"age_30_34": 20370,
"age_35_39": 21370,
"age_40_44": 22550,
"age_45_49": 22160,
"age_50_54": 23950,
"age_55_59": 23320,
"age_60_64": 20360,
"age_65_69": 15010,
"age_70_74": 9620,
"age_75_79": 6980,
"age_80_84": 4510,
"age_85_over": 3720,
"total": 293110,
"gender": "Total",
"year": 2014
}
]
Religion Data
Users can retrieve data related to religion of different planning area in Singapore.
/privateapi/popapi/getReligion
Usage:
/privateapi/popapi/getReligion?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getReligion?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"no_religion":39471,
"buddhism":74930,
"taoism":24932,
"islam":45965,
"hinduism":9628,
"sikhism":1095,
"catholic_christian":20150,
"other_christians":30011,
"other_religions":839,
"year":2010
}
]
Spoken Language Data
Users can retrieve data related to spoken language of different planning area in Singapore.
/privateapi/popapi/getSpokenAtHome
Usage:
/privateapi/popapi/getSpokenAtHome?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getSpokenAtHome?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"english":96675,
"mandarin":80351,
"chinese_dialects":37280,
"malay":38903,
"tamil":4953,
"other_indian_languages":3575,
"others":2372,
"year":2010
}
]
Tenancy Data
Users can retrieve data related to tenancy of different planning area in Singapore.
/privateapi/popapi/getTenancy
Usage:
/privateapi/popapi/getTenancy?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getTenancy?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"owner":78754,
"tenant":11087,
"others":1383,
"year":2010
}
]
Dwelling Type Household Data
Users can retrieve data related to dwelling type household of different planning area in Singapore.
/privateapi/popapi/getTypeOfDwellingHousehold
Usage:
/privateapi/popapi/getTypeOfDwellingHousehold?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getTypeOfDwellingHousehold?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjgsInVzZXJfaWQiOjgsImVtYWlsIjoiY2xvc2Vkc3VwZXJhcGl1c2VyQHNsYS5nb3Yuc2ciLCJmb3JldmVyIjpmYWxzZSwiaXNzIjoiaHR0cDpcL1wvMTAuMC4zLjExOjgwODBcL2FwaVwvdjJcL3VzZXJcL3Nlc3Npb24iLCJpYXQiOjE0NjgyMjM5MTMsImV4cCI6MTQ2ODY1NTkxMywibmJmIjoxNDY4MjIzOTEzLCJqdGkiOiIxZGQxOGVmMDE4NDI5ZWM5Yjg0YWJlZmIyMmY5NmY1NyJ9.h78EmjUEjgskFg_JvstZYz4XWuPtYH9Pr2WMXg0ofuQ&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"planning_area":"Bedok",
"hdb_1_2_room_flats":4233,
"hdb_3_room_flats":23792,
"hdb_4_room_flats":21673,
"hdb_5_room_executive_flats":14003,
"condominiums":15148,
"landed_properties":11765,
"others":611,
"year":2010,
"total_hdb":63701
}
]
Dwelling Type Population Data
Users can retrieve data related to dwelling type population of different planning area in Singapore.
/privateapi/popapi/getTypeOfDwellingPop
Usage:
/privateapi/popapi/getTypeOfDwellingPop?token={token}&planningArea={planningArea}&year={year}
Example:
https://developers.onemap.sg/privateapi/popapi/getTypeOfDwellingPop?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsInVzZXJfaWQiOjMsImVtYWlsIjoicHVibGljQXBpUm9sZUBzbGEuZ292LnNnIiwiZm9yZXZlciI6ZmFsc2UsImlzcyI6Imh0dHA6XC9cLzEwLjAuMy4xMTo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDgwMjQzNTAyLCJleHAiOjE0ODA2NzU1MDIsIm5iZiI6MTQ4MDI0MzUwMiwianRpIjoiOWNhMTY2NDZlYWJiNTcyNTFkNjI1NjI3MGNjMjUzOGUifQ.B0gSImYp8onJ9cj0uvNtukdtwJKUIOxjbYUyIQzR4V8&planningArea=Bedok&year=2010
Parameters
Variables | Description |
---|---|
token Required |
API token provided by the Authentication Service. |
year Required |
The year selection is in the format of YYYY. For instance, 2010. |
planningArea Required |
Retrieves data of specified planning area. The list of planning data names could be retrieved here, List of Planning Area Names. |
Example Response:
[
{
"id": "3",
"planning_area": "Bedok",
"year": 2011,
"hdb_1_2_room_flats": 7420,
"hdb_3_room_flats": 75680,
"hdb_4_room_flats": 56480,
"hdb_5_room_executive_flats": 23740,
"condominiums": 7580,
"landed_properties": 9300,
"others": 1400,
"total_hdb": 163300,
"total": 90800
}
]
Routing Service
Route
This service calculates the distance and returns the drawn path between the specified start
and end
values depending on the routeType
.
There are 4 routeType
available: walk
, drive
, cycle
and pt
(public transport). If the routeType
is set to pt
, more parameters will be available. This enables users to choose between 3 modes of transport. maxWalkDistance is the maximum walking distance. numItineraries may be used to limit the number of results returned.
/privateapi/routingsvc/route
Usage:
/privateapi/routingsvc/route?start={start}&end={end}&routeType={routeType}&token={token}
With pt routeType:
/privateapi/routingsvc/route?start={start}&end={end}&routeType={routeType}&token={token}&date={date}&time={time}&mode={mode}&maxWalkDistance={maxWalkDistance}&numItineraries={numItineraries}
Examples:
https://developers.onemap.sg/privateapi/routingsvc/route?start=1.319728,103.8421&end=1.319728905,103.8421581&routeType=walk&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsInVzZXJfaWQiOjUsImVtYWlsIjoiY2xvc2VkYXBpdXNlcjFAc2xhLmdvdi5zZyIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC9kZi5zbWFydGdlby5zZzo4MDgwXC9hcGlcL3YyXC91c2VyXC9zZXNzaW9uIiwiaWF0IjoxNDYwNTM1NjAxLCJleHAiOjE0NjA1MzkyMDEsIm5iZiI6MTQ2MDUzNTYwMSwianRpIjoiZThjZGMxZmYxM2Y3MWVmZWU0MTQ1ZGEwNzVjYzE0Y2MifQ.gXhl_OUdufq0g_VJDrnY0kHJCU4aE8VoS3quWAqnV-w
With pt routeType:
https://developers.onemap.sg/privateapi/routingsvc/route?start=1.320981,103.844150&end=1.326762,103.8559&routeType=pt&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjM0MywidXNlcl9pZCI6MzQzLCJlbWFpbCI6InZpdGFsYXBwQHF1YW50dW1pbnZlbnRpb25zLmNvbSIsImZvcmV2ZXIiOmZhbHNlLCJpc3MiOiJodHRwOlwvXC8xMC4wLjMuMTE6ODA4MFwvYXBpXC92MlwvdXNlclwvc2Vzc2lvbiIsImlhdCI6MTQ4NjYyMTExOCwiZXhwIjoxNDg3MDUzMTE4LCJuYmYiOjE0ODY2MjExMTgsImp0aSI6ImJiNWIyNDgxYjdjYTFmOTYzYzY0ZDU1YjhlNWRkMmJmIn0.Ft5Krzu2efx89FclE8zW8cFzgtJmqF0CLveAEcNV33I&date=01-26-2023&time=07:35:00&mode=TRANSIT&maxWalkDistance=1000&numItineraries=3
Parameters
Variables | Description |
---|---|
start Required |
The start point in lat,lng (WGS84) format. |
end Required |
The end point in lat,lng (WGS84) format. |
routeType Required |
Values: walk, drive, pt, cycle The different route types available. Route types must be in lowercase. |
token Required |
API token provided by the Authentication Service. |
More parameters are made available if routeType
is specified as pt
.
date Required |
The date of the selected start point in MM-DD-YYYY.EG: 01-26-2023 . |
time Required |
The time of the selected start point in [HH][MM][SS].The time uses the 24-hour clock system. [HH] refers to a zero-padded hour between 00 and 23. [MM] refers to a zero-padded minute between 00 and 59. [SS] refers to a zero-padded second between 00 and 59. EG: 15:30:00 . |
mode Required |
Values: TRANSIT, BUS, RAIL The mode of transportation. The mode specified must be in uppercase. |
maxWalkDistance Optional |
The maximum walking distance set by the user. |
numItineraries Optional |
Values: 1 to 3 Limits the number of return results. |
Example Response (drive routeType
; Snippet):
{
"status_message":"Found route between points",
"alternative_names":[
[
"COMMONWEALTH AVENUE WEST",
"NORTH BUONA VISTA ROAD"
]
],
"route_name":[
"CLEMENTI AVENUE 2",
"ULU PANDAN ROAD"
],
"route_geometry":"yr`oAm`k{dEksAstD~e@iW`e@{UxtAqr@pd@sVrOmItC}GZ}GJwDeSmWkm@gb@qKuEyCwE}AgHJiH\\kE{BaRoCoEsGcLiE{N{AmQvB{QbFkN|E}FzMcPtQmTh|A_iBfCcDzHcKpJaMr\\w_@t\\i`@hb@gg@lAkJRqJg@wJeCoMgQ{f@qHsTuC_FiMsT_S_ViVkPkfAyi@oXiNq{@q_@qn@cU{SsGgEqAiDeAcTsGcd@eMoF{AoBi@uGkB}d@uMwDoA_EsA{QiG_VyJaSkLkQuN}CgDqJkKqDsFqE_H}CuE}CyEsBsGcDeKuK}f@}FiJ_FaEkKiEgHcAe~@xMsr@`LqMrB_En@gAy`@kBkVwE{W_^gbAkHg[aFeQaRe^_Nea@iEwYJkYsAyj@KiRkGglAcDqn@KiUrDkc@nFkY`Lo]lIeQfJgOfcAyhAzJ}KtPsTjIuQxFaQrBcN|E{u@rDgh@hBuYjDy_@zHoUbI}O|PwSkDuBiP_K{]cTq_Ack@ixAe|@_L}G{LoHynBujAsh@iZiRqK}|@ig@xg@wo@v{@_gA~q@g}@fUgZp^{`@gDqLv`@oNfTwH~LcIl@gEy@{PqU_V_`@cuAvHwJt^_MvXgMxCaD",
"route_instructions":[
[
"10",
"PANDAN LOOP",
853,
0,
89,
"853m",
"NE",
65,
1,
"SW",
245
]
],
"alternative_summaries":[
{
"end_point":"REBECCA ROAD",
"start_point":"PANDAN LOOP",
"total_time":761,
"total_distance":8133
}
],
"via_points":[
[
1.311549,
103.749657
],
[
1.32036,
103.800156
]
],
"route_summary":{
"end_point":"REBECCA ROAD",
"start_point":"PANDAN LOOP",
"total_time":740,
"total_distance":7957
},
"found_alternative":true,
"status":200,
"via_indices":[
0,
140
],
"hint_data":{
"locations":[
"NzgBANtqAQBRBQAAAAAAAAQAAAAAAAAAuQIAAEOcAABoAAAAPQMUABcYLwYAAAEB",
"0OUAAF4zAQChAwAABAAAAAwAAABIAAAAdQAAACx9AABoAAAAqCUUAFndLwYCAAEB"
],
"checksum":585417468
},
"alternative_geometries":[
"yr`oAm`k{dEksAstD~e@iW`e@{UxtAqr@pd@sVrOmItC}GZ}GJwDeSmWkm@gb@qKuEyCwE}AgHJiH\\kE{BaRoCoEsGcLiE{N{AmQvB{QbFkN|E}FzMcPtQmTh|A_iBfCcDzHcKpJaMr\\w_@t\\i`@hb@gg@lAkJRqJg@wJeCoMgQ{f@qHsTuC_FiMsT_S_ViVkPkfAyi@oXiNq{@q_@qn@cU{SsGgEqA~@wEzCgOvBiLzAqM\\mG@ad@UoQmC{^eDms@e@uJoAsXgAg^MgEe@sEuD__@qLstB}@ePIsCmAiq@zA_YjG_b@nB_HpHeWdK}UdkBqqD~A{CnAcCjA{BpIoPhAyBf_@gs@rb@uz@vC{F`CcFf`@sv@bEeMvGgVzEoQ~AyRrAyRe@mQ_E_XyDuWsJo}@gJsgAwByYcAmN?eDJ}Bh@cPnDuRtKs]~Ig[g_@oGg[aJqDY{FGkOdAqH`B{VrFok@bMsIlAcJNcJm@sImB{HiDej@ig@yDmD_CyB}v@qt@_TkQpf@yv@r_@kh@lF{MlDqM`AwN[cN}BqP{Uii@iI~DsFb@ih@cPeQaPaJ_NsIwEmV}KyMiBmKg@ae@}HkP}RgDoHwCwNkFWaY{E{Hj]uDjJcJhKia@n_@qFpL}g@uHcd@tLoBm[}GmJe`@eZub@qh@uHsa@_MuMsSiOvXgMxCaD"
],
"alternative_instructions":[
[
[
"10",
"PANDAN LOOP",
853,
0,
89,
"853m",
"NE",
65,
1,
"SW",
245
],
[
"8",
"JALAN BUROH",
217,
9,
23,
"217m",
"NE",
50,
1,
"SW",
230
],
[
"1",
"WEST COAST HIGHWAY",
62,
14,
7,
"61m",
"E",
92,
1,
"W",
272
]
]
],
"alternative_indices":[
0,
159
]
}
Decoding route_geometry
The routing service returns response will have a route_geometry
variable that is encoded.
Google Polyline Decoder can be used if pt
is specified as the routeType
.
If drive
or walk
is specified as the routeType
, please use the sample code given as shown.
JavaScript Decoder:
var polyUtil = require('polyline-encoded');
var encoded = route_geometry;
if (encoded !== undefined || encoded !== '' || encoded != null ) {
var latlngs = polyUtil.decode(encoded, {
precision: 6
});
// Do something with latlngs
}
Android Decoder:
public static List<LatLng> decodePolyline(String encoded) {
List<LatLng> poly = new ArrayList<LatLng>();
int index = 0, len = encoded.length();
int lat = 0, lng = 0;
while (index < len) {
int b, shift = 0, result = 0;
do {
b = encoded.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
lat += dlat;
shift = 0;
result = 0;
do {
b = encoded.charAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
} while (b >= 0x20);
int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
lng += dlng;
// LatLng p = new LatLng((int) (((double) lat / 1E5) 1E6), (int) (((double) lng / 1E5) 1E6));
int latlength = (int)(Math.log10(lat)+1);
double divider = 10 / Math.pow(10, latlength);
//OSRM returns 6 decimal points, OTP 5 decimal points
LatLng p = new LatLng((double)lat * divider, (double)lng * divider);
poly.add(p);
// Log.i("TEST", "Latitude: " + Double.toString(p.getLatitude()) + " " + "Longitude: " + Double.toString(p.getLongitude()));
}
return poly;
}
iOS Decoder:
GeometryDecoder.h:
#import <Foundation/Foundation.h>
@interface GeometryDecoder : NSObject
+ (NSArray *)polylineWithEncodedString:(NSString *)encodedString;
@end
GeometryDecoder.m:
#import <MapKit/MKAnnotation.h>
#import "GeometryDecoder.h"
@implementation GeometryDecoder
+ (NSArray *)polylineWithEncodedString:(NSString *)encodedString
{
const char *bytes = [encodedString UTF8String];
NSUInteger length = [encodedString lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
NSUInteger idx = 0;
float latitude = 0;
float longitude = 0;
NSMutableArray * decodedGeometries = [[NSMutableArray alloc] init];
while (idx < length)
{
char byte = 0;
int res = 0;
char shift = 0;
do
{
byte = bytes[idx++] - 63;
res |= (byte & 0x1F) << shift;
shift += 5;
}
while (byte >= 0x20);
float deltaLat = ((res & 1) ? ~(res >> 1) : (res >> 1));
latitude += deltaLat;
shift = 0;
res = 0;
do
{
byte = bytes[idx++] - 0x3F;
res |= (byte & 0x1F) << shift;
shift += 5;
}
while (byte >= 0x20);
float deltaLon = ((res & 1) ? ~(res >> 1) : (res >> 1));
longitude += deltaLon;
float finalLat = latitude * 1E-5;
float finalLon = longitude;
/***********************************************************************************
Note: Below bit shift only works for Singapore Latitude because it is 1.xxx
***********************************************************************************/
if(finalLat >= 1 && finalLat < 2)
{
finalLon *= 1E-5;
}
else
{
finalLat = latitude * 1E-6;
finalLon *= 1E-6;
}
CLLocation * coord = [[CLLocation alloc] initWithLatitude:finalLat longitude:finalLon];
[decodedGeometries addObject:coord];
}
return [decodedGeometries copy];
}
@end
Static Map
Get Method:
/commonapi/staticmap/getStaticImage
Usage:
/commonapi/staticmap/getStaticImage?layerchosen={Map Layer}&lat={Latitude}&lng={Longtitude}&zoom={Zoom Level}&width={Image's Width}&height={Image's Height}&polygons={Polygons' Details}&lines={Lines' Details}&points={Points' Details}&color={All Lines' Color}&fillColor={All Polygons' Color}
Polygon coordinates Format:
Array of Points:{Color Code} | Array of Points:{Color Code}
Example:
[[1.31955,103.84223],[1.31755,103.84223],[1.31755,103.82223],[1.31755,103.81223],[1.31955,103.84223]]:255,255,105
Lines coordinates Format:
Array of Points:{Color Code}:{Line Thickness} | Array of Points:{Color Code}:{Line thickness}
Example:
[[1.31955,103.84223],[1.31801,103.83224]]:177,0,0:3
Points coordinates Format:
Array of Points:Point|Point:{Color Code}
Example:
[1.31955,103.84223,"255,255,178","B"]|[1.31801,103.84224,"175,50,0","A"]
Examples:
With Optional Variables:
https://developers.onemap.sg/commonapi/staticmap/getStaticImage?layerchosen=default&lat=1.31955&lng=103.84223&zoom=17&height=512&width=400&polygons=[[1.31955,103.84223],[1.31755,103.84223],[1.31755,103.82223],[1.31755,103.81223],[1.31955,103.84223]]:255,255,105&lines=[[1.31955,103.84223],[1.31801,103.83224]]:177,0,0:3&points=[1.31955,103.84223,"255,255,178","B"]|[1.31801,103.84224,"175,50,0","A"]
Without Optional Variables:
https://developers.onemap.sg/commonapi/staticmap/getStaticImage?layerchosen=default&lat=1.31955&lng=103.84223&zoom=17&height=512&width=512
Example Response (With optional variables):
This API returns a static image of the map based on the defined parameters. Users may also overlay multiple point(s), polygon(s) or polyline(s) on the static map.
The response is returned in PNG format in accordance to the parameter inputs. Users can also create personalised static maps via the Static Map Creator.
Parameters
Variables | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
layerchosen Required |
|
||||||||||||
lat Required |
Latitude Coordinates in WGS84 format. | ||||||||||||
lng Required |
Longitude Coordinates in WGS84 format. | ||||||||||||
postal Required |
Either lat/lng or postal should be used. If postal code is provided as a parameter, the center point (lat/lng) will change. | ||||||||||||
zoom Required |
Values: 11- 19 The zoom level of the static image. The lower the value, the more zoomed out the static image. |
||||||||||||
width Required |
Values: 128-512 The width of the static image. |
||||||||||||
height Required |
Values: 128-512 The height of the static image. |
||||||||||||
polygons Optional |
The coordinates of Polygon(s) to be overlaid on the base map. Polygon(s) and its colour are segregated by semicolon. Whereas each polygon is differentiated with a pipe. The start and end must be of the same point but all other points should be unique. | ||||||||||||
lines Optional |
The coordinates of Line(s) to be overlaid on the base map. Line(s) and its colour and thickness are segregated by semicolon. Each line is differentiated with a pipe. | ||||||||||||
points Optional |
The coordinates of Point(s) to be overlaid on the base map. Coordinates, colour and label of individual point are segregated with a comma. Each Point is differentiated with a pipe. This is an example of 2 points differentiated with pipe, [1.31955,103.84223,"255,255,178","B"]|[1.31801,103.84224,"175,50,0","A"]. . |
||||||||||||
color Optional |
Specifies the color of all lines. Color must be in RGB format. EG: 255, 255, 255 |
||||||||||||
fillColor Optional |
Specifies the fill color of all Polygons. Color must be in RGB format. EG: 255, 255, 255 |
Tools
Mini-map Generator
This Mini-Map Creator tool enables users to create a mini-map on the fly with a marker pointing to a specified location, which can be embedded to websites as an iframe or served out as a hyperlink (URL).
Advanced Mini-Map
This Advanced Mini-Map Creator tool enables users to create a mini-map on the fly with multiple markers and selectable icons.The creation can be embedded to websites as an iframe or served out as a hyperlink (URL).
Static Map Generator
This Static Map Creator tool enables users to create a static map with designated marker(s), line(s) and/or polygon(s) on the fly. The image will be created using the generated URL provided.
Helper Libraries
Leaflet
Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps.
Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms and can be extended with many plugins. It also has a beautiful, easy to use and well-documented API with a simple, readable source code that is a joy to contribute to.
Leaflet.draw
Leaflet.draw is designed to not only be easy for end users to use, but also for developers to integrate.
-Drawing shapes on your map with easy to use drawing tools.
-Editing and deleting vectors and markers.
-Using event based system to enable users to perform any necessary actions when shapes are created, edited or deleted.
Leaflet.draw is also highly customisable, providing users features such as:
-Customize the styles of each shape to fit in with your maps theme.
-Picking and choosing the which tools to use.
-Rolling your own by simply using the drawing and editing handlers.
ESRI-Leaflet
Esri-Leaflet is a Javascript library to help developers build lightweight applications using the Leaflet Javascript mapping library.
Leaflet plugins work with a handful of the most popular ArcGIS Service types. This includes Esri base maps and feature services, as well as tiled map, dynamic map and image services.
It provides components for only some aspects of the ArcGIS platform for developers who prefer to build mapping applications with Leaflet.
It also supports geocoding services and geoprocessing services, as well as service defined rendering (via additional plugins).
Mapbox Omnivore
Omnivore helps Mapbox.js & Leaflet “eat” more types of data. The Team advocates the use of GeoJSON but users have to take note when specific data is in other formats, like GPX from a running watch, KML from Google Earth, CSVs from your spreadsheets, or TopoJSON files with enhanced geometries.
Turf.js
Turf.js is a JavaScript library for spatial analysis. It has a large family of tasks like ‘calculating area and distance’ and ‘joining points to polygons’ to enable users to analyze, aggregate, and transform data for new ways of visualisation in a quick and seamless manner to answer advanced questions.
OpenLayers
OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles, vector data and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. It is free, with its Open Source JavaScript released under the 2-clause BSD License (also known as the FreeBSD).
OpenLayers has features such as Tiled Layers, Vector Layers, making it fast and mobile ready.
GitHub
The OneMap Team would like to share some of our work to help fellow developers:
General repositories
General repositories: Click here
iOS
Base maps and custom markers: Click here
Android
Base maps with Mapbox Android SDK: Click here
OneMap API authentication module
MacOS: Click here
Linux x86: 32-Bit: Click here
Linux x64: 64-Bit: Click here
Windows x64: 32-Bit: Click here
Windows x86: 64-Bit: Click here
Register Account
Step 1: Sign up for an account at https://developers.onemap.sg/register
Step 2: You will receive an email to activate your account. Check your junk or spam folder if it is not in your inbox.
Step 3: Copy the confirmation code from the email to complete your registration at https://developers.onemap.sg/confirm_account
Step 4: After confirming your account, an access token will be generated for you. The token will expire in 3 days. You can also retrieve the access token through the authentication service listed at https://developers.onemap.sg/#authentication-service-post
Forget Password
Reset Password
Step 1: Request for password change at https://developers.onemap.sg/resetpassword
Step 2: You will receive an email to your account. Check your junk or spam folder if it is not in your inbox.
Step 3: Copy the confirmation code from the email to complete your password reset at https://developers.onemap.sg/setpassword
Step 4: After setting your password, an access token will be generated for you. The token will expire in 3 days. You can also retrieve the access token through the authentication service listed at https://developers.onemap.sg/#authentication-service-post
Try It Out
You can try it out OneMap API services at this page .
Contact Us
We are the OneMap development team from Singapore Land Authority, the geospatial agency of Singapore.
We are constantly seeking ways to improve on our services, your suggestions will be greatly appreciated. Feel free send us feedback at onemap@sla.gov.sg and we would try to get back to you as soon as possible!
API Health Status
You can check API Health Status from time to time.
Appendices
Reverse Geocoding
Reverse geocoding is the process of back (reverse) coding of a point location (latitude, longitude) to a readable address or place name.
WGS84
WGS84 is the standard U.S. Department of Defense definition of a global reference system for geospatial information and is the reference system for the Global Positioning System (GPS).
SVY21
SVY21 is a geodetic datum first defined in 2004 and is suitable for use in Singapore - onshore and offshore. SVY21 references the WGS84 ellipsoid and the Greenwich prime meridian.
EPSG 3857
EPSG 3857 is a projection used in many popular web mapping applications. Sometimes known as EPSG:900913. Each pixel is calculated in metres from the origin.
Basemap
A base map is a non-editable layer that provides background, or reference information, in map. It is typically designed to provide a visual reference for other layers to help orientate the user of the map.
Polygon
A polygon is an area that is bounded by a finite chain of straight line segments closing in a loop to form a closed chain or circuit.
Line
A line is a straight one-dimensional figure without thickness and extending infinitely in both directions.
Points
A point is a geographical reference of a location. It has no size (i.e. no width, no length and no depth). A point is represented by a dot on the map.