Skip to content

GET /products

Get lender products for specified lenders.

Retrieves mortgage products (variable basic and variable package) for one or more lenders. Products include rate tables, fees, and product features.

Required: RSA signature-based authentication

X-Auth-Client-ID: {clientId}
X-Auth-Access-Token: {accessToken}
X-Auth-Timestamp: {timestamp}
X-Auth-Nonce: {nonce}
X-Auth-Signature: {signature}

Method: GET

URL: https://api.quickli.com/api/v1/products

Headers:

X-Auth-Client-ID: {clientId}
X-Auth-Access-Token: {accessToken}
X-Auth-Timestamp: {timestamp}
X-Auth-Nonce: {nonce}
X-Auth-Signature: {signature}
Content-Type: application/json

Query Parameters:

ParameterTypeRequiredDescription
lendersstring | string[]YesSingle lender or comma-separated list (e.g., cba or cba,westpac,anz)

Examples:

GET /api/v1/products?lenders=cba
GET /api/v1/products?lenders=cba,westpac,anz

See Product Schema for complete field documentation.

{
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"lender": "cba",
"productType": "variable_package",
"productName": "Wealth Package",
"setupFee": 600,
"ongoingFee": 395,
"loanAmountThresholds": [150000, 250000, 500000],
"lvrThresholds": [60, 70, 80, 90],
"rateTableFields": {
"baseRate": 6.54,
"lvrDiscounts": { "60": -0.20, "80": 0.00 },
"loanAmountDiscounts": { "250000": -0.10 },
"investmentPremium": 0.25,
"interestOnlyPremium": 0.30
},
"productFeatures": {
"maxLVR": 95,
"minLoanAmount": 50000,
"offsetAccount": true,
"redrawFacility": true
},
"isForServicing": true,
"lastUpdated": "2025-10-15T00:00:00.000Z"
}
],
"meta": {
"timestamp": "2025-11-03T10:30:00.000Z",
"count": 1
}
}

Missing or invalid lenders parameter.

Invalid credentials.

User doesn’t have access to one or more specified lenders.

Terminal window
# Single lender
curl -X GET 'https://api.quickli.com/api/v1/products?lenders=cba' \
-H "X-Auth-Client-ID: {clientId}" \
-H "X-Auth-Access-Token: {accessToken}" \
-H "X-Auth-Timestamp: {timestamp}" \
-H "X-Auth-Nonce: {nonce}" \
-H "X-Auth-Signature: {signature}"
# Multiple lenders
curl -X GET 'https://api.quickli.com/api/v1/products?lenders=cba,westpac,anz' \
-H "X-Auth-Client-ID: {clientId}" \
-H "X-Auth-Access-Token: {accessToken}" \
-H "X-Auth-Timestamp: {timestamp}" \
-H "X-Auth-Nonce: {nonce}" \
-H "X-Auth-Signature: {signature}"
const products = await getProducts(['cba', 'westpac', 'anz']);
const comparison = products.map(p => ({
lender: p.lender,
product: p.productName,
type: p.productType,
firstYearCost: p.setupFee + p.ongoingFee
})).sort((a, b) => a.firstYearCost - b.firstYearCost);
console.table(comparison);
const products = await getProducts(['cba', 'westpac']);
const packageProducts = products.filter(p => p.productType === 'variable_package');
packageProducts.forEach(p => {
console.log(`${p.lender}: Base ${p.rateTableFields.baseRate}%`);
});
const products = await getProducts('cba');
const packageProduct = products.find(p => p.productType === 'variable_package');
console.log('Features:');
console.log(`- Offset account: ${packageProduct.productFeatures.offsetAccount ? 'Yes' : 'No'}`);
console.log(`- Redraw: ${packageProduct.productFeatures.redrawFacility ? 'Yes' : 'No'}`);
console.log(`- Max LVR: ${packageProduct.productFeatures.maxLVR}%`);

Products returned are automatically filtered by:

  1. Lender access: Only lenders you have permission for
  2. Product type: Only variable_basic and variable_package
  3. Servicing flag: Only products where isForServicing: true
  • Only returns products used in servicing calculations
  • Product rates are updated regularly (check lastUpdated field)
  • Rate tables show base rates and adjustments
  • Use products with compute servicing to see effective rates

Last updated: 2025-11-19