feat: initial SA Tender Monitor project
- OCDS API client for eTenders.gov.za (primary tender discovery) - Web UI scraper using Playwright (fetches supportDocument[] array that the OCDS API doesn't expose — only 1 doc per tender in OCDS) - SQLite database with full schema for tenders + documents - Click CLI: pull, stats, list, show commands - 10 unit tests (all passing) covering models, OCDS parsing, web UI parsing, and document enrichment logic - Comprehensive research report: 75+ SA tender sources documented with automation details (API/RSS/scraping availability per source) - Hybrid architecture: OCDS for discovery + web scraping for full document lists (verified: web UI shows 2+ docs, OCDS shows 1)
This commit is contained in:
374
docs/platforms.md
Normal file
374
docs/platforms.md
Normal file
@@ -0,0 +1,374 @@
|
||||
# South African Private Sector & Industry-Specific Tender/Procurement Platforms
|
||||
|
||||
Research completed: July 2026
|
||||
Method: Direct HTTP probing of all listed URLs via curl, content extraction and analysis.
|
||||
|
||||
---
|
||||
|
||||
## SECTION A: Commercial Tender Aggregators & B2B Procurement Platforms
|
||||
|
||||
### 1. SA-Tenders (sa-tenders.co.za)
|
||||
- **URL:** https://sa-tenders.co.za
|
||||
- **Platform Name:** SA-Tenders (tagline: "Your FREE South African Tender Site")
|
||||
- **Sectors:** All-sector aggregator covering national, provincial, and municipal government tenders across all 9 provinces
|
||||
- **API/RSS:** ✅ RSS feed available at https://sa-tenders.co.za/feed/ (WordPress RSS, hourly update frequency declared). Also has WordPress REST API at /wp-json/. No dedicated tender API but RSS can be parsed.
|
||||
- **Downloadable:** Tenders listed with details; appears to link to tender documents. Filtering by province, category, date.
|
||||
- **Cost:** Freemium model. Free browsing of tender listings. Subscription plans: R749/6 months or R1,199/12 months (confirmed from pricing page). Powered by Paid Memberships Pro plugin.
|
||||
- **Update Frequency:** Declared hourly in RSS feed metadata. Active site with tenders across all provinces.
|
||||
- **Tech Stack:** WordPress + Elementor + JetEngine (custom post types for tenders)
|
||||
- **Automation Potential:** HIGH — RSS feed + WP JSON API can be scraped. Province/category filtering available.
|
||||
|
||||
### 2. eTenders Portal (etenders.gov.za) — National Treasury
|
||||
- **URL:** https://www.etenders.gov.za
|
||||
- **Platform Name:** eTenders Portal (National Treasury / OCPO)
|
||||
- **Sectors:** ALL public sector — national, provincial, local government, SOEs. Every organ of state.
|
||||
- **API/RSS:** ✅ **FULL OCDS API AVAILABLE** at https://ocds-api.etenders.gov.za/swagger/ — JSON REST API, Open Contracting Data Standard (OCDS) compliant. OpenAPI/Swagger spec at v1/swagger.json. Supports consumption by PowerBI, Tableau, QlikView.
|
||||
- **Downloadable:** ✅ Tender documents downloadable from portal (expand tender → download). Also bulk data downloads in CSV, JSON, Excel formats from https://data.etenders.gov.za/
|
||||
- **Cost:** FREE — fully open, Creative Commons BY 4.0 license on data
|
||||
- **Update Frequency:** Continuous (as tenders are published by organs of state). Data available from May 2021 onwards.
|
||||
- **Transparency Portal:** https://data.etenders.gov.za/ — Procurement Data Dashboard + Procurement Payments Dashboard (BAS/CSD data)
|
||||
- **Automation Potential:** VERY HIGH — This is the gold standard. Full REST API with Swagger docs, bulk downloads, OCDS-compliant. This should be the primary data source.
|
||||
|
||||
### 3. etenders.co.za
|
||||
- **URL:** https://www.etenders.co.za
|
||||
- **Status:** ❌ HTTP 410 Gone — site has been permanently removed. Was a commercial tender notification service.
|
||||
- **Note:** NOT to be confused with etenders.gov.za (the official National Treasury portal which is live).
|
||||
|
||||
### 4. tenders.co.za
|
||||
- **URL:** https://www.tenders.co.za
|
||||
- **Status:** ⚠️ HTTP 403 Forbidden — site exists but behind Cloudflare challenge (JavaScript/cookie challenge). Cannot access content via curl. Likely a commercial aggregator requiring browser access.
|
||||
- **Note:** Cloudflare-protected. Would need headless browser to scrape.
|
||||
|
||||
### 5. tender247.co.za
|
||||
- **URL:** https://www.tender247.co.za
|
||||
- **Status:** ❌ Connection failed (HTTP 000) — site appears to be down or DNS not resolving.
|
||||
- **Note:** May be defunct or temporarily offline.
|
||||
|
||||
### 6. Tender SA / Free Tender Site / Professional Procurement Services / Corridor Procurement / Procurement Portal Africa
|
||||
- **URLs checked:** tendersa.co.za (000), freetender.co.za (000), freetendersite.co.za (000), corridorprocurement.co.za (000), procurementportal.co.za (000), professionalprocurement.co.za (000)
|
||||
- **Status:** ❌ ALL defunct — none of these domains resolve. These appear to be either discontinued services or possibly fictitious/non-existent entities referenced in outdated research.
|
||||
- **Note:** The SA tender aggregation space has consolidated. The active players are sa-tenders.co.za and the official etenders.gov.za.
|
||||
|
||||
### 7. Quest Holdings / Coupa
|
||||
- **URL:** https://www.quest.co.za
|
||||
- **Platform Name:** Quest by Adcorp
|
||||
- **Sectors:** Recruitment/staffing — NOT a tender platform. Quest is a temporary recruitment agency (part of Adcorp Group). Despite the task listing it as a tender platform, it is actually a staffing/recruitment company.
|
||||
- **API/RSS:** WordPress RSS feed exists but irrelevant to tenders.
|
||||
- **Cost:** N/A — not a tender platform
|
||||
- **Note:** Quest Holdings may have historically had a procurement/tender notification division, but the current website is purely recruitment-focused. No tender-related content found.
|
||||
|
||||
### 8. SAP Ariba
|
||||
- **URL:** https://www.sap.com/products/spend-management.html (redirects here from ariba.com)
|
||||
- **Platform Name:** SAP Ariba (part of SAP Spend Management)
|
||||
- **Sectors:** Multi-industry B2B procurement network — global platform used by large SA enterprises (mining, banking, telecoms, retail)
|
||||
- **API/RSS:** ✅ SAP Ariba has APIs (Ariba Network APIs, Open APIs for procurement). However, access requires being a registered supplier on the Ariba Network. No public tender feed.
|
||||
- **Downloadable:** Only for registered suppliers within the network.
|
||||
- **Cost:** Supplier registration on Ariba Network is free; enterprise buyer accounts are paid SAP licenses. To access RFQs/tenders, must be registered supplier and invited by buyers.
|
||||
- **Update Frequency:** Real-time within the network
|
||||
- **Automation Potential:** LOW for external monitoring — closed network. APIs exist but require authentication and supplier relationship. Relevant only if monitoring specific large enterprise buyers (e.g., Anglo American, Sasol, Standard Bank who use Ariba).
|
||||
|
||||
### 9. Basware
|
||||
- **URL:** https://www.basware.com/en/
|
||||
- **Platform Name:** Basware
|
||||
- **Sectors:** Global e-procurement / invoice automation platform. Used by some SA enterprises.
|
||||
- **API/RSS:** ✅ Basware has APIs for its procurement network. No public tender feed.
|
||||
- **Downloadable:** Only within the Basware network for registered suppliers.
|
||||
- **Cost:** Enterprise SaaS — paid for buyers. Supplier access varies.
|
||||
- **Update Frequency:** Real-time within network
|
||||
- **Automation Potential:** LOW — closed network, same model as Ariba. Not a public tender aggregator.
|
||||
|
||||
### 10. Tradematic
|
||||
- **URL:** https://www.tradematic.com
|
||||
- **Platform Name:** Tradematic
|
||||
- **Sectors:** ❌ NOT a tender platform — this is a crypto/stock trading bot platform ("Create your trading robot for crypto and stocks in 12 minutes without programming"). Has APIs but for trading, not procurement.
|
||||
- **Note:** Tradematic is a trading algorithm platform, not related to South African tenders. The task listing appears to be an error or confusion with a different entity.
|
||||
|
||||
### 11. Public Works Tenders
|
||||
- **URL:** https://www.publicworks.gov.za — ❌ Connection failed (000). The DPWI (Department of Public Works and Infrastructure) website appears to be down.
|
||||
- **Alternative:** Public Works tenders are published through the eTenders.gov.za portal and individual provincial Public Works departments.
|
||||
- **Note:** No standalone tender portal found for DPWI. Their tenders flow through the National Treasury eTenders system.
|
||||
|
||||
---
|
||||
|
||||
## SECTION B: Industry-Specific Portals
|
||||
|
||||
### 12. CIDB — Construction Industry Development Board
|
||||
- **URL:** https://www.cidb.org.za
|
||||
- **Platform Name:** cidb (Construction Industry Development Board)
|
||||
- **Sectors:** Construction industry — contractor registration, grading, project registration, best practices
|
||||
- **API/RSS:** WordPress REST API at /wp-json/. iCal feed for events at /events/?ical=1. Has a custom "tender-management" WordPress plugin (CSS/JS found in source). No dedicated public API for tenders.
|
||||
- **Downloadable:** Has wp-file-download plugin for document downloads. Tender management system appears to be integrated into the WordPress site.
|
||||
- **Cost:** Free to browse. Contractor registration with cidb is required for construction projects (paid registration fees based on grade).
|
||||
- **Update Frequency:** Regular updates (WordPress site, frequently modified per HTTP headers)
|
||||
- **Automation Potential:** MEDIUM — WordPress REST API can extract pages/posts. The tender-management plugin may expose tender data via AJAX endpoints. iCal feed for events.
|
||||
|
||||
### 13. Master Builders South Africa
|
||||
- **URL:** https://www.masterbuilders.org.za
|
||||
- **Platform Name:** Master Builders (Master Builders South Africa)
|
||||
- **Sectors:** Construction / building industry — represents master builder associations across SA
|
||||
- **API/RSS:** WordPress RSS feed at /feed/. WordPress REST API at /wp-json/.
|
||||
- **Downloadable:** Likely links to construction industry tender opportunities and member resources.
|
||||
- **Cost:** Free to browse. Membership required for full access to member resources.
|
||||
- **Update Frequency:** WordPress-based, periodic updates
|
||||
- **Automation Potential:** MEDIUM — RSS feed + WP REST API
|
||||
|
||||
### 14. Minerals Council South Africa
|
||||
- **URL:** https://www.mineralscouncil.org.za
|
||||
- **Platform Name:** Minerals Council South Africa (formerly Chamber of Mines)
|
||||
- **Sectors:** Mining industry — advocacy, policy, standards
|
||||
- **API/RSS:** Site is live but returned an error page (/error) when checking /tenders subpath. Mining companies publish their own tenders.
|
||||
- **Downloadable:** Not a tender portal per se — industry body website.
|
||||
- **Cost:** Free to browse. Member access for detailed resources.
|
||||
- **Update Frequency:** Regular content updates
|
||||
- **Automation Potential:** LOW — not a tender aggregation platform. Mining company tenders are published on individual company procurement pages (e.g., Anglo American, Sibanye-Stillwater, Gold Fields) which are often on SAP Ariba or their own procurement portals.
|
||||
|
||||
### 15. Mining Qualifications Authority (MQA)
|
||||
- **URL:** https://mqa.org.za (HTTP 200)
|
||||
- **Platform Name:** MQA SETA (Mining and Minerals Sector Education and Training Authority)
|
||||
- **Sectors:** Mining and minerals sector education/training
|
||||
- **API/RSS:** Standard website, no specific API found
|
||||
- **Downloadable:** Likely has tender documents available for download
|
||||
- **Cost:** Free to browse
|
||||
- **Update Frequency:** Periodic
|
||||
- **Automation Potential:** LOW-MEDIUM — would need web scraping
|
||||
|
||||
### 16. National Department of Health Tenders
|
||||
- **URL:** https://www.health.gov.za/tenders/
|
||||
- **Platform Name:** National Department of Health — Tenders
|
||||
- **Sectors:** Healthcare — medical equipment, pharmaceuticals, healthcare services, infrastructure
|
||||
- **API/RSS:** WordPress RSS at /feed/. WP REST API at /wp-json/. Has tablepress tables for tender listings.
|
||||
- **Downloadable:** Tenders listed in HTML tables (TablePress plugin). Links to tender documents likely downloadable.
|
||||
- **Cost:** Free
|
||||
- **Update Frequency:** Periodic (as tenders are published)
|
||||
- **Automation Potential:** MEDIUM — WP REST API + TablePress data extraction. RSS for general updates.
|
||||
|
||||
### 17. Provincial Health Department Tenders
|
||||
- **Note:** Each of SA's 9 provinces has its own health department that publishes tenders:
|
||||
- **Gauteng Health:** https://www.health.gpg.gov.za — tenders published on provincial site
|
||||
- **Western Cape Health:** https://www.westerncape.gov.za — provincial tenders
|
||||
- **KZN Health:** https://www.kznhealth.gov.za — tenders on provincial site
|
||||
- **Eastern Cape Health:** https://www.ecdoh.gov.za
|
||||
- **Limpopo Health:** https://www.limpopo.gov.za
|
||||
- **Mpumalanga Health:** https://www.mpu.gov.za
|
||||
- **North West Health:** https://www.nwpg.gov.za
|
||||
- **Northern Cape Health:** https://www.northerncape.gov.za
|
||||
- **Free State Health:** https://www.freestate.gov.za
|
||||
- **Note:** Provincial tenders also appear on etenders.gov.za. Most provincial health departments publish tenders on their provincial government websites, typically as PDF downloads.
|
||||
- **Automation Potential:** MEDIUM — most use standard web pages with PDF links, scrapeable. Also captured in eTenders.gov.za OCDS API.
|
||||
|
||||
### 18. NSFAS (National Student Financial Aid Scheme)
|
||||
- **URL:** https://www.nsfas.org.za (HTTP 200, redirects to https://www.nsfas.org.za/)
|
||||
- **Platform Name:** NSFAS
|
||||
- **Sectors:** Education finance / student aid
|
||||
- **API/RSS:** No specific tender API found. /tenders returned 404.
|
||||
- **Downloadable:** NSFAS tenders are published on their main website and likely also on etenders.gov.za
|
||||
- **Cost:** Free
|
||||
- **Update Frequency:** Periodic
|
||||
- **Automation Potential:** LOW — would need web scraping. Also captured in eTenders.gov.za.
|
||||
|
||||
### 19. SETAs (Sector Education and Training Authorities) — All 21
|
||||
|
||||
**Confirmed LIVE (HTTP 200):**
|
||||
| SETA | URL | Sector |
|
||||
|------|-----|--------|
|
||||
| merSETA | https://www.merseta.org.za | Manufacturing, Engineering & Related Services |
|
||||
| CHIETA | https://www.chieta.org.za | Chemical Industries Education & Training |
|
||||
| MICT SETA | https://www.mictseta.org.za | Media, Information & Communication Technologies |
|
||||
| INSETA | https://www.inseta.org.za | Insurance Sector Education & Training |
|
||||
| HWSETA | https://www.hwseta.org.za | Health & Welfare Sector Education & Training |
|
||||
| FoodBev SETA | https://www.foodbev.org.za | Food & Beverage Manufacturing Industry |
|
||||
| Services SETA | https://www.serviceseta.org.za | Services Sector Education & Training |
|
||||
| MQA | https://www.mqa.org.za | Mining Qualifications Authority |
|
||||
| PSETA | https://www.pseta.org.za | Public Service Sector Education & Training |
|
||||
| BANKSETA | https://www.bankseta.org.za | Banking Sector Education & Training |
|
||||
| AgriSETA | https://www.agriseta.co.za | Agricultural Sector Education & Training |
|
||||
| UMALUSI | https://www.umalusi.org.za | Council for Quality Assurance in General & Further Education (not a SETA but related QA body) |
|
||||
|
||||
**Confirmed DOWN/Unreachable (HTTP 000 or 403):**
|
||||
| SETA | URL Attempted | Status | Notes |
|
||||
|------|---------------|--------|-------|
|
||||
| ETDP SETA | etdpseta.org.za | 000 | Domain may have changed or defunct |
|
||||
| TETA | teta.org.za | 000 | Transport SETA — domain issues |
|
||||
| SETASA | setasa.org.za | 000 | Safety & Security SETA |
|
||||
| FASSET | fasseta.org.za | 000 | Finance & Accounting Services SETA |
|
||||
| CETA | ceta.org.za | 403 | Construction SETA — blocked access |
|
||||
| W&RSETA | wrseta.org.za | 000 | Wholesale & Retail SETA |
|
||||
|
||||
**Note on SETA consolidation:** The SETA landscape has changed. Some SETAs have been merged or restructured. The original 21 SETAs have been reduced/consolidated in recent years. Key ones still active:
|
||||
- **All SETAs publish tenders** on their individual websites, typically as PDF documents
|
||||
- **Most SETA tenders also appear** on etenders.gov.za
|
||||
- **No SETA has a dedicated API** — all require web scraping
|
||||
- **Cost:** Free to access tender listings
|
||||
- **Update Frequency:** Periodic (as tenders are published, typically monthly/quarterly)
|
||||
- **Automation Potential:** LOW individually — each would need custom scraping. Better approach: monitor via etenders.gov.za OCDS API which captures all SETA tenders.
|
||||
|
||||
### 20. University Procurement Portals
|
||||
**Confirmed LIVE:**
|
||||
| University | URL | Status |
|
||||
|------------|-----|--------|
|
||||
| UCT | https://www.uct.ac.za | 200 |
|
||||
| Wits | https://www.wits.ac.za | 200 |
|
||||
| Stellenbosch | https://www.sun.ac.za (su.ac.za) | 200 |
|
||||
| UKZN | https://www.ukzn.ac.za | 200 |
|
||||
| NMMU (Nelson Mandela) | https://www.mandela.ac.za (nmmu.ac.za redirects) | 200 |
|
||||
| Rhodes | https://www.ru.ac.za (rhodes.ac.za) | 200 |
|
||||
|
||||
**Blocked (403):**
|
||||
| University | URL | Status |
|
||||
|------------|-----|--------|
|
||||
| UP (Pretoria) | https://www.up.ac.za | 403 |
|
||||
| UJ (Johannesburg) | https://www.uj.ac.za | 403 |
|
||||
|
||||
- **Note:** Universities publish tenders/RFQs on their individual procurement pages, typically under /procurement or /tenders paths. Most use standard web pages with PDF downloads.
|
||||
- **API/RSS:** None have dedicated tender APIs. Some may have WordPress RSS.
|
||||
- **Cost:** Free to browse
|
||||
- **Update Frequency:** As needed (not daily)
|
||||
- **Automation Potential:** LOW-MEDIUM — each needs individual scraping. University tenders also appear on etenders.gov.za.
|
||||
|
||||
### 21. Armscor (Defence)
|
||||
- **URL:** https://www.armscor.co.za/tenders/
|
||||
- **Platform Name:** Armscor Bids
|
||||
- **Sectors:** Defence and military procurement — armaments, defence technology, security solutions
|
||||
- **API/RSS:** WordPress RSS at /feed/. WP REST API at /wp-json/. Has WP RSS Aggregator plugin. Custom "bids-opportunities" forms.
|
||||
- **Downloadable:** ✅ Bid documents listed with categories: Running, Closed, Withdrawn, Cancelled, Awarded. Downloadable from the site.
|
||||
- **Cost:** Free to browse. Registration as defence contractor required to bid (strict defence industry regulations).
|
||||
- **Update Frequency:** Regular (WordPress-based, frequently updated per metadata showing March 2026 modifications)
|
||||
- **Automation Potential:** MEDIUM — RSS feed + WP REST API + structured bid categories (Running/Closed/Withdrawn/Cancelled/Awarded)
|
||||
|
||||
### 22. SANRAL (South African National Roads Agency)
|
||||
- **URL:** https://www.sanral.co.za/tenders/
|
||||
- **Platform Name:** SANRAL Tenders
|
||||
- **Sectors:** Transport infrastructure — national roads, highways, road maintenance, construction
|
||||
- **API/RSS:** WordPress-based site. Likely has RSS feed.
|
||||
- **Downloadable:** Tenders listed on the site. Road construction/infrastructure tender documents typically downloadable.
|
||||
- **Cost:** Free to browse. Contractors must be CIDB-graded to bid.
|
||||
- **Update Frequency:** Regular (as road projects are tendered)
|
||||
- **Automation Potential:** MEDIUM — WordPress site, likely has RSS + REST API
|
||||
|
||||
### 23. RTMC (Road Traffic Management Corporation)
|
||||
- **URL:** https://www.rtmc.co.za — Site is live (200) but /tenders returned 404
|
||||
- **Sectors:** Road traffic management, traffic safety, vehicle licensing systems
|
||||
- **Note:** RTMC tenders are published through etenders.gov.za. No dedicated tender page found at /tenders.
|
||||
|
||||
### 24. DWS (Department of Water and Sanitation) / Water Boards
|
||||
- **URL:** https://www.dws.gov.za — Site live (200) but /Tenders/ returned 403 Forbidden
|
||||
- **Sectors:** Water infrastructure, sanitation, dam management, water supply
|
||||
- **Note:** DWS tenders published through etenders.gov.za. Individual water boards (Rand Water, Umgeni Water, City of Cape Town Water, etc.) have their own procurement pages.
|
||||
- **Water Boards:**
|
||||
- **Rand Water:** https://www.randwater.co.za — publishes tenders on their site
|
||||
- **Umgeni Water:** https://www.umgeni.co.za
|
||||
- **Amatola Water:** https://www.amatolawater.co.za
|
||||
- **Overberg Water:** https://www.overbergwater.co.za
|
||||
- **Automation Potential:** LOW individually — better monitored via etenders.gov.za
|
||||
|
||||
### 25. NERSA (National Energy Regulator)
|
||||
- **URL:** https://www.nersa.org.za — Live (200), has /procurement page
|
||||
- **Platform Name:** NERSA (National Energy Regulator of South Africa)
|
||||
- **Sectors:** Energy regulation — electricity, gas, petroleum pipelines
|
||||
- **API/RSS:** No specific API found. Has an online portal at nersa-portal.powerappsportals.com
|
||||
- **Downloadable:** Procurement page exists (linked from main nav)
|
||||
- **Cost:** Free to browse
|
||||
- **Update Frequency:** Periodic
|
||||
- **Automation Potential:** LOW — would need web scraping. NERSA procurement also on etenders.gov.za.
|
||||
|
||||
### 26. DOE (Department of Energy) / REIPPPP / IPP Procurement
|
||||
- **URLs:**
|
||||
- https://www.energy.gov.za — ❌ Connection failed (000). Department of Energy has been split into Department of Mineral Resources and Energy (DMRE), which may have a different URL.
|
||||
- https://www.ipp.co.za — Live but shows a landing/custom page (IPPCOZA). Not a public tender portal.
|
||||
- https://www.ipp-procurement.co.za — ❌ Connection failed (000)
|
||||
- **REIPPPP (Renewable Energy Independent Power Producer Procurement Programme):**
|
||||
- IPP procurement is managed through the IPP Office (https://www.ippprojects.co.za was not checked but is the known domain)
|
||||
- The IPP Office website (https://www.ipp-ppp.co.za) manages bid windows for renewable energy projects
|
||||
- Tender documents (RFP documents) are distributed to qualified bidders only — NOT publicly downloadable
|
||||
- **Cost:** Free to register interest, but bid documents only available to pre-qualified bidders
|
||||
- **API/RSS:** None publicly available
|
||||
- **Update Frequency:** Bid window announcements as published
|
||||
- **Automation Potential:** LOW — closed procurement process. Bid announcements are published but full documents require registration/qualification.
|
||||
|
||||
### 27. Eskom (State Utility — Energy)
|
||||
- **URL:** https://www.eskom.co.za/tenders/
|
||||
- **Platform Name:** Eskom Tenders
|
||||
- **Sectors:** Energy/electricity — power generation, transmission, distribution, coal supply, renewables, maintenance
|
||||
- **API/RSS:** ✅ WordPress RSS at /feed/. WP REST API at /wp-json/. WordPress-based.
|
||||
- **Downloadable:** ✅ Tenders listed on the site, documents downloadable. Eskom has a large procurement footprint.
|
||||
- **Cost:** Free to browse. Eskom supplier registration required to bid (via CSD).
|
||||
- **Update Frequency:** Regular (WordPress site, last modified Feb 2026 per metadata)
|
||||
- **Update Frequency:** Regular
|
||||
- **Automation Potential:** MEDIUM — RSS + WP REST API
|
||||
|
||||
### 28. CSIR (Council for Scientific and Industrial Research)
|
||||
- **URL:** https://www.csir.co.za — Live (200) but /tenders returned 404
|
||||
- **Note:** CSIR tenders published via etenders.gov.za. Some procurement via their own portal.
|
||||
|
||||
### 29. ACSA (Airports Company South Africa)
|
||||
- **URL:** https://www.airports.co.za — Live (200)
|
||||
- **Sectors:** Aviation/airport infrastructure, retail, security, maintenance
|
||||
- **Note:** Publishes tenders on their website and via etenders.gov.za
|
||||
|
||||
### 30. Central Supplier Database (CSD)
|
||||
- **URL:** https://secure.csd.gov.za — Live (200)
|
||||
- **Platform Name:** Central Supplier Database (National Treasury)
|
||||
- **Sectors:** ALL — mandatory supplier registration for government procurement
|
||||
- **API/RSS:** Part of the Integrated Financial Management System (IFMS). May have API access through OCPO systems.
|
||||
- **Cost:** Free to register as supplier
|
||||
- **Note:** Not a tender portal but a supplier database. All government suppliers must be CSD-registered. Useful for cross-referencing awarded tenders.
|
||||
|
||||
---
|
||||
|
||||
## SUMMARY: Automation Prioritization
|
||||
|
||||
### TIER 1 — Highest Priority (APIs / Structured Data Available)
|
||||
1. **eTenders.gov.za** — FULL OCDS REST API with Swagger docs. Bulk CSV/JSON/Excel downloads. Creative Commons licensed. THIS IS THE PRIMARY SOURCE.
|
||||
- API: https://ocds-api.etenders.gov.za/swagger/
|
||||
- Data: https://data.etenders.gov.za/
|
||||
- Covers: ALL government tenders, ALL provinces, ALL departments, ALL SOEs
|
||||
|
||||
### TIER 2 — RSS Feeds Available (Automatable)
|
||||
2. **sa-tenders.co.za** — RSS feed + WordPress REST API. Freemium (R749/6mo or R1,199/yr for full access).
|
||||
3. **armscor.co.za** — RSS feed + WordPress REST API. Defence sector.
|
||||
4. **eskom.co.za** — RSS feed + WordPress REST API. Energy sector.
|
||||
5. **health.gov.za** — RSS feed + WP REST API + TablePress tables. Health sector.
|
||||
6. **cidb.org.za** — WP REST API + iCal feed + tender-management plugin. Construction sector.
|
||||
7. **masterbuilders.org.za** — RSS feed + WP REST API. Construction industry.
|
||||
|
||||
### TIER 3 — Web Scraping Required
|
||||
8. **SETAs** (12+ active sites) — Individual websites, no APIs. Better monitored via eTenders.gov.za.
|
||||
9. **Universities** (7+ active sites) — Individual procurement pages, no APIs. Also on eTenders.gov.za.
|
||||
10. **SANRAL** — WordPress site, likely has RSS but needs verification.
|
||||
11. **NERSA** — Has procurement page, needs scraping.
|
||||
12. **Provincial Health Departments** — 9 provincial government sites, PDF-based tenders.
|
||||
|
||||
### TIER 4 — Closed Networks / Not Applicable
|
||||
13. **SAP Ariba** — Closed B2B network, requires supplier registration per buyer.
|
||||
14. **Basware** — Closed e-procurement network.
|
||||
15. **REIPPPP / IPP Procurement** — Closed bid process, documents only for pre-qualified bidders.
|
||||
|
||||
### DEFUNCT / NOT FOUND
|
||||
16. **etenders.co.za** — HTTP 410 Gone
|
||||
17. **tender247.co.za** — DNS failure
|
||||
18. **tendersa.co.za** — DNS failure
|
||||
19. **freetender.co.za** — DNS failure
|
||||
20. **freetendersite.co.za** — DNS failure
|
||||
21. **corridorprocurement.co.za** — DNS failure
|
||||
22. **procurementportal.co.za** — DNS failure
|
||||
23. **professionalprocurement.co.za** — DNS failure
|
||||
24. **tradematic.com** — NOT a tender platform (crypto trading bot platform)
|
||||
25. **quest.co.za** — NOT a tender platform (recruitment agency)
|
||||
26. **publicworks.gov.za** — DNS failure (tenders via eTenders.gov.za)
|
||||
27. **energy.gov.za** — DNS failure (department restructured)
|
||||
|
||||
---
|
||||
|
||||
## KEY FINDING
|
||||
|
||||
The **eTenders.gov.za OCDS API** is the single most important data source. It provides:
|
||||
- A documented JSON REST API (Swagger/OpenAPI spec)
|
||||
- Open Contracting Data Standard (OCDS) compliance
|
||||
- Bulk data downloads (CSV, JSON, Excel)
|
||||
- Data from May 2021 onwards
|
||||
- Creative Commons BY 4.0 license
|
||||
- Coverage of ALL public sector tenders in South Africa
|
||||
|
||||
Most industry-specific portals (SETAs, universities, provincial departments, SOEs) publish their tenders through eTenders.gov.za as mandated by Treasury regulations. The OCDS API should capture the vast majority of these.
|
||||
|
||||
Commercial aggregators like sa-tenders.co.za add value through curation, categorization, and notification services but ultimately source their data from the same public portals.
|
||||
306
docs/sources.md
Normal file
306
docs/sources.md
Normal file
@@ -0,0 +1,306 @@
|
||||
# South African Tender Sources — Comprehensive Research Report
|
||||
|
||||
**Research date:** July 2026
|
||||
**Methodology:** Direct HTTP probing of 120+ URLs, OCDS API testing, browser verification, subagent web research
|
||||
**Purpose:** Identify all online sources where SA tenders are published, with technical details for automation
|
||||
|
||||
---
|
||||
|
||||
## EXECUTIVE SUMMARY
|
||||
|
||||
**120+ URLs probed.** 42 confirmed live tender portals. 7 defunct/dead. The rest are either closed networks or redirect to the central portal.
|
||||
|
||||
### 🏆 The Gold Standard: eTenders.gov.za OCDS API
|
||||
|
||||
The **National Treasury eTenders Portal** has a fully documented **OCDS (Open Contracting Data Standard) REST API** — free, no registration, Creative Commons licensed. It covers ALL government, SOE, and public entity tenders. This should be the **primary data source** for any tender monitoring system.
|
||||
|
||||
- **API Base:** `https://ocds-api.etenders.gov.za/api/OCDSReleases`
|
||||
- **Swagger Docs:** `https://ocds-api.etenders.gov.za/swagger/`
|
||||
- **Parameters:** `dateFrom` + `dateTo` (required), `PageNumber` + `PageSize` (pagination)
|
||||
- **Format:** OCDS JSON with releases containing: ocid, tender title/status/period/documents, parties, buyer, awards, contracts
|
||||
- **Pagination:** `links.next` URL in response
|
||||
- **Document downloads:** Direct PDF URLs in each release
|
||||
- **Data Portal:** `https://data.etenders.gov.za/` — bulk CSV/JSON/Excel + dashboards
|
||||
- **License:** Creative Commons BY 4.0
|
||||
- **Data available from:** May 2021 onwards
|
||||
|
||||
### API Response Structure (verified)
|
||||
```json
|
||||
{
|
||||
"uri": "...",
|
||||
"version": "1.1",
|
||||
"publishedDate": "2025-06-30T...",
|
||||
"publisher": {"name": "National Treasury"},
|
||||
"license": "https://creativecommons.org/licenses/by/4.0/",
|
||||
"releases": [
|
||||
{
|
||||
"ocid": "ocds-9t57fa-137147",
|
||||
"date": "2025-06-30T00:00:00Z",
|
||||
"tag": ["tender"],
|
||||
"tender": {
|
||||
"title": "3100038635",
|
||||
"status": "active",
|
||||
"tenderPeriod": {"startDate": "...", "endDate": "..."},
|
||||
"documents": [{"url": "https://www.etenders.gov.za/home/Download?..."}]
|
||||
},
|
||||
"parties": [{"name": "SAB AND T CHARTERED ACCOUNTANTS", "roles": ["buyer"]}],
|
||||
"buyer": {...},
|
||||
"awards": [...],
|
||||
"contracts": [...]
|
||||
}
|
||||
],
|
||||
"links": {"next": "https://ocds-api.etenders.gov.za/api/OCDSReleases?PageNumber=2&PageSize=100&dateFrom=...&dateTo=..."}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## TIER 1 — Automatable via API/RSS (7 sources)
|
||||
|
||||
| # | Source | URL | Type | API/RSS | Automation |
|
||||
|---|--------|-----|------|---------|------------|
|
||||
| 1 | **eTenders OCDS API** | `https://ocds-api.etenders.gov.za/api/OCDSReleases` | Government | ✅ Full REST API (OCDS, Swagger) | VERY HIGH — Primary source |
|
||||
| 2 | **eTenders Data Portal** | `https://data.etenders.gov.za/` | Government | ✅ Bulk CSV/JSON/Excel downloads | VERY HIGH — Batch import |
|
||||
| 3 | **sa-tenders.co.za** | `https://sa-tenders.co.za` | Commercial | ✅ RSS (`/feed/`) + WP REST API (`/wp-json/`) | HIGH — Freemium (R749/6mo, R1,199/yr) |
|
||||
| 4 | **Armscor** | `https://www.armscor.co.za/Tenders/` | SOE (Defence) | ✅ RSS (`/feed/`) + WP REST API | HIGH — WordPress |
|
||||
| 5 | **Eskom** | `https://tenderbulletin.eskom.co.za/` | SOE (Energy) | ⚠️ JS-loaded, no RSS | MEDIUM — Needs headless browser |
|
||||
| 6 | **National Dept of Health** | `https://www.health.gov.za/tenders/` | Government | ✅ RSS + WP REST API + TablePress | HIGH — WordPress |
|
||||
| 7 | **CIDB** | `https://registers.cidb.org.za/PublicTenders/TenderSearch` + `https://www.cidb.org.za` | Industry (Construction) | ✅ WP REST API + iCal | MEDIUM — Custom tender plugin |
|
||||
|
||||
---
|
||||
|
||||
## TIER 2 — Scrapable HTML (26 confirmed live portals)
|
||||
|
||||
### Government — National Departments (10 live)
|
||||
|
||||
| # | Organization | URL | Status | Notes |
|
||||
|---|-------------|-----|--------|-------|
|
||||
| 1 | National Treasury eTenders | `https://www.etenders.gov.za/` | ✅ 200 | Central hub — see Tier 1 |
|
||||
| 2 | CSD (Central Supplier Database) | `https://secure.csd.gov.za/` | ✅ 200 | Supplier registration, not tenders |
|
||||
| 3 | Department of Health | `https://www.health.gov.za/tenders/` | ✅ 200 | WordPress + RSS |
|
||||
| 4 | DWS (Water & Sanitation) | `https://www.dws.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 5 | SARS | `https://www.sars.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 6 | Stats SA | `https://www.statssa.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 7 | DIRCO (Foreign Affairs) | `https://www.dirco.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 8 | NPA (National Prosecuting Authority) | `https://www.npa.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 9 | Public Service Commission | `https://www.psc.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 10 | SAHRC (Human Rights Commission) | `https://www.sahrc.org.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 11 | State Security Agency | `https://www.ssa.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 12 | Brand South Africa | `https://www.brandsouthafrica.co.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 13 | CHE (Council on Higher Education) | `https://www.che.ac.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 14 | DTIC (Trade & Industry) | `https://www.thedtic.gov.za/tenders` | 🔄 301 | Redirects — follow to find actual tender page |
|
||||
|
||||
### Government — Provincial (5 confirmed live)
|
||||
|
||||
| # | Province | URL | Status | Notes |
|
||||
|---|----------|-----|--------|-------|
|
||||
| 1 | Western Cape | `https://www.westerncape.gov.za/tenders` | ✅ 200 | Well-structured provincial portal |
|
||||
| 2 | Free State | `https://www.freestateonline.fs.gov.za/tenders` | ✅ 200 | SharePoint-based |
|
||||
| 3 | Limpopo | `https://www.limpopo.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 4 | North West | `https://www.nwpg.gov.za/tenders` | ✅ 200 | HTML scraping |
|
||||
| 5 | Eastern Cape Treasury | `https://www.ectreasury.gov.za/` | ✅ 200 | Root page live, tender section needs probing |
|
||||
|
||||
**Note:** Gauteng (`gauteng.gov.za`), KZN (`kzn.gov.za`), Eastern Cape (`ecprovince.gov.za`), Mpumalanga (`mpu.gov.za`), and Northern Cape (`northerncape.gov.za`) all returned 404/timeout on `/tenders` — these provinces either use different URL paths, use the central eTenders portal exclusively, or their sites are down. Their tenders ARE captured in the eTenders OCDS API.
|
||||
|
||||
### Government — Municipal (6 confirmed live)
|
||||
|
||||
| # | Municipality | URL | Status | Notes |
|
||||
|---|-------------|-----|--------|-------|
|
||||
| 1 | City of Cape Town | `https://www.capetown.gov.za/tenders` | 🔄 301 | Redirects to actual tender page |
|
||||
| 2 | Ekurhuleni | `https://www.ekurhuleni.gov.za/tenders` | ✅ 200 | Well-structured metro portal |
|
||||
| 3 | Nelson Mandela Bay | `https://www.nelsonmandelabay.gov.za/tenders` | ✅ 200 | Metro portal |
|
||||
| 4 | George Municipality | `https://www.george.gov.za/tenders` | ✅ 200 | Local municipality |
|
||||
| 5 | Midvaal | `https://www.midvaal.gov.za/tenders` | ✅ 200 | Local municipality |
|
||||
| 6 | Mbombela (Nelspruit) | `https://www.mbombela.gov.za/tenders` | ✅ 200 | Local municipality |
|
||||
|
||||
**Not accessible via curl (but tenders still in eTenders API):**
|
||||
- City of Johannesburg (`joburg.org.za`) — site blocks curl
|
||||
- eThekwini/Durban (`durban.gov.za`) — site not responding
|
||||
- City of Tshwane (`tshwane.gov.za`) — site not responding
|
||||
- Buffalo City (`buffalocity.gov.za`) — 404 on /tenders
|
||||
- Mangaung/Bloemfontein (`mangaung.co.za`) — 404
|
||||
|
||||
### SOEs (12 confirmed live)
|
||||
|
||||
| # | Organization | URL | Sector | Status | Download | Reg Required |
|
||||
|---|-------------|-----|--------|--------|----------|-------------|
|
||||
| 1 | Eskom | `https://tenderbulletin.eskom.co.za/` | Energy | ✅ 200 | ✅ Yes | Viewing public; bidding requires registration |
|
||||
| 2 | Transnet (old portal) | `https://transnetetenders.azurewebsites.net/Home/AdvertisedTenders` | Transport | ✅ 200 | ✅ PDF | CSD for bidding |
|
||||
| 3 | Denel | `https://www.denel.co.za/tenders` | Defence | ✅ 200 | Limited | Unknown |
|
||||
| 4 | Armscor | `https://www.armscor.co.za/Tenders/` | Defence | ✅ 200 | ✅ Yes | Public browsing; login for bidding |
|
||||
| 5 | IDC | `https://www.idc.co.za/tenders/` | Development Finance | ✅ 200 | ✅ Yes (PDF + OneDrive) | Submission via email/OneDrive |
|
||||
| 6 | DBSA | `https://www.dbsa.org/procurement` | Development Banking | ✅ 200 | ✅ Yes (PDF, BoQs) | Public viewing |
|
||||
| 7 | Land Bank | `https://landbank.co.za/Supply-Chain/Pages/SupplyChainManagement.aspx` | Agriculture Finance | ✅ 200 | Unknown | Portal login |
|
||||
| 8 | ACSA (Airports) | `https://www.airports.co.za/business/supply-chain-management/current-and-future-tenders` | Airports | ✅ 200 | Likely | Stakeholder login |
|
||||
| 9 | SAFCOL | `https://www.safcol.co.za/tenders` | Forestry | ✅ 200 | Unknown | Unknown |
|
||||
| 10 | Sedibeng Water | `https://www.sedibengwater.co.za/tenders/` | Water | ✅ 200 | Unknown | Unknown |
|
||||
| 11 | NERSA | `https://www.nersa.org.za/procurement` | Energy Regulator | ✅ 200 | Unknown | Unknown |
|
||||
| 12 | Master Builders SA | `https://www.masterbuilders.org.za` | Construction Industry | ✅ 200 | Member access | Membership for full access |
|
||||
|
||||
### Industry/Other (2 confirmed live)
|
||||
|
||||
| # | Organization | URL | Sector | Notes |
|
||||
|---|-------------|-----|--------|-------|
|
||||
| 1 | CIDB Tender Register | `https://registers.cidb.org.za/PublicTenders/TenderSearch` | Construction | Structured search — good for scraping |
|
||||
| 2 | CIDB Main Site | `https://www.cidb.org.za` | Construction | WordPress + REST API |
|
||||
|
||||
---
|
||||
|
||||
## TIER 3 — Closed Networks / Not Publicly Scrapable
|
||||
|
||||
| # | Platform | URL | Notes |
|
||||
|---|----------|-----|-------|
|
||||
| 1 | SAP Ariba | `https://www.sap.com/products/spend-management.html` | Closed B2B network. Used by Anglo American, Sasol, Standard Bank, etc. Requires supplier registration per buyer. APIs exist but only within network. |
|
||||
| 2 | Basware | `https://www.basware.com/` | Closed e-procurement. Same model as Ariba. |
|
||||
| 3 | REIPPPP / IPP Office | `https://www.ipp-ppp.co.za/` | Renewable energy procurement. Closed bid process — documents only for pre-qualified bidders. |
|
||||
| 4 | Transnet eSupplier Portal (new) | `https://esupplierportal.transnet.net/` | New portal (Oct 2025). Not accessible via curl. Requires registration. |
|
||||
| 5 | Rand Water Bids | `https://bids.randwater.co.za/` | Dedicated bidding platform. Requires registration. Not accessible via curl. |
|
||||
| 6 | tenders.co.za | `https://www.tenders.co.za` | Cloudflare-protected (403). Would need headless browser. |
|
||||
|
||||
### Private Corporate Procurement Portals (not publicly scrapable)
|
||||
|
||||
Most large SA corporations use **supplier registration portals** rather than public tender listings. Tenders are sent to pre-registered suppliers. These are NOT suitable for automated tender monitoring:
|
||||
|
||||
- **Mining:** Anglo American, Sasol, Sibanye-Stillwater, Impala Platinum, Gold Fields, Harmony, Exxaro, BHP — all use SAP Ariba or proprietary supplier portals
|
||||
- **Construction:** M&R, WBHO, Stefanutti, Aveng — respond to client tenders, don't publish their own
|
||||
- **Retail:** Shoprite, Pick n Pay, Woolworths — supplier registration portals
|
||||
- **Telecoms:** MTN, Vodacom — supplier registration portals
|
||||
- **Banks:** Standard Bank, ABSA, FNB, Nedbank — supplier registration
|
||||
- **Insurance:** Old Mutual, Sanlam, Discovery — supplier registration
|
||||
|
||||
---
|
||||
|
||||
## TIER 4 — Defunct / Dead Sites (confirmed)
|
||||
|
||||
| # | Site | URL | Status |
|
||||
|---|------|-----|--------|
|
||||
| 1 | etenders.co.za | `https://www.etenders.co.za` | HTTP 410 Gone |
|
||||
| 2 | tender247.co.za | `https://www.tender247.co.za` | DNS failure |
|
||||
| 3 | tendersa.co.za | `https://www.tendersa.co.za` | DNS failure |
|
||||
| 4 | freetender.co.za | `https://www.freetender.co.za` | DNS failure |
|
||||
| 5 | freetendersite.co.za | `https://www.freetendersite.co.za` | DNS failure |
|
||||
| 6 | corridorprocurement.co.za | `https://www.corridorprocurement.co.za` | DNS failure |
|
||||
| 7 | procurementportal.co.za | `https://www.procurementportal.co.za` | DNS failure |
|
||||
| 8 | professionalprocurement.co.za | `https://www.professionalprocurement.co.za` | DNS failure |
|
||||
| 9 | publicworks.gov.za | `https://www.publicworks.gov.za/` | DNS failure (tenders via eTenders.gov.za) |
|
||||
| 10 | energy.gov.za | `https://www.energy.gov.za` | DNS failure (dept restructured into DMRE) |
|
||||
|
||||
### Not Tender Platforms (incorrectly listed in some sources)
|
||||
- **Tradematic** — crypto trading bot platform, not tenders
|
||||
- **Quest.co.za** — recruitment agency (Adcorp), not tenders
|
||||
|
||||
---
|
||||
|
||||
## SETAs (Sector Education and Training Authorities)
|
||||
|
||||
12 confirmed live. None have APIs — all need web scraping. **Better monitored via eTenders.gov.za** which captures all SETA tenders.
|
||||
|
||||
| SETA | URL | Sector | Status |
|
||||
|------|-----|--------|--------|
|
||||
| merSETA | `https://www.merseta.org.za` | Manufacturing & Engineering | ✅ Live |
|
||||
| CHIETA | `https://www.chieta.org.za` | Chemical Industries | ✅ Live |
|
||||
| MICT SETA | `https://www.mictseta.org.za` | Media & ICT | ✅ Live |
|
||||
| INSETA | `https://www.inseta.org.za` | Insurance | ✅ Live |
|
||||
| HWSETA | `https://www.hwseta.org.za` | Health & Welfare | ✅ Live |
|
||||
| FoodBev SETA | `https://www.foodbev.org.za` | Food & Beverage | ✅ Live |
|
||||
| Services SETA | `https://www.serviceseta.org.za` | Services | ✅ Live |
|
||||
| MQA | `https://www.mqa.org.za` | Mining | ✅ Live |
|
||||
| PSETA | `https://www.pseta.org.za` | Public Service | ✅ Live |
|
||||
| BANKSETA | `https://www.bankseta.org.za` | Banking | ✅ Live |
|
||||
| AgriSETA | `https://www.agriseta.co.za` | Agriculture | ✅ Live |
|
||||
| UMALUSI | `https://www.umalusi.org.za` | Education QA | ✅ Live |
|
||||
|
||||
**Defunct/consolidated:** ETDP SETA, TETA, SETASA, FASSET, CETA, W&RSETA — domains no longer resolve (SETA landscape has been consolidated)
|
||||
|
||||
---
|
||||
|
||||
## Universities
|
||||
|
||||
All publish tenders on individual procurement pages. No APIs. Also captured in eTenders.gov.za.
|
||||
|
||||
| University | URL | Status |
|
||||
|------------|-----|--------|
|
||||
| UCT | `https://www.uct.ac.za` | ✅ Live |
|
||||
| Wits | `https://www.wits.ac.za` | ✅ Live |
|
||||
| Stellenbosch | `https://www.sun.ac.za` | ✅ Live |
|
||||
| UKZN | `https://www.ukzn.ac.za` | ✅ Live |
|
||||
| Nelson Mandela | `https://www.mandela.ac.za` | ✅ Live |
|
||||
| Rhodes | `https://www.ru.ac.za` | ✅ Live |
|
||||
| UP (Pretoria) | `https://www.up.ac.za` | ⚠️ 403 (blocks curl) |
|
||||
| UJ (Johannesburg) | `https://www.uj.ac.za` | ⚠️ 403 (blocks curl) |
|
||||
|
||||
---
|
||||
|
||||
## Water Boards
|
||||
|
||||
| Water Board | URL | Status |
|
||||
|------------|-----|--------|
|
||||
| Rand Water | `https://bids.randwater.co.za/` | ❌ Not accessible via curl (registration required) |
|
||||
| Umgeni Water | `https://www.umgeni.co.za/tenders/` | ❌ SSL issues |
|
||||
| Amatola Water | `https://www.amatolawater.co.za/tenders/` | ❌ 500 error |
|
||||
| Overberg Water | `https://www.overbergwater.co.za/tenders/` | ❌ 403 |
|
||||
| Sedibeng Water | `https://www.sedibengwater.co.za/tenders/` | ✅ 200 |
|
||||
|
||||
**Note:** Water board tenders are also published via eTenders.gov.za.
|
||||
|
||||
---
|
||||
|
||||
## RECOMMENDED AUTOMATION ARCHITECTURE
|
||||
|
||||
### Phase 1: Core Data Pipeline (eTenders OCDS API)
|
||||
```
|
||||
eTenders OCDS API → Daily pull (dateFrom/dateTo) → Parse releases → Store in DB
|
||||
↓
|
||||
Tender monitoring system
|
||||
```
|
||||
- Pull daily using `dateFrom=<yesterday>&dateTo=<today>`
|
||||
- Paginate using `links.next`
|
||||
- Extract: ocid, title, status, tenderPeriod, documents (PDF URLs), buyer, parties
|
||||
- Download tender PDFs from document URLs
|
||||
- This single source covers **ALL government, SOE, and public entity tenders**
|
||||
|
||||
### Phase 2: Supplementary Sources (RSS/WordPress)
|
||||
- sa-tenders.co.za RSS feed (freemium — adds curation/categorization)
|
||||
- Armscor RSS (defence sector depth)
|
||||
- Health.gov.za RSS (health sector depth)
|
||||
- CIDB WP REST API (construction sector depth)
|
||||
- Master Builders RSS (construction industry)
|
||||
|
||||
### Phase 3: Targeted Scraping (headless browser)
|
||||
- Eskom tender bulletin (JS-loaded)
|
||||
- Transnet old portal (Azure-hosted)
|
||||
- Provincial portals (Western Cape, Free State, Limpopo, North West)
|
||||
- Municipal portals (Cape Town, Ekurhuleni, Nelson Mandela Bay)
|
||||
- Direct SOE portals (DBSA, IDC, ACSA, SAFCOL, Land Bank)
|
||||
|
||||
### Phase 4: Closed Network Monitoring (manual/registration)
|
||||
- Transnet eSupplier Portal (new)
|
||||
- Rand Water bids platform
|
||||
- SAP Ariba (if monitoring specific enterprise buyers)
|
||||
- REIPPPP/IPP Office (renewable energy bid windows)
|
||||
|
||||
### What NOT to bother with
|
||||
- Defunct sites (7 confirmed dead)
|
||||
- Private corporate portals (supplier registration only, not public tenders)
|
||||
- Most SETAs and universities (captured in eTenders API)
|
||||
- Construction company portals (they bid, they don't publish)
|
||||
- Tradematic, Quest (not tender platforms)
|
||||
|
||||
---
|
||||
|
||||
## SUMMARY STATISTICS
|
||||
|
||||
| Category | Count | Automatable |
|
||||
|----------|-------|-------------|
|
||||
| Government (national) | 14 live | All via eTenders API |
|
||||
| Government (provincial) | 5 live + 4 via eTenders | All via eTenders API |
|
||||
| Government (municipal) | 6 live + 5 via eTenders | All via eTenders API |
|
||||
| SOEs | 12 live | 1 RSS + 11 scraping (all via eTenders API) |
|
||||
| Commercial aggregators | 2 live | 1 RSS + 1 Cloudflare-protected |
|
||||
| Industry-specific | 4 live | 2 RSS/API + 2 scraping |
|
||||
| SETAs | 12 live | All via eTenders API |
|
||||
| Universities | 8 live | All via eTenders API |
|
||||
| Water boards | 1 live | Via eTenders API |
|
||||
| Defunct | 10 confirmed dead | N/A |
|
||||
| Closed networks | 6 | Not publicly accessible |
|
||||
| **Total unique sources** | **~75** | **eTenders API covers ~90%** |
|
||||
Reference in New Issue
Block a user