The Australian Bureau of Statistics publishes its time-series data via the SDMX standard. SDMX is rigorous, internationally standardised, and well-suited to statistical agencies sharing data with each other. It is not well-suited to a developer trying to plot inflation on a Tuesday morning.
This page exists because almost every engineer who tries to consume ABS data directly hits the same wall: the SDMX learning curve is steep, the XML is verbose, the dimension codes are cryptic, and the official documentation assumes you already know how SDMX works. ausdata.io is the alternative.
What ABS SDMX actually requires you to do
To fetch the headline Consumer Price Index from ABS directly, you need to:
- Identify the correct dataflow ID (CPI is one of about 800)
- Look up the Data Structure Definition to understand the dimensions
- Decode the SDMX-ML XML format into something queryable
- Map cryptic dimension codes to meaningful labels (TSEST, MEASURE, INDEX, ADJUSTMENT)
- Handle the differences between SDMX 2.0 and SDMX 2.1
- Build error handling for the occasional schema change
The simplest production-ready ABS SDMX client is around 400 lines of Python. Most engineers we have spoken to spent 2-5 days getting one working.
What ausdata.io does instead
One HTTP call:
curl -H "Authorization: Bearer ak_YOUR_KEY" \
https://api.ausdata.io/v1/data/abs/CPI
Returns:
{
"data": [
{
"period": "2025-Q3",
"value": 2.8,
"dimensions": {
"region": "australia",
"measure": "change_year",
"category": "all_groups",
"adjustment": "original"
},
"unit": "Percent"
}
],
"meta": {
"endpoint": "/v1/data/abs/CPI",
"sources": [{
"name": "Australian Bureau of Statistics",
"url": "https://www.abs.gov.au/...",
"attribution": "Based on Australian Bureau of Statistics data, licensed under CC-BY 4.0."
}],
"retrieved_at": "2026-05-27T01:00:00Z",
"stale": false,
"server_version": "0.7.39"
}
}
Same data. No SDMX, no XML, no dimension-code lookup.
SDMX pass-through (ABS only)
If you are using ABS Data Explorer to design queries, you can paste the SDMX key directly without learning the renamed dimension values:
curl -H "Authorization: Bearer ak_YOUR_KEY" \
"https://api.ausdata.io/v1/data/abs/LF?sdmx_key=M13.3.1599.10.1%2B2.M&start=2000-01"
Optional: pin the dataflow version with ?structure_version=1.0.0
(matters when ABS publishes a new structure version and you want your
existing analysis to keep using the old shape).
When sdmx_key is set, the curated-filter translation is skipped and
the key is forwarded verbatim. Mixing sdmx_key with curated filters
(e.g. region=nsw) returns a clear error.
URL encoding: SDMX keys use + to join multiple values per dimension.
Send the + either as %2B (URL-encoded) or as a literal + (the
gateway swaps it back from URL-decoded space). Both forms work.
What ausdata.io is, plainly
ausdata.io is a REST API and MCP server over the 9 main Australian public data sources (ABS, RBA, ATO, APRA, AIHW, ASIC, AEMO, WGEA, BOM). The ABS sister handles the SDMX-XML parsing for you. You hit a JSON endpoint, you get JSON.
The data is genuinely the same data ABS publishes. We do not modify values, we do not re-scale, we do not interpolate. Every response carries the source URL and CC-BY 4.0 attribution string. You can use the output in commercial products, in articles, in dashboards. The licence permits it.
When ABS SDMX is the right answer
There are real cases where you should go direct to ABS SDMX:
- Your organisation already has an SDMX integration to other sources (Eurostat, OECD) and consistency matters
- You need a dataset ausdata.io has not yet curated
- You are an academic researcher publishing methodology that requires direct-from-source provenance
- You are building a competitor to ausdata.io
For most other cases --- fintech engineers, newsletter writers, indie analysts, AI agents --- the abstraction is worth far more than the directness.
When ausdata.io is the right answer
- You want the data in 30 seconds, not a week
- You want the same envelope across ABS, RBA, APRA, ATO, AEMO and BOM (you only learn one response shape)
- You want cross-source composers like
/v1/real-rate-regimethat join RBA cash rate to ABS CPI in one call - You want webhooks when ABS publishes new CPI
- You want a free tier with no card so you can evaluate honestly
Pricing comparison
ABS SDMX is free. ausdata.io free tier is also free (500 calls per month, no card). If you stay under 500 calls per month, the cost difference is zero --- what differs is your time.
If you exceed 500 calls per month, ausdata.io tiers are $29 Analyst (10,000 calls), $99 Embed (100,000 calls), and custom Enterprise. The free tier covers most independent use cases. The paid tiers cover product use cases where the data is load-bearing for what you ship.
Honest read
If you are happy with SDMX, stay with SDMX. Nothing about ausdata.io requires you to migrate.
If you have ever closed the ABS Data Explorer in frustration, ausdata.io is the answer to that frustration. The free tier is enough to evaluate it in 5 minutes. If it does not fit your workflow, you have lost nothing.
Get a free API key → /register