Secure websites use HTTPS
Scam alert
Waitlist for API key is now open. Register here for higher rate limits, priority support and maintenance notifications. Rate limits will be rolled out from 1 September 2025 onwards.
Data from Jan 1993 to Dec 2024
Last updated: 09 Jul 2025, 19:00 SGT
Source: SINGAPORE FOOD AGENCY
Data Last Updated: 20/06/2025
Update Frequency: Annual
Footnotes: From 2006, food establishments are categorised under food shops, food stalls, food factories, supermarkets and private markets. From 1 April 2019, Singapore Food Agency took over food-related functions previously carried out by former Agri-Food & Veterinary Authority of Singapore, National Environment Agency, and Health Sciences Authority. Data prior to 2019 were provided by former Agri-Food & Veterinary Authority of Singapore, and National Environment Agency. Data from 2019 are provided by Singapore Food Agency. Data reported for 2019 had duplicate counts in food shops and food stalls and private markets. Adjustments have been made to rectify the duplicate counts. Data for Private Markets from 2020 have been subsumed under 'Food Shops' and 'Food Stalls'.
Adapted from: https://tablebuilder.singstat.gov.sg/table/TS/M890531
Data Series Text | 2024 Numeric | 2023 Numeric | 2022 Numeric | 2021 Numeric | 2020 Numeric | 2019 Numeric | 2018 Numeric | 2017 Numeric | 2016 Numeric | 2015 Numeric | 2014 Numeric | 2013 Numeric | 2012 Numeric | 2011 Text | 2010 Text | 2009 Text | 2008 Text | 2007 Text | 2006 Text | 2005 Text | 2004 Text | 2003 Text | 2002 Text | 2001 Text | 2000 Text | 1999 Text | 1998 Text | 1997 Text | 1996 Text | 1995 Text | 1994 Text | 1993 Text |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)0.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% | (Null)20.0% |
Non-Retail Food Establishments | 2529 | 2425 | 2256 | 2079 | 1897 | 1852 | 1801 | 1738 | 1664 | 1618 | 1548 | 1482 | 1476 | 1408 | 1348 | 1275 | 1259 | 1224 | 1154 | 1119 | 1128 | 1135 | 1256 | 1206 | 1194 | 1214 | 1199 | 1174 | 1236 | 1203 | 1441 | 1445 |
Food Shops | 23589 | 22747 | 21953 | 21073 | 20176 | 19675 | 18823 | 18035 | 17196 | 16490 | 15875 | 15307 | 14642 | 14377 | 13828 | 13517 | 12578 | 12000 | 11451 | 11226 | 10828 | 10839 | 9940 | 9857 | 9217 | 9075 | 8782 | 8377 | 8092 | 7817 | 7661 | 7469 |
Food Stalls | 14134 | 14178 | 14328 | 14455 | 14773 | 14569 | 14698 | 14567 | 14350 | 14179 | 13979 | 13776 | 13889 | 13829 | 13686 | 13644 | 13363 | 13141 | 13039 | 13579 | 13509 | 14125 | 13629 | 13499 | 13483 | 13395 | 12828 | 12195 | 7842 | 10912 | 10534 | 11500 |
Supermarkets | 717 | 691 | 672 | 632 | 577 | 555 | 530 | 516 | 491 | 469 | 441 | 422 | 398 | 367 | 344 | 320 | 288 | 271 | 255 | 257 | 237 | 212 | 207 | 193 | 193 | 191 | 191 | 192 | 184 | 179 | 163 | 168 |
National Environment Agency Hawker Stalls | 12943 | 13430 | 13390 | 13570 | 13483 | 13400 | 13401 | 13329 | 13310 | 13440 | 13828 | 13537 | 13410 | na | na | na | na | na | na | na | na | na | na | na | na | na | na | na | na | na | na | na |
No results found
Title | Column name | Data type | Unit of measure | Description |
---|---|---|---|---|
Data Series | DataSeries | Text | Number | - |
2024 | 2024 | Numeric | Number | - |
2023 | 2023 | Numeric | Number | - |
2022 | 2022 | Numeric | Number | - |
2021 | 2021 | Numeric | Number | - |
2020 | 2020 | Numeric | Number | - |
2019 | 2019 | Numeric | Number | - |
2018 | 2018 | Numeric | Number | - |
2017 | 2017 | Numeric | Number | - |
2016 | 2016 | Numeric | Number | - |
This code can be used to test a sample API query. It retrieves the data catalogue of this dataset. For a complete guide on query parameters and syntax, please refer to the API documentation. Try it out on your browser to see the response schema.
import requests
dataset_id = "d_a9e81ab29216b10b69e23e7957b680b9"
url = "https://data.gov.sg/api/action/datastore_search?resource_id=" + dataset_id
response = requests.get(url)
print(response.json())
This dataset can be reused and cited in research publications.
22 Oct 2024
Free forever for personal or commercial use, under the Open Data Licence.