CDR Register (Australian Open Banking)
Pricing
Pay per usage
CDR Register (Australian Open Banking)
Lists data holders and their CDR participation status from the official Australian CDR Register. Two modes: holders (per-brand details with industry, ABN, public base URI) and status (per-legal-entity ACTIVE/REMOVED).
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Huxley
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Lists the data holders and legal entities registered under Australia's Consumer Data Right (CDR) — the open-banking regime run by the ACCC. Two modes:
holders(default) — list data-holder brands (banks, energy retailers, non-bank lenders), with the industries they support, their public base URI, ABN/ACN, and logo.status— list every legal entity in the Register with its current CDR status (ACTIVEorREMOVED).
The Actor talks to the official CDR Register REST API at https://api.cdr.gov.au/cdr-register/v1/. No auth, no rate limiting, no scraping.
Output shape (holders mode)
{"kind": "data_holder_brand","brand_id": "ceca4dce-3f8f-ef11-95f6-000d3a79c46e","interim_id": "fe051e80-e743-44e1-ae83-a4d6286eb596","brand_name": "Alex.Bank","industries": ["banking"],"public_base_uri": "https://public.cdr.alex.com.au","abn": "13627244848","acn": "627244848","logo_uri": "https://www.alex.bank/assets/alex-bank-logo.png","last_updated": "2026-07-01T12:14:23Z","fetched_at": "2026-07-09T14:19:48Z","status": null,"legal_entity_status_counts": {"ACTIVE": 99, "REMOVED": 14}}
Output shape (status mode)
{"kind": "legal_entity_status","legal_entity_id": "e339fcd4-b5b8-ed11-a852-000d3a8842e1","status": "ACTIVE","fetched_at": "2026-07-09T14:20:10Z"}
Quick start
# All 117 banking brandsapify call mrjerry/cdr-register --input '{"mode":"holders","industry":"banking"}'# All brands with "AMP" in the name (catches AMP Bank GO, My AMP, Ampol Energy)apify call mrjerry/cdr-register --input '{"mode":"holders","name_contains":"AMP"}'# First 5 banking brandsapify call mrjerry/cdr-register --input '{"mode":"holders","industry":"banking","limit":5}'# Every legal entity with its CDR status (113 records: 99 ACTIVE, 14 REMOVED)apify call mrjerry/cdr-register --input '{"mode":"status"}'
From Python:
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_API_TOKEN")run = client.actor("mrjerry/cdr-register").call(run_input={"mode": "holders", "industry": "banking"},)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["brand_name"], "->", item["public_base_uri"])
Inputs
| Field | Mode | Type | Default | Description |
|---|---|---|---|---|
mode | all | string | holders | holders (default) or status. |
industry | holders | string | all | banking, energy, non-bank-lending, or all. |
name_contains | holders | string | — | Case-insensitive substring match on the brand name, e.g. commbank, AMP, paypal. |
status | holders | string | — | ACTIVE or REMOVED. The Register API doesn't expose brand-level status, so this is a forward-compatible filter — when the Register adds it, the filter will start working. |
limit | holders | integer | — | Cap the number of brand records pushed. |
What's in the Register
As of mid-2026 the Register has:
- ~200 data-holder brands across three sectors
- 113 legal entities with
ACTIVEorREMOVEDstatus - Three CDR sectors: banking (Big 4 + neobanks + non-bank lenders), energy (retailers), and non-bank-lending (mortgage managers, etc.)
Notable banking brands discovered by the Actor include: Alex.Bank, AMP Bank GO, ANZ, Bank of Queensland, Bendigo Bank, CBA, Citibank, HSBC, ING, Macquarie, MyState Bank, NAB, PayPal Australia, Suncorp, Tyro, Westpac, and many more.
How it works
The Actor calls two endpoints of the official CDR Register:
| Endpoint | What it returns |
|---|---|
GET /cdr-register/v1/{industry}/data-holders/brands/summary | Per-brand info: name, publicBaseUri, ABN/ACN, logoUri, industries, lastUpdated. |
GET /cdr-register/v1/all/data-holders/status | Per-legal-entity ACTIVE/REMOVED status. |
Both endpoints require the x-v: 1 header (per the Consumer Data Standards) but no authentication. The Actor does a single GET per run, normalises the response, and pushes one record per brand (or per legal entity, in status mode) to the Apify Dataset.
Use as an LLM tool
Three natural agent tasks this Actor enables:
- "Is bank X on CDR?" —
mode: "holders", name_contains: "<bank>", industry: "banking". A hit means they're on CDR; thepublicBaseUrifield is where to find their public product API. - "Which banks are on CDR?" —
mode: "holders", industry: "banking". Get every banking brand in the Register. - "Has any bank recently left CDR?" —
mode: "status", then look forstatus: "REMOVED"records.
You can wrap the Actor as an MCP server with the python-mcp-empty template to expose it directly to Claude as a tool.
Local development
# Installpip install -r requirements.txt# Run with a test inputecho '{"mode":"holders","industry":"banking","limit":3}' \> storage/key_value_stores/default/INPUT.jsonapify run# Inspectls storage/datasets/default/cat storage/datasets/default/000000001.json
Limits & gotchas
- No brand-level status field. The Register's
statusendpoint is keyed bylegalEntityId; brand records are keyed bydataHolderBrandId. There's no public join. Each brand record carries alegal_entity_status_countsfield that summarises the Register-wide ACTIVE/REMOVED totals so callers can at least see the trend. - No retry on transient errors. The CDR Register is reliable; add
tenacityif you need it. - Free plan = zero monetization. On Apify's free tier you pay for compute with monthly free credits. The Actor is tiny (one HTTP GET per mode) so cost is negligible.
- Data recipients aren't covered yet. The
data-recipients/brands/summaryendpoint is not currently public (returns 404 on the public API). If it goes live, this Actor will be the natural place to add arecipientsmode.
License
MIT.