Malaysia Government Tenders API — MyProcurement, English-Keyed avatar

Malaysia Government Tenders API — MyProcurement, English-Keyed

Pricing

from $2.00 / 1,000 records

Go to Apify Store
Malaysia Government Tenders API — MyProcurement, English-Keyed

Malaysia Government Tenders API — MyProcurement, English-Keyed

Malaysian government tenders, quotations, requisitions and award results from MyProcurement (Ministry of Finance) — English field names, original Malay values, optional detail-page enrichment (eligibility, document price, briefing dates).

Pricing

from $2.00 / 1,000 records

Rating

0.0

(0)

Developer

Celest Jux

Celest Jux

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Structured, English-keyed feed of Malaysian government procurement notices from the official MyProcurement portal (myprocurement.treasury.gov.my), operated by the Kementerian Kewangan (Ministry of Finance) — English field names over the original Malay values, with optional detail-page enrichment: eligibility text, document-sale price, and briefing/site-visit dates.

Pengiklanan perolehan kerajaan Malaysia — iklan tender, sebut harga, requisition dan keputusan, dalam format berstruktur.

What you get

FieldTypeNotes
idstringPortal hash id (from the detail URL)
typeenumtender / quotation / requisition / result_tender / result_quotation
referenceNostringTender / quotation number as published
titlestringOriginal Malay title
ministrystring?nullAs shown on the portal (Malay, uppercase)
agencystring?nullAs shown on the portal
procurementCategorystring?nullBekalan / Kerja / Perkhidmatan Bukan Perunding / Perkhidmatan Perunding
kodBidangstring[]?nullField codes, e.g. ["B01","B04"]
advertisedDatedate?nullISO YYYY-MM-DD
closingDatedate?nullISO YYYY-MM-DD
resultDatedate?nullAward decision date (result types)
displayedResultDatedate?nullDate the result was published (result types)
indicativePriceMYRnumber?nullnull when the portal shows "Tiada Maklumat"
awardeesarray?null[{name, acceptedPriceMYR}] (result types)
briefingsarray[{date, venue, note?}] — note when details enabled
siteVisitsarray[{date, venue, note?}]
detailUrlstringAbsolute portal URL
scrapedAtdatetimeISO 8601 UTC
extraFieldsobjectAny other label/value pairs the portal exposed — nothing is dropped

With Include detail pages on, each record is enriched from its detail page:

FieldNotes
submissionOfficeTempat Tender Diterima
eligibilityTextTaraf Kelayakan (free text, e.g. CIDB registration)
twoEnvelopetrue / false / null
notesCatatan Iklan
descriptionDeskripsi Perolehan
documentSale{place, date, priceMYR, paymentMethod}
centreResponsible, validityPeriodDays, advertisementLocality, ...Quotation-specific fields
mofRegistrationNo, rocRegistrationNo, acceptanceLetterDateAwardee registration (result detail pages)

Missing values are null — never empty strings, never invented.

Input

{
"types": ["tender", "quotation"],
"keyword": "SEKOLAH",
"includeDetails": true,
"onlyNew": true,
"maxItems": 1000
}
KeyTypeDefaultNotes
typesarray["tender","quotation"]Any of: tender, quotation, requisition, result_tender, result_quotation
keywordstring—Title contains (portal-side filter)
ministriesarray—Exact names from the portal dropdown — see below
procurementCategoriesarray—Bekalan / Kerja / Perkhidmatan Bukan Perunding / Perkhidmatan Perunding
kodBidangarray—e.g. ["B01"] or ["060101"] — each value is a separate portal query
advertisedFrom / advertisedTodate—YYYY-MM-DD, Tarikh Pelawaan range (advertisements only)
closingAfterdate—Skip notices closing on/before this (client-side)
includeDetailsboolfalseFetch each notice's detail page
onlyNewboolfalseOnly records not pushed by your previous run (KV-backed)
maxItemsint1000Hard cap
maxTotalChargeUsdnumber0Pay-per-event budget cap; actor stops cleanly when reached

Ministries (exact spellings accepted by the portal)

Jabatan Perdana Menteri · Kementerian Pertanian dan Keterjaminan Makanan · Kementerian Komunikasi dan Multimedia · Kementerian Pertahanan · Kementerian Digital · Kementerian Perdagangan Dalam Negeri dan Kos Sara Hidup · Kementerian Ekonomi · Kementerian Pendidikan · Kementerian Peralihan Tenaga dan Transformasi Air · Kementerian Pembangunan Usahawan dan Koperasi · Kementerian Kewangan · Kementerian Luar Negeri · Kementerian Kesihatan · Kementerian Pendidikan Tinggi · Kementerian Dalam Negeri · Kementerian Perumahan dan Kerajaan Tempatan · Kementerian Sumber Manusia · Kementerian Kementerian Pelaburan, Perdagangan dan Industri · Kementerian Perpaduan Negara · Kementerian Sumber Asli dan Kelestarian Alam · Kementerian Kementerian Perladangan dan Komoditi · Kementerian Kemajuan Desa dan Wilayah · Kementerian Sains, Teknologi dan Inovasi · Kementerian Pelancongan, Seni dan Budaya · Kementerian Pengangkutan · Kementerian Pembangunan Wanita, Keluarga dan Masyarakat · Kementerian Kerja Raya · Kementerian Belia dan Sukan

(The doubled "Kementerian Kementerian" in two names is exactly as the portal spells them.)

Pricing (pay per event)

EventPrice
record — each notice pushed$0.002 ($2.00 / 1,000)
detail — extra per record with details on$0.001 ($1.00 / 1,000)

A full tender pull without details ≈ $2.24. Set maxTotalChargeUsd to bound your spend.

Notes & limits

  • Public data only — this actor reads publicly listed procurement notices. No login, no bypassing of access controls. Requests are rate-limited and honestly labelled (CelestJux-MyTenders/1.0).
  • Source: MyProcurement only. ePerolehan (the ministry's primary system) is not covered yet — it is a separate JSF-based portal, planned for a future version.
  • MyProcurement itself notes its listings may lag ePerolehan; for time-critical bidding, verify on ePerolehan before relying on closing dates.
  • Archives are not included in this version (open notices and recent results only).
  • Results datasets: the portal sometimes re-issues the same notice or points two reference numbers at one detail page; the actor deduplicates identical notices and keeps distinct reference numbers even when the portal merges their detail pages.
  • Values are kept in original Malay; field keys are English and stable.

Limitations / known walls

  • If the portal introduces captcha/challenge pages, the actor fails loudly and stops — it does not attempt evasion.
  • Server-side date filters apply to advertisements only (the results endpoint ignores them).