Dubai eSupply Tenders Scraper
Pricing
from $3.50 / 1,000 tenders
Dubai eSupply Tenders Scraper
Dubai government tenders and RFQs from eSupply: project code and title, buying entity, supply category, description, publication date, closing date, published lots and the opportunity link. Filter by keyword, entity, category or date window.
Pricing
from $3.50 / 1,000 tenders
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Features
Share
Dubai government tenders and RFQs from eSupply (esupply.dubai.gov.ae), the shared procurement portal of more than 40 Dubai government entities. Get one clean row per opportunity: project code and title, buying entity, supply category, description, publication date and time, closing date and time, response currency, the published lots and the opportunity link.
Use it for tender monitoring and alerts: schedule a daily run with your keyword, entity or category and send the new opportunities to email, Slack or a spreadsheet.
Use cases
- Watch new Dubai government opportunities by keyword, entity or supply category.
- Build a daily feed of open tenders before the closing date closes.
- Follow one entity's pipeline, for example a municipality, a health authority or the roads and transport authority.
- Keep the full description and the published lots next to each opportunity.
- Review past opportunities to see how an entity buys and how often.
What it returns
Every row has source, country, tenderId, tenderNumber, projectCode, title, titleEnglish, description, buyer, category, procurementMethod, status, publishedAt, deadlineAt, estimatedValue, currency, documents, notes, lots, url, changeType, changedFields, detailIssue, sourceQuery and scrapedAt.
titleis the project title exactly as the buying entity published it (English on this portal).titleEnglishstays null because no separate translation is published.tenderNumberis the portal's project code, e.g.tender_244596;projectCodecarries the same value.publishedAtanddeadlineAtare ISO 8601 with the UAE offset (+04:00).statusisopenfor the current opportunity list andclosedfor the past list.currencyis the response currency printed by the portal, usuallyAED. No estimated or contract value is published, soestimatedValuestays null.lotslists the published lots with their code (rfq_249364), title and closing time.documentsis null: the attachment list is only available to a registered supplier, so the opportunity link is the way to the official files.descriptionandnotescome from the opportunity page and are null on a list-only run.- If one opportunity page cannot be read, the row is still delivered with
detailIssueexplaining what was missing. - Rows are deduplicated on the eSupply opportunity id.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
keyword | string | "" | Text in the project title, buying entity and supply category. |
buyer | string | "" | Only opportunities whose buying entity contains this text. |
category | string | "" | Only opportunities in this supply category, e.g. Supplies or Services. |
status | string | open | open for the current list, closed for the most recently closed tenders. |
publishedFrom, publishedTo | string | "" | Publication date window, YYYY-MM-DD. |
closingFrom, closingTo | string | "" | Closing date window, YYYY-MM-DD. |
maxResults | integer | 20 | Maximum tenders returned. |
maxScanPages | integer | 5 | List pages to scan (100 tenders each) before the filters are applied. |
includeDetails | boolean | true | Read each opportunity page for the description, notes and lots. Slower. |
onlyNewSinceLastRun | boolean | false | Return only tenders that are new or changed since the previous run. |
stateKey | string | "" | Optional name for the saved feed; derived from the filters when empty. |
All filters are optional and can be combined. An empty input returns the current open opportunities, soonest closing first.
Example queries
Open opportunities for vehicle parts and maintenance closing this month:
{"keyword": "maintenance","closingFrom": "2026-11-10","closingTo": "2026-11-30","maxResults": 40}
One entity's open opportunities, without the slower page reads:
{"buyer": "Dubai Municipality", "maxResults": 50, "includeDetails": false}
Recently closed opportunities:
{"status": "closed", "closingFrom": "2026-10-27", "closingTo": "2026-11-10", "maxResults": 50}
A daily alert feed for a category:
{"category": "Services", "onlyNewSinceLastRun": true, "stateKey": "services-daily"}
Use it as a daily feed
Turn on onlyNewSinceLastRun and schedule the Actor once a day. The first run returns every matching tender; later runs return only tenders that are new, or whose deadline, status, title or documents changed, with changeType set to new or changed and changedFields listing what moved. Tenders that have not changed are not delivered and not charged. Each saved search keeps its own history, so different keywords stay separate; stateKey names the history explicitly.
Output example
{"source":"esupply.dubai.gov.ae","country":"United Arab Emirates","tenderId":"247034","tenderNumber":"tender_244596","projectCode":"tender_244596","title":"12628501 STANDARD","titleEnglish":null,"description":"1: [120-31938] FILTER HYDRAULIC OIL 402652A1/ 84226258 / CASE SHOVEL WHEEL LOADER - 2 EA 2: [120-31939] SEPARATOR WATER 2992447 / CASE SHOVEL WHEEL LOADER - 2 EA","buyer":"Dubai Municipality","category":"Other","procurementMethod":null,"status":"open","publishedAt":"2026-11-06T09:25:00+04:00","deadlineAt":"2026-11-10T07:00:00+04:00","estimatedValue":null,"currency":"AED","documents":null,"notes":null,"lots":[{"code":"rfq_249364","title":"12628501 STANDARD","closingAt":"2026-11-10T07:00:00+04:00"}],"url":"https://esupply.dubai.gov.ae/esop/toolkit/opportunity/current/247034/detail.si","changeType":null,"changedFields":null,"detailIssue":null,"sourceQuery":"status open","scrapedAt":"2026-11-10T06:58:07+00:00"}
Limits and caveats
- The public list holds 100 tenders per page and the portal applies no usable filters through its public links, so each run scans
maxScanPagespages and applies your filters locally. Five pages cover the whole current opportunity list. - The past list holds close to 200,000 rows back to 2012 and starts at the oldest, so a
closedrun reads it from the most recent end and walks back throughmaxScanPagespages. RaisemaxScanPagesfor a wider review window. - Runs with
includeDetailson read one extra page per tender and take longer than list-only runs. - No estimated contract values are published;
estimatedValueremains null. - Some entities truncate long project titles in the list; the full title comes from the opportunity page when details are on.
- If the portal cannot be read, the run stops with a plain status message; rows already collected stay in the dataset.
- If nothing matches, the run succeeds with an empty dataset.
FAQ
How fresh is the data? Every run reads eSupply live.
How do I get only new tenders each day? Turn on onlyNewSinceLastRun and schedule a daily run. Tenders you have already received are not sent again.
Do I get the tender documents? The file list needs a registered supplier account. url opens the official opportunity, and registered suppliers can download the documents there.
What does currency mean? It is the response currency the buyer expects offers in, usually AED. No contract value is published.
What if an opportunity page fails? The tender row is still delivered with detailIssue set.
Price
You pay per result: each delivered tender row is one result, plus a small run-start charge. The run-start event is charged per GB of memory; the default 512 MB run is one start event. The start is charged even if the run saves no results. Platform usage is included in the price.
Custom sources and support
Need another Gulf or Saudi tender portal, a custom field, or a bulk or daily feed? Email automat42@outlook.com. For questions or issues, you can also contact us from the Actor page.