Oman Tender Radar — Tender Board Government Tenders avatar

Oman Tender Radar — Tender Board Government Tenders

Pricing

from $3.50 / 1,000 tender delivereds

Go to Apify Store
Oman Tender Radar — Tender Board Government Tenders

Oman Tender Radar — Tender Board Government Tenders

Live Oman government tenders from the Tender Board e-tendering portal as clean JSON: tender number, title, entity, category and grades, type, sales end and closing dates, fee and bank guarantee in OMR, tender notice details, and bid-opening results.

Pricing

from $3.50 / 1,000 tender delivereds

Rating

0.0

(0)

Developer

Dottti

Dottti

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Get live Oman government tenders from the Tender Board e-tendering portal as clean JSON, CSV or Excel.

Filter by keyword, government entity and procurement category. Schedule it every morning and you have a tender alert feed for your sector.

The Actor reads two public lists:

  • New tenders. Tenders open for document purchase and bidding.
  • In process. Tenders whose bids were opened and are now under evaluation. Each record can carry the bid-opening report: every company that bid, the offer type and the total price in OMR.

Who uses this

  • Suppliers and contractors get a daily list of new tenders in their category.
  • Bid teams see the closing date, the fee and the bank guarantee before they buy the documents.
  • Sales and market analysts see who bid on each tender and at what price, from the opening reports.
  • Consultancies watch several entities or sectors for their clients.

Working in Saudi Arabia too? See Etimad Tender Radar for Saudi government tenders.

Daily tender alert in 3 steps

  1. Set your filters. For example, categoryContains = خدمات تقنية المعلومات and onlyOpen = true.
  2. Click Save as a new task, then add a daily schedule to the task.
  3. Connect the task to email, Slack or Google Sheets from the Integrations tab. New tenders then arrive every morning.

What you get

One record per tender. This record comes from a real run on 20 October 2026 (the long description and the calendar list are shortened here):

{
"tenderNumber": "2026/146/و ت س/ م ر -25",
"internalId": "99301",
"title": "توريد مواد لمصنع الصاروج التابع لوزارة التراث والسياحة",
"titleEnglish": "Supply of Materials for the Sarooj Factory of the Ministry of Heritage and Tourism",
"description": "المشروع عبارة عن توفير مواد خاصة بإنتاج مادة الصاروج ...",
"entity": "وزارة التراث والسياحة",
"category": "التوريدات",
"grades": ["الثالثة", "الرابعة"],
"tenderType": "مؤسسات صغيرة و المتوسطة",
"companyOrigin": "Local",
"view": "NewTenders",
"status": "New tenders (open for purchase and bidding)",
"isOpen": true,
"salesEndDate": "2026-11-10",
"bidClosingDate": "2026-11-30",
"actualOpeningDate": null,
"datesText": "Sales EndDate:10-11-2026-Bid Closing Date:30-11-2026",
"currency": "OMR",
"feeOmr": 25,
"bankGuarantee": { "amount": null, "unit": null, "electronic": null, "text": null },
"details": {
"floatingDate": "2026-10-20",
"evaluationType": "حسب الجدول الزمني",
"tenderScope": "محلية",
"subCategories": ["توريد مواد ومعدات البناء"],
"governorate": "محافظة مسقط",
"wilayats": ["ولاية مسقط"],
"envelopeType": "مظروف واحد",
"feePaymentMethod": "إلكتروني",
"dates": {
"documentSalesEnd": "2026-11-10T14:30:00+04:00",
"queriesEnd": "2026-11-19T14:30:00+04:00",
"bidSubmissionDeadline": "2026-11-30T10:00:00+04:00",
"financialBidOpening": "2026-11-30T11:00:00+04:00"
}
},
"openingReport": null,
"raw": {
"title": "توريد مواد لمصنع الصاروج التابع لوزارة التراث والسياحة",
"category": "التوريدات [الثالثة,الرابعة]",
"tenderType": "مؤسسات صغيرة و المتوسطة [ Local]",
"fee": "25"
},
"url": "https://etendering.tenderboard.gov.om/product/nitParameterView?mode=public&tenderNo=99301&..."
}

In the In process list, openingReport holds the opened bids. From the same day's run, tender 2026/4109/و ص/م ع خ ص ش ب م-216 (first 2 of 6 bids shown):

"openingReport": [
{ "bidSerial": "1-[1]", "company": "التقنيات الناشئة المتميزة", "offerType": "العرض الأساسي", "totalPriceOmr": 1706.25, "totalPriceRaw": "1706.250", "status": "تم فتح العطاء المالي" },
{ "bidSerial": "1-[2]", "company": "التقنيات الناشئة المتميزة", "offerType": "البديل1", "totalPriceOmr": 1942.5, "totalPriceRaw": "1942.500", "status": "تم فتح العطاء المالي" }
]

Notes on the fields

  • Money. All amounts are Omani rials. The currency field says OMR and the field names end in Omr.
  • Bank guarantee. The portal's list shows a bare number. That number is sometimes an OMR amount and sometimes a percent of the bid. The unit is only stated on the tender notice. With includeDetails on, bankGuarantee.unit is OMR or PERCENT_OF_BID. With it off, unit stays null.
  • Dates. The list gives dates only, as ISO dates (2026-11-30). The notice gives exact times in Oman time, as ISO with +04:00. The original text is kept in datesText and details.calendar.
  • Titles. title is the Arabic title. titleEnglish is filled when the notice's main title is in English. description is the longer description the portal attaches to the tender.
  • Raw text. Every record has a raw object with the text exactly as the portal published it, so you can search the portal for it.
  • Missing values are null. The Actor never fills a gap with a guess.
  • url opens the tender notice on the portal. It works without logging in.
  • openingReportUrl opens the bid-opening report. The portal serves it only with its session cookie. Open any portal page first, then the link.

Input

FieldWhat it does
viewNewTenders (default) or InProcessTenders.
keywordsWords matched against title, description, entity, category and tender number. Arabic and English both work. Empty returns everything the other filters allow.
matchModeany (default) or all.
entityContainsKeep tenders whose entity name contains this text, for example وزارة الصحة.
categoryContainsKeep tenders whose category contains this text, for example التوريدات or خدمات تقنية المعلومات.
onlyOpenNew tenders only. Drops tenders whose bid closing date has passed. On by default.
includeDetailsAdds the tender notice fields: English title, governorate, wilayat, sub-categories, exact times, guarantee unit. On by default.
includeOpeningReportIn process only. Adds the opened bids. On by default.
maxItemsHard cap on delivered tenders, and so on cost. Default 100.
maxPagesHow many list pages of 50 to read at most. Default 50.

Arabic keywords are matched after normalisation. اعمال matches أعمال, صيانه matches صيانة, and مستشفي matches مستشفى. Diacritics, tatweel and Arabic-Indic digits are handled.

Example: open IT tenders

{
"view": "NewTenders",
"categoryContains": "خدمات تقنية المعلومات",
"onlyOpen": true,
"maxItems": 200
}

Example: latest bid openings for Ministry of Health supply tenders

{
"view": "InProcessTenders",
"categoryContains": "التوريدات",
"entityContains": "وزارة الصحة",
"includeOpeningReport": true,
"maxItems": 100,
"maxPages": 10
}

Pricing

  • Tender delivered: $0.005 per tender that passes your filters and is stored in your dataset ($5 per 1,000).
  • Bid report: $0.02 extra per tender that carries a bid-opening report with every bidder and price ($20 per 1,000). Only In process tenders can have one. Turn off includeOpeningReport to skip it.

maxItems caps the cost of any run.

Limits

  • The portal shows 50 tenders per page. On 20 October 2026 the New tenders list had 46 pages (2,300 rows) and the In process list had 412 pages (about 20,550 rows).
  • The New tenders list still includes tenders from earlier years. On 20 October 2026, 912 of its 2,290 distinct tenders had a closing date today or later. Keep onlyOpen on to receive only those.
  • Keyword, entity and category filters run on the Actor's side. The portal's own search needs a signed browser form, so the Actor reads list pages and filters them. A narrow filter on the In process list may read many pages. Use maxPages to bound the run.
  • The order of the list can shift while a run is paging. The Actor removes duplicates by the portal's internal tender ID. In one full scan, 10 of 2,300 rows were repeats.
  • The Actor waits at least 1 second between requests. It retries with backoff on HTTP 429, 5xx and network errors. Each delivered tender costs one extra request with includeDetails, and one more with includeOpeningReport.
  • Tender documents are sold on the portal and are not downloaded. The record links to the tender notice.
  • Data comes from the public pages of the Tender Board portal. No login and no credentials are used.

Development

npm install
npm test # parser tests on saved live pages
apify run --purge # local run, reads storage/key_value_stores/default/INPUT.json