Singapore GeBIZ Tender Awards (data.gov.sg)
Pricing
$2.00 / 1,000 result returneds
Singapore GeBIZ Tender Awards (data.gov.sg)
Singapore government contract awards from the official GeBIZ dataset on data.gov.sg: tender, agency, award date, supplier, amount. Filter, pay per result.
Pricing
$2.00 / 1,000 result returneds
Rating
0.0
(0)
Developer
Jason
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Get every Singapore government contract award as clean JSON: tender number, description, awarding agency, award date, status, winning supplier and awarded amount in SGD. The data comes from the Ministry of Finance's official "Government Procurement via GeBIZ" dataset on data.gov.sg, which lists tenders put out by government agencies since FY2021 and who won them. Filter by award date, keyword, agency, supplier, status and minimum amount, and pay only for the records you receive. No API key, no login, no browser automation.
This Actor returns the official awards dataset, not live GeBIZ listings. The GeBIZ portal itself is a bidding system whose terms of use prohibit reproducing, redistributing or even caching its contents without written permission, and its pages change without notice, so scraping it is fragile and not clearly permitted. The Ministry of Finance dataset on data.gov.sg is the authoritative, openly licensed record of what was actually awarded, to whom and for how much, which is what you need for supplier intelligence, win/loss analysis, price benchmarking and lead lists. It is refreshed about once a year, so if you need open (not yet awarded) tenders or same-week award notices, this is not the right tool.
What you get
One record per tender-supplier pair (a tender awarded by items to three suppliers yields three records), newest award first:
id- stable id<tenderNo>:<supplier-slug>(a numeric suffix is added if a pair ever repeats)source-data.gov.sg/gebizurl- the public dataset page on data.gov.sgtenderNo- GeBIZ tender number, e.g.HDB000ETT24000004tenderDescription- tender title as publishedagency- awarding agency (113 agencies: ministries, statutory boards, schools)awardDate- ISOYYYY-MM-DD(converted from the source'sd/m/yyyy);awardDateRawkeeps the original stringstatus-Awarded to Suppliers,Awarded by Items,Award by interface recordorAwarded to No SupplierssupplierName- winning supplier (Unknownwhen awarded to no suppliers)awardedAmountSgd- awarded amount as a number in Singapore dollarsdatasetLastUpdated- when data.gov.sg last refreshed the dataset, so you know how fresh the data isfetchedAt- ISO timestamp of the run
The run also writes a SUMMARY record to the key-value store with datasetLastUpdated, coverageStart/coverageEnd, total rows, rows matched, rows delivered and any warnings.
Input
| Field | Type | Default | Description |
|---|---|---|---|
keywords | string[] | [] | Case-insensitive words/phrases matched against the tender description (and tender number). Any match passes. |
agencies | string[] | [] | Case-insensitive substrings matched against the agency name, e.g. "Housing and Development Board", "Health". |
suppliers | string[] | [] | Case-insensitive substrings matched against the supplier name, e.g. "NCS", "Accenture". |
statuses | string[] | [] | Case-insensitive match on tender_detail_status; see the four values above. Empty = all. |
dateFrom | string | - | Earliest award date, YYYY-MM-DD (inclusive). Overrides daysBack. Dataset starts 2021-04-01. |
dateTo | string | today | Latest award date, YYYY-MM-DD (inclusive). |
daysBack | integer | 365 | Used when dateFrom is empty: awards from this many days before dateTo. One year by default because the dataset is refreshed about once a year. If you give neither dateFrom nor dateTo, the window is slid back so it ends at the dataset's published coverage end, which keeps a default run inside the data even between annual refreshes (the log says so). |
minAmount | number | 0 | Only awards with awardedAmountSgd at or above this value; decimals accepted, since source amounts can be fractional. Any value above 0 also drops the zero-amount "Awarded to No Suppliers" rows. |
maxItems | integer | 1000 | Stop after this many results (newest first). You are charged per result. The Store form prefills 100 for a cheap first run. |
Example: all IT-related awards above S$1M won by any supplier in 2025:
{"keywords": ["software", "cloud", "IT ", "system"],"dateFrom": "2025-01-01","dateTo": "2025-12-31","minAmount": 1000000,"maxItems": 500}
Output example
A real record from a run on 2026-09-07 (window from 2024-01-01, status Awarded to Suppliers, minAmount 1000):
{"id": "CDVHQ0ETT25000022:mie-tech-engineering-construction-pte-ltd","source": "data.gov.sg/gebiz","url": "https://data.gov.sg/datasets/d_acde1106003906a75c3fa052592f2fcb/view","tenderNo": "CDVHQ0ETT25000022","tenderDescription": "Invitation to Tender for the Proposed FAM@FSC and FFLC at Blk 123, 128 and 131 Bedok Reservoir Road Singapore","agency": "Ministry of Social and Family Development - Ministry Headquarter","awardDate": "2026-03-31","awardDateRaw": "31/3/2026","status": "Awarded to Suppliers","supplierName": "MIE-TECH ENGINEERING & CONSTRUCTION PTE LTD","awardedAmountSgd": 862187,"datasetLastUpdated": "2026-04-26T21:48:27+08:00","fetchedAt": "2026-09-07T06:09:51.996Z"}
Pricing
Pay per result: US$0.002 per record, i.e. US$2 per 1,000 results. You are charged only for records actually delivered to the dataset (nothing for empty runs), and the run stops automatically when your Apify spend limit is reached. The whole dataset (about 18,500 records covering five financial years) costs under US$40; one financial year is roughly 3,500 to 4,000 records, i.e. US$7 to US$8. Apify's free plan limits how much you can run per month; see the Apify pricing page for current limits.
Data source and licence
- Dataset: Government Procurement via GeBIZ, published by the Ministry of Finance on data.gov.sg (dataset id
d_acde1106003906a75c3fa052592f2fcb). - Access: the official data.gov.sg Download dataset API (
initiate-downloadthenpoll-download), with the legacydatastore_searchAPI as an automatic fallback. Dataset metadata (lastUpdatedAt, coverage) comes from the metadata API. - Licence: Singapore Open Data Licence v1.0. Commercial use, redistribution and adaptation are permitted with attribution. If you republish the data, include a notice such as: Contains information from "Government Procurement via GeBIZ" accessed on {date} from data.gov.sg, made available under the terms of the Singapore Open Data Licence version 1.0 (https://data.gov.sg/open-data-licence). Do not present the output as official or endorsed by the Singapore Government.
- Personal data: the awards feed is organisational, but
supplierNamecan be a sole proprietorship or partnership trading under an individual's name, and the tender description occasionally names an officer. Those values are published lawfully by the Ministry of Finance under the Singapore Open Data Licence, but where a value identifies an individual it is personal data under Singapore's Personal Data Protection Act 2012 (PDPA). - Downstream use — direct marketing in particular, including the PDPA's Do Not Call rules — is the buyer's responsibility, not the publisher's. The Actor adds no contact details and no enrichment from other sources.
This Actor is independent and not affiliated with GeBIZ, the Ministry of Finance or data.gov.sg.
Limits and freshness
- Freshness: MOF refreshes the dataset about once a year, shortly after the Singapore financial year ends on 31 March (data.gov.sg lists the collection's update frequency as annual). At the time of writing it covers award dates from 2021-04-01 to 2026-03-31 (FY2021 to FY2025) and was last updated on 2026-04-26. An award made today can therefore take up to a year to appear; this is not a real-time feed. The last refresh date is reported as
datasetLastUpdatedon every record and inSUMMARY. A run that specifies no dates automatically ends its window at the coverage end, so the default settings always return data; if you setdateFrom/dateToexplicitly and the window lies entirely after the coverage end, the run returns zero results and logs a warning naming that date. - Scope: awarded tenders only (including "Awarded to No Suppliers" outcomes). Quotations, open tenders, tender documents, bidder lists and contact details are not in the dataset.
- Fields: exactly the seven columns MOF publishes, normalised (dates to ISO, amounts to numbers, whitespace trimmed). No enrichment is invented.
- Volume: the source is a single ~4.4 MB CSV that is downloaded once per run, so a run takes seconds regardless of filters.
maxItemscaps what is delivered and billed. - Rate limits: data.gov.sg rate limits reset every 10 seconds; without an API key you get 2 dataset-download calls and 4 datastore-search calls per 10 seconds (each endpoint has its own bucket). A run makes one
initiate-downloadcall, onepoll-downloadcall, one metadata call and one CSV fetch, and retries with back-off on HTTP 429, so several runs started back to back simply take a little longer. Schedule it weekly or monthly; more often is pointless given the annual refresh cadence.
Use cases
- Supplier and competitor intelligence: list every contract a competitor has won, which agencies buy from them, and at what value; build target lists of agencies that buy what you sell.
- Price benchmarking and bid strategy: see historical awarded amounts for similar tenders (
keywords+agencies) before pricing your next bid. - Lead generation and market sizing: export suppliers winning work in a category (for example construction, IT services, training) to find partners, subcontractors or prospects; feed the JSON into a CRM or an LLM pipeline.
Support
Found a problem or need another field or filter? Open an issue on the Actor's Issues tab on Apify Store. Issues are answered within 14 days.