# Eskom — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Check real-time loadshedding status, browse electricity tariffs and procurement tenders, and access Eskom's media statements and investor relations documents. Stay informed about South Africa's power supply situation and find official announcements, tender opportunities, and financial information all in one place.

**Category:** Government & Public Data | **Website:** [eskom.co.za/](https://eskom.co.za/) | **Docs:** [parse.bot/marketplace/3ae2fa96-844b-430c-bc8e-caa4865952a5/eskom-co-za-api](https://parse.bot/marketplace/3ae2fa96-844b-430c-bc8e-caa4865952a5/eskom-co-za-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_cel_documents

Retrieve Cost Estimate Letter (CEL) related content including IPP/grid connection/renewable energy tenders from the tender bulletin, and documents from the Grid Access Unit Library and IPP connection process pages. Tenders are keyword-matched from the active tender bulletin for CEL, IPP, grid access, wheeling, embedded generation, and renewable energy terms.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_cel_documents \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_current_tariffs

Retrieve current electricity tariff categories and summary from the Eskom distribution tariffs page. Returns page title, content sections describing tariff categories (residential, urban, rural, municipal, generator), and navigation links to related tariff pages such as pricing documents and tariff history.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_current_tariffs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_investor_relations_documents

Retrieve financial and investor relations document listings from Eskom's integrated results page. Returns deduplicated PDF document links with titles. Entries with generic titles like 'Read more' are excluded.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_investor_relations_documents \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_loadshedding_status

Retrieve the current loadshedding status from Eskom. Returns the numeric stage level as a string. A stage of '1' means Stage 1 loadshedding is active; '-1' typically indicates no active loadshedding. The status field provides a human-readable description.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_loadshedding_status \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_media_room_articles

Retrieve news and media statements from the Eskom Media Room. Returns paginated article listings ordered by most recent. The summary field may be null for articles that do not include an excerpt. The date field reflects the published date as displayed on the page.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_media_room_articles \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_procurement_tenders

Retrieve current procurement tender bulletin listings from Eskom's tender API. Returns all active tenders when no filter is provided. When filtered by tender_id, returns matching tenders from the active dataset only; inactive or expired tenders may not appear.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `tender_id` | string | No | Tender ID to filter results. Only returns results if the tender is in the active dataset; expired or removed tenders return an empty list. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_procurement_tenders \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tender_id":"<string>"}'
```

### get_tariff_year_page

Retrieve detailed tariff information for a specific Eskom distribution page. Accepts any eskom.co.za/distribution URL, typically obtained from the year_links field of get_current_tariffs. Returns the page heading and an array of text content extracted from paragraphs, list items, and headings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Full URL of the Eskom distribution page to retrieve (e.g. from get_current_tariffs year_links[*].url). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_tariff_year_page \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"<string>"}'
```

### get_tender_documents

Retrieve the list of downloadable documents for a specific tender. Each document includes a download URL, filename, size in bytes, and content type. May include folder-type entries with ContentType 'Folder' and SIZE 0.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `tender_id` | string | Yes | The tender ID to retrieve documents for. Obtain from get_procurement_tenders results TENDER_ID field. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/get_tender_documents \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tender_id":"<string>"}'
```

### search_site

Search the main Eskom website for content matching the provided query. Supports single-word and multi-word search queries. Returns article results with titles, URLs, and summaries. Results are sourced from the WordPress search feature.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search keyword or phrase (e.g. 'loadshedding', 'tariff increase 2026'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eskom-co-za-api-3ae2fa96/search_site \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```
