Get current New Zealand home loan and term deposit rates programmatically.
Getting an API key
To use the API you need an API key.
- Contact Josh to request an API key (e.g. for your product or internal tool).
- You will receive a single API key. Store it securely and do not share it or commit it to version control.
- Send the key on every request using the
X-API-Keyheader orAuthorization: Bearer(see Authentication).
Use environment variables or a secrets manager, not hardcoded values or public repos.
Making a request
Once you have an API key, you can call the API. Replace YOUR_API_KEY with your key.
curl "https://nzrates.co.nz/api/v1/rates/home-loans?term_months=12,24" \ --header "X-API-Key: YOUR_API_KEY"
A successful response includes a JSON-formatted data array of rate objects:
{
"data": [
{
"provider": "ANZ",
"rate_type": "fixed",
"term_months": 12,
"customer_type": "standard",
"rate": 6.45,
"source_url": "https://...",
"scraped_at": "2026-02-26T08:00:00+00:00"
}
]
}
Base URL & versioning
The base URL is https://nzrates.co.nz/api/v1/.
Authentication
Send your API key on every request using one of:
- X-API-Key header:
X-API-Key: your-api-key - Authorization header:
Authorization: Bearer your-api-key
Missing or invalid keys receive 401 with a JSON detail message.
Endpoints
GET /api/v1/rates/home-loans
Returns all current home loan rates (latest observation per provider, rate type, term, and customer type).
Optional query parameters:
customer_type–specialorstandardrate_type–fixedorfloatingterm_months– comma-separated, e.g.6,12,24
GET /api/v1/rates/term-deposits
Returns all current term deposit rates (latest observation per provider and term).
Optional query parameter:
term_months– comma-separated, e.g.6,12,24
Home loan objects include provider, rate_type, term_months, customer_type, rate, source_url, scraped_at.
Term deposit objects include provider, term_months, rate, source_url, scraped_at.
Be careful using customer_type (relevant to home loan rates)
Rates are scraped from provider sites. “special” vs “standard” is inferred per provider and these terms do not mean the same thing for each lender. For some providers it indicates a discount or special offer. For others it reflects LVR bands or eligibility. Some providers only expose one rates tier which are always returned as standard.
It can be misleading to compare or aggregate by customer_type across providers without understanding each provider’s semantics. Always verify rates with source_url and the lender’s own terms.
Rate limits
Requests are limited per API key (default 120 per minute). When exceeded you receive 429 with a Retry-After header and a JSON detail message.
Next steps
For interactive exploration and full schema details:
- OpenAPI (Swagger) UI: Interactive docs in your browser.
- openapi.json: Machine-readable API schema that you can import into tools like Postman.