Skip to main content
ZA FR / API · South Africa

Build on South Africa filings programmatically.

A typed REST API over 11,672 filings from 198 South African listed companies — JSON metadata, Markdown body, and original PDF. Webhooks on every new release.

Public-company filings in South Africa are supervised by Financial Sector Conduct Authority (FSCA). Reporting follows IFRS. Filings are most commonly published in English. Major issuers are listed on JSE Top 40, FTSE/JSE All Share and FTSE/JSE SWIX. Calendar and June year-ends both common.

Building on South African filings programmatically

The FinancialReports API delivers JSE / FSCA-supervised South African filings through the same single REST surface used across all 42 covered markets — one x-api-key header, one shared rate-limit bucket, one payload schema. A South Africa-only integration is a one-parameter filter (?country=ZA) on the global filings endpoint. No separate JSE-tier API key, no parallel billing tier, no per-country infrastructure: the same endpoint returns a SENS trading statement, a Top 40 annual report, and an AltX admission document within the identical JSON envelope.

For live pipelines, the webhook subscription is the recommended path: subscribe once, receive a POST with full filing metadata within roughly 60 seconds of SENS publication. South African market hours (09:00–17:00 SAST, UTC+2) concentrate SENS volume in the morning session and post-close window; the webhook delivery profile mirrors that pattern. The payload shape is identical across markets, so a JSE trading statement and a UK profit warning arrive at your endpoint with the same JSON structure — the country and filing_type fields are the only routing signals needed. Because many JSE mega-caps are also LSE-listed, a single corporate event may appear under both ?country=ZA and ?country=GB; cross-listing relationships are exposed in the JSON payload for deduplication downstream.

Filing bodies are available as JSON metadata, Markdown via /api/filings/{id}/markdown/ (the processed text rendered on the public web pages, normalised from the original SENS or PDF source), and original PDF for audit and archival use. The English-only character of JSE filings means the Markdown layer flows directly into NLP pipelines and LLM context windows without a translation step — a significant advantage relative to multilingual European markets. Two JSE-specific filing_type values are worth filtering for in production integrations: trading_statement (the 20%-deviation trigger) and cautionary_announcement, both of which carry high signal-to-noise ratios for event-driven strategies.

Common API integrations for South African data include backfilling FTSE/JSE Top 40 and SWIX 40 IFRS consolidated financials for EM quant research, triggering on SENS trading statements and cautionary announcements for event-driven strategies, cross-referencing JSE filings against LSE RNS for Anglo American / BHP / Glencore dual-listed positions, monitoring RESI 10 production reports for commodity-linked strategies, tracking AltX admissions and delistings, and feeding English-language SENS announcements into sector-specialist LLM tools without a translation layer. Trial keys are available on request; the web product is free and indexed for the public web, so coverage across the JSE universe is verifiable before integration.

Filings indexed
11,672
in South Africa
Listed companies
198
South African issuers
Auth
x-api-key
single header
Webhook latency
< 1 min
from regulator publish

Reporting at a glance — South Africa

Regulator, indices, accounting, language
Primary indices
JSE Top 40FTSE/JSE All ShareFTSE/JSE SWIX
Accounting standards
IFRS
Reporting languages
English
Fiscal year
Calendar and June year-ends both common

Quick start — South Africa filings

REST · JSON · Markdown · PDF
# 1. List filings for South Africa, newest first
curl "https://api.financialreports.eu/api/filings/?countries=ZA" \
    -H "x-api-key: $FR_API_KEY"

# 2. Pull full Markdown for one filing
curl https://api.financialreports.eu/api/filings/<id>/markdown/ \
    -H "x-api-key: $FR_API_KEY"

# 3. Filter by filing type — annual reports only
curl "https://api.financialreports.eu/api/filings/?countries=ZA&type=10-K" \
    -H "x-api-key: $FR_API_KEY"

# 4. Filter by ISIN (single issuer)
curl "https://api.financialreports.eu/api/filings/?company_isin=DE000A1EWWW0" \
    -H "x-api-key: $FR_API_KEY"

Full API documentation ↗ · Interactive Swagger ↗

Sample South Africa response

Real filings · live data

Get API access for South Africa

Pricing · trial keys · enterprise
Get API access Talk to the team Read the docs ↗

Filings activity by year

Last 6 years · South African issuers
  • 2026 1,250
  • 2025 914
  • 2024 884
  • 2023 826
  • 2022 847
  • 2021 619

Reporting languages

Filing-by-filing distribution
  • English 11,666

FAQ — South Africa

Coverage, formats, integration
How do I authenticate API requests for South Africa filings?
Send a single header — `x-api-key: $FR_API_KEY` — on every request. The same key works across all 42 covered markets; there's no per-country key.
What format does the South Africa API return?
Filing metadata is returned as JSON. Full filing bodies are available as Markdown (one endpoint) and original PDF. The same payload shape is used across every covered market.
Do you provide webhooks for new South African filings?
Yes. Webhook subscribers receive a POST with full filing metadata within ~60 seconds of the regulator publishing the document.
Is there a rate limit on the South African API?
Standard plans are throttled to a generous request budget that suits typical research and dashboards. Bulk and high-throughput plans negotiate higher limits.
Is there a free tier for South Africa data?
The web product (search, browse, single-filing read) is free and indexed for the public web. Programmatic API access is a paid plan; trial keys are available on request.