Bahrain Tender Board Tenders Scraper
Pricing
from $3.50 / 1,000 tenders
Bahrain Tender Board Tenders Scraper
Bahrain government tenders from the Tender Board: tender number, subject, buying authority, publish, purchase and closing dates, initial bond, fees and description. Filter by keyword, authority, status or dates, and run it as a daily feed of new tenders.
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
Bahrain government tenders from the Tender Board (tenderboard.gov.bh), the body that publishes and awards public procurement for Bahraini ministries, authorities and state companies. One row per tender: tender number, subject, description, purchasing authority, publication, purchase-before and closing dates, initial bond, document fees, bid validity, contract duration and the tender's public detail page.
Use it for tender monitoring and alerts: schedule a daily run with an authority, keyword or date window and send the new tenders to email, Slack or a spreadsheet.
Use cases
- Watch Bahraini government tenders by authority, keyword or closing date.
- Build a daily feed of tenders before their offer deadline, with the bond and fees at hand.
- Find tenders reserved for SMEs, or with an alternate bid allowed.
- Send each opportunity straight to its official detail page for the documents.
What it returns
Every row has tenderId, tenderNumber, paReference, title, buyer, tenderType, procurementMethod, status, publishedAt, purchaseBeforeAt, deadlineAt, openingAt, description, notes, initialBond, tenderFees, bidValidityDays, contractDuration, alternateBidAllowed, smeOnly, currency, documents, url, changeType, changedFields, detailIssue, sourceQuery, source, country, scrapedAt and a few reserved fields (titleEnglish, category, estimatedValue) that stay null, explained below.
statusisopenuntil the printed closing date has passed, thenclosed.- Dates are ISO 8601 (
YYYY-MM-DD). The portal prints dates without a time, so no time is invented. descriptionandnotesare the published text, including any Arabic translation the authority added.initialBondandtenderFeesare in BHD. Neither is a contract estimate, soestimatedValuestays null.documentsis an empty list: the portal serves tender documents only through a signed-in purchase.urlis the tender's official public detail page.- If one tender's page cannot be read, the row is still delivered with
detailIssueexplaining what was missing. - Rows are deduplicated on the portal's tender id.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
keyword | string | "" | Text matched in the tender subject, e.g. maintenance. |
buyer | string | "" | Part of the purchasing authority name, e.g. Ministry of Works. |
tenderNumber | string | "" | Part of the tender number, e.g. IN/MOW/2025/559. |
status | string | any | open or closed according to the printed closing date. |
publishedFrom, publishedTo | string | "" | Publication window, YYYY-MM-DD. |
closingFrom, closingTo | string | "" | Offer deadline window, YYYY-MM-DD. |
maxItems | integer | 20 | Maximum tenders returned. |
includeDetails | boolean | true | Read each tender's page. Slower, and gives the full description and amounts. |
onlyNewSinceLastRun | boolean | false | Deliver only tenders that are new or changed since the last run. |
stateKey | string | "" | Optional name for this search's ledger. Defaults to a key derived from the filters. |
All filters are optional and can be combined. An empty input returns the latest published tenders, newest first.
Example queries
Tenders closing in the next two weeks:
{"status": "open","closingFrom": "2026-11-10","closingTo": "2026-11-24","maxItems": 50}
A daily feed of new Ministry of Works tenders:
{"buyer": "Ministry of Works","onlyNewSinceLastRun": true,"stateKey": "works-daily"}
One tender by number, with its full description:
{"tenderNumber": "IN/MOW/2025/559"}
Use it as a daily feed
Set onlyNewSinceLastRun and run the Actor on a schedule. The first run delivers
every tender that matches your filters. Later runs deliver only tenders that are
new, or whose dates, status, values or description changed, with changeType set
to new or changed and changedFields naming what moved. Every matched tender
that did not change is skipped, and the run summary says how many were skipped.
Use stateKey to keep separate ledgers for separate searches.
Output example
{"source":"tenderboard.gov.bh","country":"Bahrain","tenderId":"230460587","tenderNumber":"2/2026/MLSD (RFP/INT/MOSD/2026/2)","paReference":"RFP/INT/MOSD/2026/2","title":"Annual Comprehensive Maintenance Services for Firefighting, Fire Protection, and Fire Alarm Systems across Ministry Buildings","titleEnglish":null,"buyer":"Ministry of Social Development","category":null,"tenderType":"Internal","procurementMethod":"Public (LOCAL GCC)","status":"open","publishedAt":"2026-11-10","purchaseBeforeAt":"2026-11-23","deadlineAt":"2026-12-01","openingAt":"2026-12-02","estimatedValue":null,"currency":"BHD","documents":[],"url":"https://www.tenderboard.gov.bh/TenderDetails/?id=2%2f2026%2fMLSD+(RFP%2fINT%2fMOSD%2f2026%2f2)","changeType":null,"changedFields":null,"scrapedAt":"2026-11-10T08:36:38+00:00","sourceQuery":"published tenders","description":"The Ministry of Social Development (MOSD) intends to issue a tender for Annual Comprehensive Maintenance Services for Firefighting, Fire Protection, and Fire Alarm Systems across Ministry Buildings. Bidders wishing to participate must comply with the requirements and conditions contained in the tender documents.","notes":"ترغب وزارة التنمية الاجتماعية في طرح مناقصة خدمات الصيانة الشاملة السنوية لأنظمة مكافحة الحريق، والوقاية من الحريق، وأنظمة إنذار الحريق عبر مباني الوزارة. على مقدمي العطاءات الراغبين في المشاركة في هذه المناقصة التقيد بالمتطلبات والشروط والمواصفات والاحكام الواردة في وثائق المناقصة. The Ministry of Social Development (MOSD) intends to issue a tender for Annual Comprehensive Maintenance Services for Firefighting, Fire Protection, and Fire Alarm Systems across Ministry Buildings. Bidders wishing to participate must comply with the requirements and conditions contained in the tender documents.","initialBond":500.0,"tenderFees":15.0,"bidValidityDays":180,"contractDuration":"3 Year","alternateBidAllowed":false,"smeOnly":false,"detailIssue":null}
Limits and caveats
- The list is the portal's published-tender window (about a year, including tenders whose closing date has passed), newest first. Use
statusopento skip closed ones, and read it on a schedule to keep a complete history. - Keyword, authority and number filters are matched against the published text, so they follow the language of the source: subjects and descriptions are usually English, with Arabic where the authority wrote it.
statusfollows the printed closing date, not a separate portal status field.- Tender documents stay in the portal's purchase flow; the Actor delivers the public listing and detail data.
- If the source 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 the Tender Board portal live.
How do I get only new tenders each day? Set onlyNewSinceLastRun and schedule a daily run. Deduplicate across runs on tenderNumber if you prefer to manage the state yourself.
Do I need an account? No. Published tenders and their detail pages are public.
What happens when nothing matches? The run succeeds with 0 rows and a plain status message.
What if one tender's page fails? The row is still delivered with detailIssue set.
Price
Each saved tender is one result. When a per-event plan applies, the start event is charged per GB of memory; the default 512 MB run is one start event. The start is charged even when a search saves nothing. See the Pricing tab for current prices.
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.