# Johannesburg Stock Exchange — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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.

> Access live JSE stock prices, company profiles, and market indices from the Johannesburg Stock Exchange. Search SENS announcements and view comprehensive market statistics to stay informed on JSE activity.

**Category:** Finance & Markets | **Website:** [jse.co.za/](https://jse.co.za/) | **Docs:** [parse.bot/marketplace/a87c3097-c188-4979-83c0-3228485b42e1/jse-co-za-api](https://parse.bot/marketplace/a87c3097-c188-4979-83c0-3228485b42e1/jse-co-za-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get company profile

Retrieves the profile of a specific listed company by its ticker symbol. Matches against both AlphaCode and CustomerAlphaCode fields. Returns stale_input with kind 'input_not_found' if the symbol does not match any listed company. Use get_listed_companies to discover valid symbols.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `symbol` | string | Yes | The company's ticker symbol or alpha code, case-insensitive (e.g., '4SI', 'ABG', 'AGL') |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/get-company-profile \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"symbol":"<string>"}'
```

### Get homepage indices

Retrieves the four main market indices from the JSE homepage (All Property, All Share, Top 40, Tradable Property) with current prices and change percentages. Returns a fixed set of four indices that represent the JSE's headline performance.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/get-homepage-indices \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get listed companies

Retrieves the full list of listed companies and financial instruments from the JSE Client Portal, including full profile details such as address, phone, email, and website. Typically returns 300+ equity issuers.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/get-listed-companies \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get market statistics summary

Retrieves a summary of market statistics combining the main indices from the homepage and top movers (by absolute change percent) from the equity market ticker data. Provides a single-call overview of market conditions.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/get-market-statistics-summary \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get ticker prices

Retrieves live stock ticker prices for all listed equities using the JSE's internal AJAX API. Returns symbol, name, price, change_percent, volume, high, and low for each equity. The full list typically contains 300+ equities.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/get-ticker-prices \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Search sens announcements

Searches for SENS (Stock Exchange News Service) announcements within a date range. Defaults to the last 30 days if no dates are specified. Returns announcements sorted by date descending with title, date, issuers, and PDF link. Can return hundreds of announcements for wide date ranges.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `end_date` | string | No | End date in YYYY-MM-DD format. Omitting defaults to today. |
| `start_date` | string | No | Start date in YYYY-MM-DD format. Omitting defaults to 30 days before today. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/johannesburg-stock-exchange/search-sens-announcements \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"end_date":"<string>","start_date":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.