You need a reliable, programmatic way to fetch the Reserve Bank of Australia’s policy rate for AUD and feed it into pricing, risk, and reporting systems. By the end of this guide, you will call the Interest Rates API to retrieve the RBA_CASH_RATE in real time, pull historical series, compute fluctuations and OHLC aggregates, and apply the returned value to spreads and loan calculations—in production, with correct caching, dates, and error handling.
What the RBA_CASH_RATE Represents and Why It Matters
RBA_CASH_RATE is the Reserve Bank of Australia Cash Rate Target. It is the key policy rate for AUD and an anchor for short-term funding costs, loan repricing, and macroeconomic expectations. Changes to the cash rate influence bank funding channels and pass through to variable mortgage rates, business lending, and interbank benchmarks such as BBSW and AONIA.
In the Interest Rates API, RBA_CASH_RATE is categorized as a central bank rate with a monthly publication frequency. The value you receive is expressed as an annualized percentage rate (e.g., 4.6 means 4.60% per annum). Effective dates are included so you can align changes with portfolio or accounting cutoffs.
Explore more benchmarks any time at https://interestratesapi.com. When ready to integrate, you can Register for an API key.
How the API Structures RBA_CASH_RATE Data
The Interest Rates API exposes REST endpoints at https://interestratesapi.com/api/v1/ using GET and authenticates with the api_key query parameter. Key fields for RBA_CASH_RATE:
- rates: a mapping from symbol to numeric rate (annualized percentage, e.g., 4.6 for 4.60%).
- dates: a mapping from symbol to the effective date of that value (YYYY-MM-DD). For monthly series, this typically reflects the effective date within the month and may align with the month-end date in historical aggregations.
- currencies: a mapping from symbol to its currency (AUD for RBA_CASH_RATE).
- frequency: monthly for RBA_CASH_RATE. Some endpoints may denote daily frequency if the API surfaces a daily calendar carrying the latest value across business days.
- For time series and OHLC responses, you may also see frequencies and data_points to describe the sampling and number of observations used.
Business days: central bank policy rates don’t trade daily like interbank benchmarks; the value is typically steady between decision dates. On days without a policy change, the latest known rate is carried forward in the daily calendar used for series, fluctuation, and OHLC calculations.
Timezone: Dates are reported in ISO format (YYYY-MM-DD). Align your ingestion to your analytics timezone as needed.
Caching: The RBA_CASH_RATE usually changes only around RBA decision announcements. You can cache the latest value for intra-day use and invalidate on the next calendar day or when your application detects a new effective date in the API response.
Discover the Symbol with /symbols
Use the symbols catalogue to confirm availability and attributes of RBA_CASH_RATE and related central bank series.
cURL
curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBA_CASH_RATE"
JSON (example)
{
"success": true,
"date": "2026-09-30",
"base": "AUD",
"rates": {
"RBA_CASH_RATE": 4.6
},
"dates": {
"RBA_CASH_RATE": "2026-09-30"
},
"currencies": {
"RBA_CASH_RATE": "AUD"
},
"base_filter_note": null
}
Notes: The response includes fields such as symbol, category, currency_code, and frequency. Filter by base=AUD to surface AUD-centric symbols including RBA_CASH_RATE. The example above demonstrates field shape; filter values determine which symbols are returned.
Python (requests)
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params=dict(category="central_bank", base="AUD", api_key="YOUR_API_KEY")
)
symbols = resp.json()
print(symbols.get("count"), "symbols")
for s in symbols.get("symbols", []):
if s.get("symbol") == "RBA_CASH_RATE":
print("Found:", s)
JavaScript (fetch)
const url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=AUD&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();
const rba = (data.symbols || []).find(s => s.symbol === "RBA_CASH_RATE");
console.log("RBA_CASH_RATE:", rba);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=AUD&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$rba = null;
if (isset($data["symbols"])) {
foreach ($data["symbols"] as $s) {
if ($s["symbol"] === "RBA_CASH_RATE") { $rba = $s; break; }
}
}
print_r($rba);
Get the Latest RBA_CASH_RATE with /latest
The latest endpoint returns the current value, its currency, and the effective date. Copy-paste the official sample below exactly as shown.
cURL (official sample)
JSON (official sample)
How to read it:
- rates.RBA_CASH_RATE is 4.6, which means 4.60% per annum.
- dates.RBA_CASH_RATE is 2026-09-30, the value’s effective date in YYYY-MM-DD.
- currencies.RBA_CASH_RATE is AUD.
Python (requests)
import requests
r = requests.get(
"https://interestratesapi.com/api/v1/latest",
params=dict(api_key="YOUR_API_KEY", symbols="RBA_CASH_RATE")
)
j = r.json()
rate = j["rates"]["RBA_CASH_RATE"]
effective = j["dates"]["RBA_CASH_RATE"]
ccy = j["currencies"]["RBA_CASH_RATE"]
print(f"RBA Cash Rate: {rate}% (AUD), effective {effective}")
JavaScript (fetch)
const resp = await fetch(
"https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBA_CASH_RATE"
);
const latest = await resp.json();
const rate = latest.rates["RBA_CASH_RATE"];
const eff = latest.dates["RBA_CASH_RATE"];
console.log(`RBA_CASH_RATE = ${rate}% (effective ${eff})`);
PHP
<?php
$u = "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBA_CASH_RATE";
$j = file_get_contents($u);
$d = json_decode($j, true);
$rate = $d["rates"]["RBA_CASH_RATE"];
$eff = $d["dates"]["RBA_CASH_RATE"];
echo "RBA_CASH_RATE: ${rate}% (effective ${eff})";
Fetch a Point-in-Time Value with /historical
Use historical to pin the value on a specific date. For monthly symbols, the API uses the last day with data within that month.
cURL
JSON (example)
Interpretation: You requested June 15, 2025; for a monthly rate, the endpoint returns the rate value valid within that month according to the API’s data calendar. Use the rates map for the numeric rate and currencies map to confirm the currency code. Values shown are illustrative per the provided example.
Python (requests)
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/historical",
params=dict(date="2025-06-15", symbols="RBA_CASH_RATE", api_key="YOUR_API_KEY")
)
data = resp.json()
r = data["rates"]["RBA_CASH_RATE"]
print("Historical RBA_CASH_RATE:", r)
JavaScript (fetch)
const h = await fetch(
"https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY"
);
const hd = await h.json();
console.log("Historical:", hd.rates["RBA_CASH_RATE"]);
PHP
<?php
$hist = file_get_contents("https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY");
echo $hist;
Pull a Time Series with /timeseries
Get a continuous series to drive dashboards, curves, or econometric models. You specify start, end, and symbols.
cURL
JSON (example)
Interpretation: Even though RBA_CASH_RATE is monthly, daily series entries repeat the latest known value across business days to make time-window computations and OHLC aggregations straightforward.
Python (requests)
import requests
ts = requests.get(
"https://interestratesapi.com/api/v1/timeseries",
params=dict(start="2025-10-27", end="2026-10-27", symbols="RBA_CASH_RATE", api_key="YOUR_API_KEY")
).json()
series = ts["rates"]["RBA_CASH_RATE"]
dates_sorted = sorted(series.keys())
print("First date/value:", dates_sorted[0], series[dates_sorted[0]])
JavaScript (fetch)
const urlTS = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-27&end=2026-10-27&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY";
const resTS = await fetch(urlTS);
const tsData = await resTS.json();
const points = Object.entries(tsData.rates["RBA_CASH_RATE"]);
console.log("Observations:", points.length);
PHP
<?php
$ts = file_get_contents("https://interestratesapi.com/api/v1/timeseries?start=2025-10-27&end=2026-10-27&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY");
$data = json_decode($ts, true);
$series = $data["rates"]["RBA_CASH_RATE"];
echo "Count: " . count($series);
Measure Changes with /fluctuation
The fluctuation endpoint computes change statistics across a date range: start and end values, absolute and percent change, and the observed high/low.
cURL
JSON (example)
Key fields: change is end_value - start_value (percentage points), and change_pct expresses the relative change in percent. If start_value is 0, change_pct is null.
Python (requests)
import requests
fl = requests.get(
"https://interestratesapi.com/api/v1/fluctuation",
params=dict(start="2025-10-27", end="2026-10-27", symbols="RBA_CASH_RATE", api_key="YOUR_API_KEY")
).json()
stats = fl["rates"]["RBA_CASH_RATE"]
print("Spread (pp):", stats["change"], "Change %:", stats["change_pct"])
JavaScript (fetch)
const f = await fetch(
"https://interestratesapi.com/api/v1/fluctuation?start=2025-10-27&end=2026-10-27&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY"
);
const fd = await f.json();
const s = fd.rates["RBA_CASH_RATE"];
console.log(`High ${s.high}, Low ${s.low}, Δ=${s.change}pp (${s.change_pct}%)`);
PHP
<?php
$json = file_get_contents("https://interestratesapi.com/api/v1/fluctuation?start=2025-10-27&end=2026-10-27&symbols=RBA_CASH_RATE&api_key=YOUR_API_KEY");
$data = json_decode($json, true);
$st = $data["rates"]["RBA_CASH_RATE"];
echo "Start: {$st['start_value']}, End: {$st['end_value']}";
Aggregate with /ohlc
For charting and trend analysis, generate open-high-low-close bars computed from the daily calendar. Monthly is the default period; weekly and quarterly are available via the period parameter.
cURL
JSON (example)
Field notes:
- period: reporting bucket (e.g., 2025-01 for January 2025 when period=monthly).
- open/high/low/close: computed from the daily calendar in the period.
- data_points: number of daily observations inside the bucket.
Python (requests)
import requests
ohlc = requests.get(
"https://interestratesapi.com/api/v1/ohlc",
params=dict(symbols="RBA_CASH_RATE", period="monthly", start="2025-10-27", end="2026-10-27", api_key="YOUR_API_KEY")
).json()
bars = ohlc["rates"]["RBA_CASH_RATE"]
print("First bar:", bars[0])
JavaScript (fetch)
const o = await fetch(
"https://interestratesapi.com/api/v1/ohlc?symbols=RBA_CASH_RATE&period=monthly&start=2025-10-27&end=2026-10-27&api_key=YOUR_API_KEY"
);
const od = await o.json();
console.log(od.rates["RBA_CASH_RATE"][0]);
PHP
<?php
$u = "https://interestratesapi.com/api/v1/ohlc?symbols=RBA_CASH_RATE&period=monthly&start=2025-10-27&end=2026-10-27&api_key=YOUR_API_KEY";
$j = file_get_contents($u);
$d = json_decode($j, true);
print_r($d["rates"]["RBA_CASH_RATE"][0]);
Compare Loan Interest Costs with /convert
Use the convert endpoint to compare the total simple interest cost for a given amount and term across two benchmarks. This is useful for quickly quantifying spread impacts at the latest available rates.
cURL
JSON (example)
How to compute similar metrics yourself from the latest endpoint:
- Annualized simple interest for amount A over T months at annual rate r%: Interest = A × (r/100) × (T/12).
- Rate spread between two symbols r1 and r2 (in percentage points): spread_pp = r1 − r2.
- Monthly payment for a fully-amortizing loan at annual rate r% with principal P and n months: payment = P × i / (1 − (1 + i)^(−n)), where i = (r/100)/12. Use the rate from rates.RBA_CASH_RATE for r.
These formulas let you re-cast the policy rate into scenario estimates or to price products with margins. Always ensure you clarify that RBA_CASH_RATE is a policy/benchmark rate; lenders usually add a product-specific margin.
Python (requests)
import requests
import math
latest = requests.get(
"https://interestratesapi.com/api/v1/latest",
params=dict(api_key="YOUR_API_KEY", symbols="RBA_CASH_RATE")
).json()
r = latest["rates"]["RBA_CASH_RATE"] # annual %
P = 250000.0
n = 300 # months
i = (r / 100.0) / 12.0
payment = P * i / (1 - (1 + i) ** (-n))
print("Estimated amortizing monthly payment:", round(payment, 2))
JavaScript (fetch)
const respC = await fetch(
"https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBA_CASH_RATE"
);
const jC = await respC.json();
const r = jC.rates["RBA_CASH_RATE"]; // % p.a.
const principal = 250000;
const months = 300;
const i = (r / 100) / 12;
const payment = principal * i / (1 - Math.pow(1 + i, -months));
console.log("Monthly payment (est.):", payment.toFixed(2));
PHP
<?php
$j = file_get_contents("https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=RBA_CASH_RATE");
$d = json_decode($j, true);
$r = $d["rates"]["RBA_CASH_RATE"]; // annual %
$P = 250000.0; $n = 300; $i = ($r/100.0)/12.0;
$payment = $P * $i / (1 - pow(1 + $i, -$n));
echo "Monthly payment (est.): " . number_format($payment, 2);
Errors, Rate Limits, and Reliability
All endpoints return a consistent error shape when something goes wrong: {"success": false, "error": "..."} and some 404s may add a details field. Handle these HTTP statuses:
- 401: Missing/invalid api_key.
- 403: Account without active plan.
- 404: Symbol not found or no data for the requested date/range.
- 422: Validation error (e.g., wrong date format).
- 429: Rate limit exceeded (check Retry-After and X-RateLimit-* headers).
Respect rate limit headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset to tune your polling and caching. Given RBA_CASH_RATE’s monthly cadence, use caching aggressively for intra-day calls; re-fetch at the start of your business day and on RBA announcement days.
End-to-End Example Flow for RBA_CASH_RATE
Putting it together for an AUD lending or treasury workflow:
- Confirm the symbol via /symbols and store attributes (symbol, currency_code, frequency) in your metadata table.
- Retrieve the current value via /latest and persist rates, currencies, and dates fields so you can track effective changes.
- For dashboards, query /timeseries to chart the latest year of daily calendar values; for candlesticks, use /ohlc monthly bars.
- To quantify policy changes, call /fluctuation over the last meeting-to-meeting window and display change and change_pct.
- To translate the benchmark into payments, apply the amortization formula to the annualized rate (optionally adding your margin).
You can browse more endpoints and integration guidance via MCP and the main site at https://interestratesapi.com. When ready to deploy, Register to obtain your API key.
Reference: Using /latest Again (Alternate Example)
The endpoint also supports multiple symbols. While this article focuses on RBA_CASH_RATE, multi-symbol calls are useful when computing spreads to other policy or interbank rates. Example syntax (do not use this in place of the official sample above):
For cross-rate dashboards, combine this response with your in-app logic to compute spread_pp = rate(RBA_CASH_RATE) − rate(Other).
FAQ
Q1: What unit is RBA_CASH_RATE in?
A: It is an annualized percentage rate. For example, 4.6 means 4.60% per annum. Convert to a monthly rate by dividing by 12 when using amortization formulas.
Q2: How should I interpret the effective date?
A: The dates map returns the effective date (YYYY-MM-DD) for the reported value. For monthly series, the date often aligns with the value’s effective day within that month and may appear with month-end in historical aggregations.
Q3: How often does the RBA_CASH_RATE update?
A: It is a monthly central bank rate. It generally changes on RBA decision days, with the API carrying the latest value forward on business days between decisions.
Q4: Can I compute a mortgage payment from the returned rate?
A: Yes. Treat the value as the base annual rate r% and apply your product’s margin if any. For a fully amortizing loan: payment = P × i / (1 − (1 + i)^(−n)), where i = (r/100)/12 and n is the number of months.
Q5: How should I cache the latest rate?
A: Since policy rates don’t change daily, cache the latest response for intra-day use. Refresh at the start of each business day or on RBA announcement days. Also monitor X-RateLimit-* headers for optimal polling intervals.
Ship your integration now: call the endpoints above, wire the results into your pricing or research pipeline, and add guardrails for errors and rate limits. To start, Register for your API key and read the endpoint notes in the MCP. Visit https://interestratesapi.com for more central bank and interbank benchmarks.