GEOGovernment ยท Singapore Land Authority (SLA)

OneMap Search (Geocoding)

Authoritative Singapore address and place search: postal codes, building names and roads to coordinates in both WGS84 and SVY21. The standard way to geocode SG addresses.

How to authenticate

4 stops to a working call

  1. 1Register a free account at onemap.gov.sg (email verification).
  2. 2POST your email and password to https://www.onemap.gov.sg/api/auth/post/getToken.
  3. 3Use the returned access_token as Authorization header; it expires after 3 days.
  4. 4Renew by calling getToken again (automate this in your client).

Example request

Request
curl -H 'Authorization: YOUR_TOKEN' 'https://www.onemap.gov.sg/api/common/elastic/search?searchVal=Raffles+Place&returnGeom=Y&getAddrDetails=Y&pageNum=1'

Example response

Response (truncated)
{"found":21,"results":[{"SEARCHVAL":"ASCOTT SINGAPORE RAFFLES PLACE","ADDRESS":"2 FINLAYSON GREEN ... SINGAPORE 049247","POSTAL":"049247","LATITUDE":"1.2820837651092","LONGITUDE":"103.851559731294"}]}

OneMap Search (Geocoding): common questions

Is the OneMap Search (Geocoding) free?

Yes. Singapore Land Authority (SLA) offers the OneMap Search (Geocoding) free of charge.

Does the OneMap Search (Geocoding) need an API key?

Yes. It uses Token. Register a free account at onemap.gov.sg (email verification). POST your email and password to https://www.onemap.gov.sg/api/auth/post/getToken. Use the returned access_token as Authorization header; it expires after 3 days. Renew by calling getToken again (automate this in your client).

What is the OneMap Search (Geocoding) endpoint?

The base URL is https://www.onemap.gov.sg/api/common/elastic/search. A working example: curl -H 'Authorization: YOUR_TOKEN' 'https://www.onemap.gov.sg/api/common/elastic/search?searchVal=Raffles+Place&returnGeom=Y&getAddrDetails=Y&pageNum=1'

Notes for AI agents

Quirk verified 2026-07-05: without a token the search endpoint still returns results but includes an error field asking for a token; do not rely on that, docs state a token is required. Postal code as searchVal is the most reliable lookup.

Machine-readable version: /api/apis/onemap-search

On the same line