Home / Blog / How to fetch the RBA cash rate in Python (without parsing CSVs)
2026-05-19 · Harry Vass
How to fetch the RBA cash rate in Python (without parsing CSVs)
Stop parsing RBA F-table CSVs in pandas. Get the live cash rate in one line of Python with the ausdata SDK.
If you've ever tried to programmatically get the current RBA cash rate, you know the drill. You open the RBA F1 statistical table, download f01hist.xls, write a pandas.read_excel call, fight with the multi-row header (Series ID on row 11, units on row 6), filter for the right series, sort, take the last row.
That's 30 lines of code to get a single number that changes 11 times a year.
Here's the same task with pip install ausdata:
from ausdata import Ausdata
api = Ausdata()
print(api.series("AU.CASHRATE"))
Output:
{
"data": {
"cash_rate_pct": "<latest>",
"cash_rate_period": "<period>",
"real_cash_rate_pct": "<latest>",
"trimmed_mean_cpi_pct": "<latest>"
},
"meta": {
"endpoint": "/v1/real-rate-regime",
"sources": [
{
"name": "RBA",
"url": "https://www.rba.gov.au/statistics/cash-rate/",
"attribution": "© Reserve Bank of Australia, CC-BY 4.0"
}
],
"retrieved_at": "<iso-timestamp>"
}
}
You get the live rate, the period it applies to, the real cash rate (computed for you against trimmed-mean CPI), and citation-ready provenance.
Why signals matter
The RBA publishes the nominal cash rate. The ABS publishes inflation. Neither publishes the real cash rate (nominal − trimmed mean CPI), even though that's the number every monetary-policy commentary actually cares about.
ausdata.io's signals are cross-source aggregates the source agencies don't publish:
api.get("/v1/real-rate-regime") # nominal − trimmed-mean CPI
api.real_wages(limit=12) # WPI − CPI YoY
api.economic_dashboard() # 5 indicators in one call
api.cost_of_living() # Selected Living Cost Indexes
Each call returns:
- The number
- The period it applies to
- Source URL (always)
- Attribution string (CC-BY compliance done for you)
retrieved_attimestamp
Async, CLI, MCP, same key
# Sync
from ausdata import Ausdata
Ausdata().series("AU.CASHRATE")
# Async
import asyncio
from ausdata import AsyncAusdata
async def main():
async with AsyncAusdata() as api:
print(await api.series("AU.CASHRATE"))
asyncio.run(main())
# CLI
$ ausdata cashrate
🏦 RBA cash rate: 4.35% (as of 2026-05-06)
// Claude Desktop config
{
"mcpServers": {
"ausdata": {
"command": "npx", "args": ["-y", "ausdata-mcp@latest"],
"env": { "AUSDATA_API_KEY": "ak_..." }
}
}
}
What this isn't
ausdata.io doesn't ship:
- Suburb-level property prices (that's CoreLogic)
- Live KYC / per-company lookup (that's Kyckr / vigil)
- Sub-state employment data (ABS doesn't publish it)
- 5-min wholesale electricity bid stacks (use AEMO directly)
It ships AU macro-level public data with one auth key, one envelope, citation-ready. That's it. Honest scope.
Pricing
- Free: 500 calls/month (covers personal use, casual scripting)
- Analyst: $29/mo, 10k calls
- Embed: $99/mo, 100k calls, webhooks, signed payloads, for tools that ship AU data inside their product
Get a key at ausdata.io.
What about R?
readrba by Matt Cowgill is the R equivalent, fantastic package. If you're an R user, use that. If you're Python or JS, use ausdata / ausdata-mcp.
Source
Code samples in this post: github.com/Bigred97/ausdata-recipes.
SDK source: github.com/Bigred97/ausdata-py.