Show Side Bar

Population Query

This API provides population data sets by the Department of Statistics. The types of population demographics data, based on planning area or subzone, include age group, economic status, education status, household size etc.


Economic Status Data

This API retrieves data related to economic status for given planning area name and year. If gender is not specified, then result set would contain figures for both genders, male and female.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter valid year.

400 - Please enter planning area.

400 - Your gender must be either male or female.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

genderstring

Optional. Male or female, returns all results by default.

GET
/api/public/popapi/getEconomicStatus


Sample Request

GET
/api/public/popapi/getEconomicStatus?planningArea=Bedok&year=2010&gender=male
1const url = "https://www.onemap.gov.sg/api/public/popapi/getEconomicStatus?planningArea=Bedok&year=2010&gender=male"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "employed": 83567, 5 "unemployed": 3748, 6 "inactive": 33195, 7 "year": 2010, 8 "gender": "Male" 9 } 10]

Education Status Data

This API retrieves data related to education status for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter valid year.

400 - Please enter planning area.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getEducationAttending


Sample Request

GET
/api/public/popapi/getEducationAttending?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getEducationAttending?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "pre_primary": 3290, 5 "primary": 14572, 6 "secondary": 10517, 7 "post_secondary": 3309, 8 "polytechnic": 3923, 9 "prof_qualification_diploma": 580, 10 "university": 7785, 11 "year": 2020 12 } 13]

Ethnic distribution Data

This API retrieves data related to ethnic distribution for given planning area name and year. If gender is not specified, then result set would contain figures for both genders, male and female.

HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

genderstring

Optional. Gender can be either male or female. Returns all results by default.

GET
/api/public/popapi/getEthnicGroup


Sample Request

GET
/api/public/popapi/getEthnicGroup?planningArea=Bedok&year=2020&gender=male
1const url = "https://www.onemap.gov.sg/api/public/popapi/getEthnicGroup?planningArea=Bedok&year=2020&gender=male"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "chinese": 96900, 5 "malays": 19350, 6 "indian": 12480, 7 "others": 5490, 8 "year": 2020, 9 "gender": "Male" 10 } 11]

Work Income for household (monthly)

This API retrieves data related to monthly household income for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getHouseholdMonthlyIncomeWork


Sample Request

GET
/api/public/popapi/getHouseholdMonthlyIncomeWork?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getHouseholdMonthlyIncomeWork?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "total": 97553, 5 "below_sgd_1000": 2203, 6 "no_working_person": 16818, 7 "sgd_10000_over": 0, 8 "sgd_10000_to_10999": 3291, 9 "sgd_11000_to_11999": 2685, 10 "sgd_1000_to_1999": 5278, 11 "sgd_12000_to_12999": 2620, 12 "sgd_13000_to_13999": 2564, 13 "sgd_14000_to_14999": 1838, 14 "sgd_15000_to_17499": 4080, 15 "sgd_17500_to_19999": 3349, 16 "sgd_20000_over": 17125, 17 "sgd_2000_to_2999": 5245, 18 "sgd_3000_to_3999": 5521, 19 "sgd_4000_to_4999": 4641, 20 "sgd_5000_to_5999": 5102, 21 "sgd_6000_to_6999": 3868, 22 "sgd_7000_to_7999": 4229, 23 "sgd_8000_over": 0, 24 "sgd_8000_to_8999": 3455, 25 "sgd_9000_to_9999": 3641, 26 "year": 2020 27 } 28]

Household size data

This API retrieves data related to household size for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getHouseholdSize


Sample Request

GET
/api/public/popapi/getHouseholdSize?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getHouseholdSize?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "person1": 17598, 5 "person2": 23486, 6 "person3": 19081, 7 "person4": 17654, 8 "person5": 10727, 9 "person6": 4845, 10 "person7": 2631, 11 "person_more_8": 1530, 12 "year": 2020 13 } 14]

Household structure data

This API retrieves data related to household structure for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getHouseholdStructure


Sample Request

GET
/api/public/popapi/getHouseholdStructure?planningArea=Bedok&year=2010
1const url = "https://www.onemap.gov.sg/api/public/popapi/getHouseholdStructure?planningArea=Bedok&year=2010"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "no_family_nucleus": 17526, 5 "ofn_1_gen": 11330, 6 "ofn_2_gen": 50450, 7 "ofn_3_more_gen": 5758, 8 "tfn_1to2_gen": 1435, 9 "tfn_3_more_gen": 4412, 10 "three_more_fam_nucleus": 313, 11 "year": 2010 12 } 13]

Income from work data

This API retrieves data related to income from work for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getIncomeFromWork


Sample Request

GET
/api/public/popapi/getIncomeFromWork?planningArea=Bedok&year=2010
1const url = "https://www.onemap.gov.sg/api/public/popapi/getIncomeFromWork?planningArea=Bedok&year=2010"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "total": 147667, 5 "below_sgd_1000": 17582, 6 "sgd_10000_to_10999": null, 7 "sgd_11000_to_11999": null, 8 "sgd_12000_over": null, 9 "sgd_1000_to_1499": 13131, 10 "sgd_1500_to_1999": 13185, 11 "sgd_2000_to_2499": 13403, 12 "sgd_2500_to_2999": 10797, 13 "sgd_3000_to_3999": 19091, 14 "sgd_4000_to_4999": 12647, 15 "sgd_5000_to_5999": 10048, 16 "sgd_6000_over": null, 17 "sgd_6000_to_6999": 7684, 18 "sgd_7000_to_7999": 4912, 19 "sgd_8000_over": 25187, 20 "sgd_8000_to_8999": null, 21 "sgd_9000_to_9999": null, 22 "sgd_1000_to_1999": 0, 23 "sgd_2000_to_2999": 0, 24 "sgd_12000_14999": 0, 25 "sgd_15000_over": 0, 26 "year": 2010 27 } 28]

Industry of population

This API retrieves data related to industry of population for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getIndustry


Sample Request

GET
/api/public/popapi/getIndustry?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getIndustry?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "manufacturing": 11396, 5 "construction": 4921, 6 "wholesale_retail_trade": 22211, 7 "transportation_storage": 15015, 8 "accommodation_food_services": 9020, 9 "information_communications": 8343, 10 "financial_insurance_services": 16117, 11 "real_estate_services": 4079, 12 "professional_services": 12974, 13 "admin_support_services": 8647, 14 "public_admin_education": 17137, 15 "health_social_services": 8373, 16 "arts_entertainment_recreation": 1916, 17 "other_comm_social_personal": 4130, 18 "others": 938, 19 "hotels_restaurants": null, 20 "transport_communications": null, 21 "business_services": null, 22 "other_services_industries": null, 23 "year": 2020 24 } 25]

Language literacy data

This API retrieves data related to language literacy for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getLanguageLiterate


Sample Request

GET
/api/public/popapi/getLanguageLiterate?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getLanguageLiterate?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "no_literate": 7165, 5 "l1_chi": 29765, 6 "l1_eng": 29023, 7 "l1_mal": 4302, 8 "l1_tam": 322, 9 "l1_non_off": 386, 10 "l2_eng_chi": 105756, 11 "l2_eng_mal": 35186, 12 "l2_eng_tam": 4274, 13 "l2_other_two": 616, 14 "l3_eng_chi_mal": 6986, 15 "l3_eng_mal_tam": 569, 16 "l3_other_three": null, 17 "year": 2020, 18 "l2_eng_non_off": 6177 19 } 20]

Marital Status data

This API retrieves data related to marital status for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

genderstring

Optional. Gender can be either male or female. Returns all results by default.

GET
/api/public/popapi/getMaritalStatus


Sample Request

GET
/api/public/popapi/getMaritalStatus?planningArea=Bedok&year=2010&gender=male
1const url = "https://www.onemap.gov.sg/api/public/popapi/getMaritalStatus?planningArea=Bedok&year=2010&gender=male"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "single": 43753, 5 "married": 71251, 6 "widowed": 2204, 7 "divorced": 3303, 8 "year": 2010, 9 "gender": "Male" 10 } 11]

Mode of transport to school

This API retrieves data related to mode of transport to school for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area

400 - Please enter valid year

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getModeOfTransportSchool


Sample Request

GET
/api/public/popapi/getModeOfTransportSchool?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getModeOfTransportSchool?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "bus": 9837, 5 "mrt": 0, 6 "mrt_bus": 0, 7 "mrt_car": 0, 8 "mrt_other": 0, 9 "taxi": 0, 10 "car": 8128, 11 "pvt_chartered_bus": 0, 12 "lorry_pickup": 0, 13 "motorcycle_scooter": 63, 14 "others": 596, 15 "no_transport_required": 8299, 16 "other_combi_mrt_or_bus": 0, 17 "mrt_lrt_only": 2484, 18 "mrt_lrt_and_bus": 9419, 19 "other_combi_mrt_lrt_or_bus": 791, 20 "taxi_pvt_hire_car_only": 434, 21 "pvt_chartered_bus_van": 3615, 22 "year": 2020 23 } 24]

Mode of transport to work

This API retrieves data related to mode of transport to work for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getModeOfTransportWork


Sample Request

GET
/api/public/popapi/getModeOfTransportWork?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getModeOfTransportWork?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "bus": 25560, 5 "mrt": 0, 6 "mrt_bus": 0, 7 "mrt_car": 0, 8 "mrt_other": 0, 9 "taxi": 0, 10 "car": 34792, 11 "pvt_chartered_bus": 0, 12 "lorry_pickup": 1611, 13 "motorcycle_scooter": 4152, 14 "others": 2592, 15 "no_transport_required": 15146, 16 "other_combi_mrt_or_bus": 0, 17 "mrt_lrt_only": 16411, 18 "mrt_lrt_and_bus": 32836, 19 "other_combi_mrt_lrt_or_bus": 3298, 20 "taxi_pvt_hire_car_only": 4732, 21 "pvt_chartered_bus_van": 2096, 22 "year": 2020 23 } 24]

Age Data

This API retrieves data related to age for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

genderstring

Optional. Male or female, returns all results by default.

GET
/api/public/popapi/getPopulationAgeGroup


Sample Request

GET
/api/public/popapi/getPopulationAgeGroup?planningArea=Bedok&year=2020&gender=female
1const url = "https://www.onemap.gov.sg/api/public/popapi/getPopulationAgeGroup?planningArea=Bedok&year=2020&gender=female"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "age_0_4": 4810, 5 "age_5_9": 5680, 6 "age_10_14": 6340, 7 "age_15_19": 6920, 8 "age_20_24": 7730, 9 "age_25_29": 9410, 10 "age_30_34": 9340, 11 "age_35_39": 9550, 12 "age_40_44": 10510, 13 "age_45_49": 10870, 14 "age_50_54": 10250, 15 "age_55_59": 11180, 16 "age_60_64": 11190, 17 "age_65_69": 9890, 18 "age_70_74": 7930, 19 "age_75_79": 4370, 20 "age_80_84": 3360, 21 "age_85_over": 3450, 22 "total": 142790, 23 "gender": "Female", 24 "year": 2020 25 } 26]

Religion Data

This API retrieves data related to religion for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getReligion


Sample Request

GET
/api/public/popapi/getReligion?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getReligion?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "no_religion": 47193, 5 "buddhism": 69927, 6 "taoism": 18890, 7 "islam": 40660, 8 "hinduism": 10321, 9 "sikhism": 1058, 10 "catholic_christian": 20874, 11 "other_christians": 29299, 12 "other_religions": 511, 13 "year": 2020 14 } 15]

Spoken language data

This API retrieves data related to spoken language for given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getSpokenAtHome


Sample Request

GET
/api/public/popapi/getSpokenAtHome?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getSpokenAtHome?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "english": 21410, 5 "mandarin": 16472, 6 "chinese_dialects": 7560, 7 "malay": 7811, 8 "tamil": 400, 9 "other_indian_languages": 0, 10 "others": 0, 11 "eng_mand": 65469, 12 "eng_chn_dlt": 10488, 13 "eng_mly": 16270, 14 "eng_oth_ind_lang": 4778, 15 "eng_oth_lang": 2498, 16 "mand_eng": 28120, 17 "mand_chn_dlt": 19206, 18 "mand_oth_lang": 267, 19 "chn_dlt_eng": 3155, 20 "chn_dlt_mand": 10797, 21 "chn_dlt_oth_lang": 824, 22 "mly_eng": 16584, 23 "mly_oth_lang": 207, 24 "tml_eng": 2678, 25 "tml_oth_lang": 223, 26 "oth_ind_lang_eng": 1395, 27 "oth_ind_lang_oth_lang": 316, 28 "oth_lang_eng": 1148, 29 "oth_lang_oth_non_eng_lang": 241, 30 "eng_tml": 3281, 31 "year": 2020 32 } 33]

Tenancy data

This API retrieves data related to tenancy for the given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getTenancy


Sample Request

GET
/api/public/popapi/getTenancy?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getTenancy?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "owner": 85033, 5 "tenant": 11127, 6 "others": 1391, 7 "year": 2020 8 } 9]

Dwelling type household data

This API retrieves data related to dwelling type household for given the planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token.

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getTypeOfDwellingHousehold


Sample Request

GET
/api/public/popapi/getTypeOfDwellingHousehold?planningArea=Bedok&year=202
1const url = "https://www.onemap.gov.sg/api/public/popapi/getTypeOfDwellingHousehold?planningArea=Bedok&year=202"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "hdb_1_and_2_room_flats": 5391, 5 "hdb_3_room_flats": 22903, 6 "hdb_4_room_flats": 22045, 7 "hdb_5_room_and_executive_flats": 14226, 8 "condominiums_and_other_apartments": 20922, 9 "landed_properties": 11545, 10 "others": 519, 11 "year": 2020, 12 "total_hdb": 64565 13 } 14]

Dwelling type population data

This API retrieves data related to dwelling type population for the given planning area name and year.

Possible Error Responses

400 - Please send the access token either in the request header as a bearer token

400 - Please enter planning area.

400 - Please enter valid year.

401 - Token has expired: Session expired. Please refresh your token (if still within refresh window) or re-login.

401 - Invalid token: Could not decode token: The token xxx; is an invalid JWS.

403 - Access Forbidden. GET access to component 'xxx' of service 'xxx' is not allowed by this user's role.

429 - API limit(s) exceeded.


HEADER PARAMETERS

AuthorizationstringRequired

API token provided by the Authentication Service.

QUERY PARAMETERS

planningAreastringRequired

Planning area name can be retrieved from "Names of planning area".

yearstringRequired

Years available are 2000, 2010, 2015, and 2020.

GET
/api/public/popapi/getTypeOfDwellingPop


Sample Request

GET
/api/public/popapi/getTypeOfDwellingPop?planningArea=Bedok&year=2020
1const url = "https://www.onemap.gov.sg/api/public/popapi/getTypeOfDwellingPop?planningArea=Bedok&year=2020"; 2const authToken = '**********************'; // Replace with your access token 3 4fetch(url, { 5 method: 'GET', 6 headers: { 7 'Authorization': `${authToken}`, // API token for authorization 8 } 9}) 10.then(response => response.json()) // Parse response as JSON 11.then(data => console.log(data)) // Log the data to the console 12.catch(error => console.error('Error:', error)); // Log any errors

Sample Response
1[ 2 { 3 "planning_area": "Bedok", 4 "year": 2020, 5 "hdb_1_and_2_room_flats": 9630, 6 "hdb_3_room_flats": 54710, 7 "hdb_4_room_flats": 66310, 8 "hdb_5_room_and_executive_flats": 44970, 9 "condominiums_and_other_apartments": 54850, 10 "landed_properties": 43870, 11 "others": 2650, 12 "total_hdb": 175620, 13 "total": 276990 14 } 15]