South Africa eTender Government Procurement Scraper
Pricing
from $3.50 / 1,000 results
Go to Apify Store

South Africa eTender Government Procurement Scraper
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer

Fortuitous Pirate
Maintained by Community
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
South Africa eTender Scraper
Scrapes government tender opportunities from South Africa's eTender portal. This Apify actor collects procurement opportunities published by South African government departments, municipalities, and state-owned entities.
API Sources
- Primary: https://www.etenders.gov.za - South Africa's official government tender portal
- Fallback: https://data.gov.za - South Africa's open data portal
API Key: Not required
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | No | - | Full-text search keyword to filter tenders |
department | string | No | - | Filter by government department name |
province | enum | No | - | Filter by South African province |
category | string | No | - | Filter by tender category |
status | enum | No | - | Filter by tender status |
limit | integer | No | 100 | Maximum number of tenders to return (max: 5000) |
Province Values
""- All provincesGautengWestern CapeKwaZulu-NatalEastern CapeFree StateLimpopoMpumalangaNorth WestNorthern Cape
Status Values
""- All statusesOpen- Currently accepting bidsClosed- Bidding period endedAwarded- Contract awardedCancelled- Tender cancelled
Output Fields
Each tender record contains the following fields:
| Field | Type | Description |
|---|---|---|
tenderNumber | string | Official tender reference number |
title | string | Tender title or description |
department | string | Issuing government department or entity |
province | string | Province where the tender applies |
category | string | Tender category classification |
status | string | Current tender status |
closingDate | string | Deadline for bid submission |
publishDate | string | Date tender was published |
briefingDate | string | Compulsory briefing session date (if applicable) |
briefingVenue | string | Location of briefing session |
contactPerson | string | Name of contact person for enquiries |
contactEmail | string | Email address for enquiries |
contactPhone | string | Phone number for enquiries |
estimatedValue | number | Estimated contract value in ZAR |
bidValidity | string | Required bid validity period |
specialConditions | string | Special conditions or requirements |
documents | array/string | Tender document links or references |
url | string | Direct URL to tender details |
scrapedAt | string | ISO timestamp when data was scraped |
Example Input
{"query": "construction","province": "Gauteng","status": "Open","limit": 50}
Example Output
{"tenderNumber": "GT/2024/001234","title": "Construction of Community Health Centre","department": "Department of Health","province": "Gauteng","category": "Construction","status": "Open","closingDate": "2024-03-15T11:00:00","publishDate": "2024-02-15T00:00:00","briefingDate": "2024-02-28T10:00:00","briefingVenue": "Department of Health, Pretoria","contactPerson": "John Smith","contactEmail": "tenders@health.gov.za","contactPhone": "+27 12 345 6789","estimatedValue": 15000000,"bidValidity": "90 days","specialConditions": "BBBEE Level 1-4 required","documents": ["https://www.etenders.gov.za/docs/GT2024001234.pdf"],"url": "https://www.etenders.gov.za/tender/GT2024001234","scrapedAt": "2024-02-20T14:30:00.000Z"}
Usage
Run on Apify Platform
- Go to the actor page on Apify
- Configure input parameters
- Click "Start" to run the scraper
- Download results in JSON, CSV, or Excel format
Run Locally
# Clone the repositorygit clone <repository-url>cd southafrica-etender-scraper# Install dependenciesnpm install# Run with Apify CLIapify run -i '{"query": "IT services", "province": "Western Cape", "limit": 50}'
Integrate via API
curl -X POST "https://api.apify.com/v2/acts/<actor-id>/runs" \-H "Authorization: Bearer <your-api-token>" \-H "Content-Type: application/json" \-d '{"query": "construction","status": "Open","limit": 100}'
Rate Limiting
The scraper includes a 1-second delay between API requests to avoid overloading the source servers and ensure reliable data collection.
Technical Details
- Runtime: Node.js 18+
- Dependencies: Apify SDK 3.x, Crawlee 3.x
- Pagination: Automatic (50 items per page)
License
ISC