NAB APInab.com.au ↗
Access NAB interest rates, home loan products, credit card listings, and repayment calculators via 10 structured endpoints. No official API required.
What is the NAB API?
The NAB API exposes 10 endpoints covering home loan products, personal loan listings, credit card features, and interest rate tables from nab.com.au. The get_home_loan_rates_json endpoint returns the full rate table including every LVR tier, fee schedules, and calculator configuration, while get_home_loan_repayment_calculator and get_personal_loan_repayment_calculator accept loan parameters and return computed repayment figures.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e7f94271-d844-4fdb-bce1-d36ded4682cf/get_home_loan_products' \ -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 nab-com-au-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: NAB Loans and Interest Rates API — bounded, re-runnable."""
from parse_apis.nab_loans_and_interest_rates_api import NAB, HomeLoanProduct, RatesHubCategory, NotFoundError
nab = NAB()
# List home loan products with rates and fees
for product in nab.homeloanproducts.list(limit=5):
print(product.name, product.product_id)
for rate in product.rates:
print(f" Rate: {rate.title} = {rate.value}{rate.unit} {rate.period}")
for fee in product.fees:
print(f" Fee: {fee.title} = {fee.value}{fee.unit}")
# Get calculator data (full structured rate tables)
calc_data = nab.homeloanratesdatas.get()
print("Calculator properties keys:", list(calc_data.properties.keys()) if calc_data.properties else "empty")
# Get comprehensive home loan interest rate tables
for table in nab.homeloaninterestrates.list(limit=5):
print(table.table_name, len(table.data))
# List personal loan products
loan = nab.personalloanproducts.list(limit=1).first()
if loan:
print(loan.name, loan.url, loan.description)
# Get indicator rates for credit cards and personal loans
for rate_table in nab.indicatorrates.list(limit=3):
print(rate_table.table_name, len(rate_table.data))
# List credit card products with typed error handling
try:
for card in nab.creditcards.list(limit=3):
print(card.name, card.url)
for feature in card.features:
print(f" - {feature}")
except NotFoundError as exc:
print(f"Credit cards page not found: {exc}")
# Browse rates hub categories
for cat in nab.rateshubcategories.list(limit=3):
print(cat.category, len(cat.links))
print("exercised: homeloanproducts.list / homeloanratesdatas.get / homeloaninterestrates.list / personalloanproducts.list / indicatorrates.list / creditcards.list / rateshubcategories.list")
List home loan products from NAB's structured content API. Returns product names, descriptions, current interest rates (variable and comparison), key features, and fee schedules. Each product includes multiple rate tiers (e.g. by LVR band) and a unique product_id.
No input parameters required.
{
"type": "object",
"fields": {
"products": "array of home loan product objects with name, description, product_id, rates, features, and fees"
},
"sample": {
"data": {
"products": [
{
"fees": [
{
"unit": "$",
"title": "Monthly fee",
"value": "0",
"period": ""
}
],
"name": "Basic variable rate",
"rates": [
{
"type": "nab-interest-rate-type:variable",
"unit": "%",
"title": "comparison rate",
"value": "6.44",
"period": "p.a."
}
],
"features": [
"No monthly service fees",
"Redraw with no fees",
"Flexible repayments"
],
"product_id": "nab-basic-variable-home-loan",
"description": "Take advantage of our simple, low-rate home loan with no monthly or annual servicing fees."
}
]
},
"status": "success"
}
}About the NAB API
Home Loan Data
The get_home_loan_products endpoint returns an array of home loan product objects, each with a product_id, name, description, rate tiers (variable and comparison rates broken down by LVR band), a features list, and a fee schedule. For the full dataset backing NAB's repayments calculator, get_home_loan_rates_json returns a properties object containing a products array, fieldLabels, a description string, and a startingIndex value. get_all_home_loan_interest_rates delivers every rate table from the dedicated rates page — organized by loan type (variable, fixed, Choice Package) — with each table including rows keyed to interest rate and comparison rate columns.
Personal Loans and Credit Cards
get_personal_loan_products returns product name, url, and description fields for each personal loan offering. get_credit_card_products returns the same structure plus a features list for each card. get_indicator_rates_other_lending covers indicator rates across credit cards, personal loans, and overdrafts, returning named rate tables with rows for purchase rates, cash advance rates, and comparison rates — including both current and legacy products.
Calculators and Business Rates
The repayment calculator endpoints accept optional parameters: get_home_loan_repayment_calculator takes loan_purpose (OWNER_OCCUPIED or INVESTMENT), property_value, repayment_type (PRINCIPAL_AND_INTEREST or INTEREST_ONLY), and borrowing_amount. get_personal_loan_repayment_calculator takes loan_amount, loan_term (12–84 months), rate, and interest_type (FIXED or VARIABLE). Both return a data object with computed repayment details. get_business_lending_rates returns a business_rates array, and get_rates_hub exposes the full NAB rates hub as categorized navigation links, useful for discovering which rate pages exist.
Navigation and Discovery
get_rates_hub returns a categories array, each entry containing a category name and an array of links to rate pages and calculators. This is useful for mapping the structure of NAB's published rate and fee resources before querying specific endpoints.
The NAB API is a managed, monitored endpoint for nab.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nab.com.au 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 nab.com.au 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?+
- Pulling current LVR-tiered home loan interest rates for mortgage comparison tools
- Populating a repayment calculator with live NAB rates using get_home_loan_repayment_calculator
- Listing NAB credit card products and their features for a financial product aggregator
- Monitoring changes in NAB's indicator rates for credit cards and personal loans over time
- Feeding NAB personal loan rates into a loan affordability calculator with get_personal_loan_repayment_calculator
- Building a rate alert service that tracks fixed vs. variable home loan rate movements by LVR band
- Surfacing NAB business lending rates alongside competitor data in a B2B finance dashboard
| 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.