resbank APIresbank.co.za ↗
Retrieve live and historical SARB financial data: prime rate, repo rate, SABOR, ZARONIA, CPI, PPI, ZAR exchange rates, and gold prices via 12 endpoints.
What is the resbank API?
The resbank.co.za API provides 12 endpoints covering South Africa's key monetary and economic indicators sourced from the South African Reserve Bank. You can fetch the current prime lending rate via get_prime_rate — returning the value, ISO date, and SARB timeseries code — as well as historical rate series, ZAR exchange rates against major currencies, inflation metrics, overnight benchmark rates, and London gold prices in both USD and ZAR.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/925c9a29-048a-4c99-90a2-3e7a8de06ae4/get_prime_rate' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace resbank-co-za-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: SARB Statistics SDK — bounded, re-runnable; every call capped."""
from parse_apis.south_african_reserve_bank_sarb_statistics_api import SARB, RateNotFound
client = SARB()
# Fetch the current prime lending rate — single-item typed access.
prime = client.rates.get_prime()
print(f"Prime Rate: {prime.value}% as of {prime.date}")
# Fetch the repo rate (SARB Policy Rate).
repo = client.rates.get_repo()
print(f"Repo Rate: {repo.value}% ({repo.formatted_value})")
# List recent prime rate history observations, capped at 5 items.
for obs in client.rateobservations.list_prime_history(limit=5):
print(f" {obs.period}: {obs.value}%")
# Get all current market indicators, capped at 3.
for indicator in client.marketindicators.list_all(limit=3):
print(f"{indicator.name}: {indicator.value} (trend: {indicator.up_down})")
# Get CPI inflation — typed error catch around the call.
try:
cpi = client.marketindicators.get_cpi()
print(f"CPI: {cpi.value}% for period {cpi.date}")
except RateNotFound as exc:
print(f"CPI not available: {exc}")
# Get historical exchange rates — composite resource.
historical = client.historicalrateses.get()
print(f"Daily FX rates: {len(historical.daily_exchange_rates)} items")
print(f"Monthly indicators: {len(historical.monthly_indicators)} items")
print("exercised: rates.get_prime / rates.get_repo / rateobservations.list_prime_history / marketindicators.list_all / marketindicators.get_cpi / historicalrateses.get")
Returns the most recent prime lending rate, including the value, date, timeseries code, and formatted percentage string. The prime rate is the benchmark rate at which private banks lend to the public. Updated daily on business days.
No input parameters required.
{
"type": "object",
"fields": {
"date": "string — ISO date (YYYY-MM-DD)",
"name": "string — rate name",
"value": "number — rate as a percentage",
"formatted_value": "string — percentage with % symbol",
"timeseries_code": "string — SARB timeseries identifier"
},
"sample": {
"data": {
"date": "2026-06-10",
"name": "Prime lending rate",
"value": 10.5,
"formatted_value": "10.5%",
"timeseries_code": "MMRD000A"
},
"status": "success"
}
}About the resbank API
Interest Rate Endpoints
get_prime_rate and get_repo_rate each return a single current observation with five fields: date (ISO YYYY-MM-DD), name, value (numeric percentage), formatted_value (with % symbol), and timeseries_code (the SARB's internal series identifier). Their history counterparts — get_prime_rate_history and get_repo_rate_history — return a data array ordered newest-first, where each element carries Period (ISO datetime), Timeseries, Description, Value, FormatNumber, and FormatDate. These series are useful for tracking rate cycle timing or building yield-curve models against other data sources.
Benchmark Overnight Rates and Inflation
get_sabor_rate returns the South African Benchmark Overnight Rate and get_zaronia_rate returns the ZARONIA (South African Rand Overnight Index Average). Both share the same nine-field schema: Date, Name, Value, UpDown (an integer direction flag of -1, 0, or 1), SectionId, SectionName, TimeseriesCode, FormatDate, and FormatNumber. get_cpi and get_ppi use the same schema to expose headline CPI for all urban areas and the 12-month PPI percentage change respectively.
Exchange Rates and Market Overview
get_exchange_rates returns ZAR spot rates against USD, GBP, EUR, and JPY plus the nominal effective exchange rate index, each object carrying Name, Date, Value, UpDown, TimeseriesCode, and format fields. get_current_market_rates aggregates money market, capital market, exchange rate, and gold price indicators in a single call, with a SectionId and SectionName on each object for grouping. get_selected_historical_rates splits output into two arrays — monthly_indicators and daily_exchange_rates — giving a longer-horizon view of selected rates and effective indices.
Gold Price
get_gold_price returns a data array with the London gold price per fine ounce averaged from the AM and PM fixings, denominated in both USD and ZAR. Each object follows the standard market rate schema with Name, Date, Value, UpDown, SectionId, SectionName, TimeseriesCode, and format fields.
The resbank API is a managed, monitored endpoint for resbank.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when resbank.co.za changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official resbank.co.za API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Displaying live prime and repo rates in a South African mortgage calculator
- Alerting users when SARB policy rate changes using get_repo_rate_history deltas
- Tracking ZAR/USD and ZAR/EUR movements for a currency conversion tool
- Feeding CPI and PPI data into inflation-adjusted return calculations
- Monitoring ZARONIA and SABOR overnight rates for short-term funding models
- Building a gold price dashboard showing USD and ZAR valuations side by side
- Backtesting interest rate strategies using historical prime rate series
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.