Endpoints Overview
API Endpoints
Section titled “API Endpoints”The Quickli Public API provides RESTful endpoints for managing mortgage scenarios, calculating servicing, and querying lender data.
Base URL
Section titled “Base URL”https://api.quickli.com/api/v1Available Endpoints
Section titled “Available Endpoints”User Management
Section titled “User Management”| Endpoint | Method | Description | Status |
|---|---|---|---|
| /user | GET | Get authenticated user info and accessible teams | ✅ |
Scenarios
Section titled “Scenarios”| Endpoint | Method | Description | Status |
|---|---|---|---|
| /scenarios | POST | Create a new scenario | ✅ |
| /scenarios/{id} | GET | Get scenario by ID | ✅ |
| /scenarios/{id} | PUT | Update an existing scenario | ✅ |
Compute (Servicing)
Section titled “Compute (Servicing)”| Endpoint | Method | Description | Status |
|---|---|---|---|
| /compute/{scenarioId} | POST | Calculate servicing for a lender | ✅ |
Products
Section titled “Products”| Endpoint | Method | Description | Status |
|---|---|---|---|
| /products | GET | Get lender products | ✅ |
Policies
Section titled “Policies”| Endpoint | Method | Description | Status |
|---|---|---|---|
| /policies | GET | Query lending policies | ✅ |
Endpoint Patterns
Section titled “Endpoint Patterns”REST Conventions
Section titled “REST Conventions”All endpoints follow RESTful conventions:
- GET - Retrieve resources (read-only, idempotent)
- POST - Create new resources
- PUT - Update existing resources
- DELETE - Remove resources
Authentication
Section titled “Authentication”All endpoints require RSA signature-based authentication with the following headers:
X-Auth-Client-ID: {clientId}X-Auth-Access-Token: {accessToken}X-Auth-Timestamp: {timestamp}X-Auth-Nonce: {nonce}X-Auth-Signature: {signature}See the authentication guide for details on signing requests.
Response Format
Section titled “Response Format”All successful responses follow this structure:
{ "data": { /* response data */ }, "meta": { "timestamp": "2025-11-03T10:30:00.000Z", "version": "1.0.0", "count": 10 // Optional: for list endpoints }}Error Responses
Section titled “Error Responses”All errors follow this structure:
{ "error": { "code": "ERROR_CODE", "message": "Human-readable error message", "details": { /* optional additional info */ }, "timestamp": "2025-11-03T10:30:00.000Z" }}See the error handling guide for complete error documentation.
Quick Start Examples
Section titled “Quick Start Examples”1. Get Your User Info
Section titled “1. Get Your User Info”curl -X GET https://api.quickli.com/api/v1/user \ -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}"Response:
{ "data": { "email": "broker@example.com", "teams": [ { "id": "507f1f77bcf86cd799439011", "name": "Team Alpha" } ] }}2. Create a Scenario
Section titled “2. Create a Scenario”curl -X POST https://api.quickli.com/api/v1/scenarios \ -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}" \ -H "Content-Type: application/json" \ -d '{ "description": "First home buyer scenario", "scenario": { "households": [{ "id": "h1", "status": "single", "num_adults": 1, "num_dependants": 0, "postcode": 2000, "shared_with_households": [] }] } }'Response:
{ "data": { "id": "507f1f77bcf86cd799439011", "description": "First home buyer scenario", "scenario": { /* full scenario with defaults */ } }}3. Calculate Servicing
Section titled “3. Calculate Servicing”curl -X POST https://api.quickli.com/api/v1/compute/507f1f77bcf86cd799439011 \ -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}" \ -H "Content-Type: application/json" \ -d '{ "lenderName": "cba", "addToRates": 0 }'Response:
{ "data": { "lender_name": "cba", "does_service": true, "max_borrowing_capacity": 720000, "net_monthly_surplus": 1245.50, "validations": [ ... ] }}4. Get Products
Section titled “4. Get Products”curl -X GET 'https://api.quickli.com/api/v1/products?lenders=cba,westpac' \ -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}"Response:
{ "data": [ { "lender": "cba", "productType": "variable_package", "productName": "Wealth Package", "setupFee": 600, "ongoingFee": 395 } ], "meta": { "count": 2 }}5. Query Policies
Section titled “5. Query Policies”curl -X GET 'https://api.quickli.com/api/v1/policies?lenders=cba&triggers=payg,commission' \ -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}"Response:
{ "data": [ { "lender": "cba", "triggers": [ "payg", "commission" ], "content": "# PAYG Income Assessment\n\n...", "lastVerifiedOn": "2025-10-15T00:00:00.000Z" } ]}Common Workflows
Section titled “Common Workflows”Workflow 1: Create and Calculate
Section titled “Workflow 1: Create and Calculate”- Get teams:
GET /userto see available teams - Create scenario:
POST /scenarioswith team ID - Calculate servicing:
POST /compute/{scenarioId}with lender - Review results: Check
does_serviceandmax_borrowing_capacity
Workflow 2: Compare Lenders
Section titled “Workflow 2: Compare Lenders”- Create scenario:
POST /scenariosonce - Calculate for multiple lenders: Call
POST /compute/{scenarioId}for each lender - Compare results: Analyze rates, capacity, and validation results
- Update scenario:
PUT /scenarios/{id}to adjust if needed
Workflow 3: Research Policies
Section titled “Workflow 3: Research Policies”- Query products:
GET /productsto see available products and rates - Query policies:
GET /policiesto understand assessment criteria - Build compliant scenario: Create scenario that meets policy requirements
- Validate: Run servicing calculation to confirm
Rate Limits
Section titled “Rate Limits”Rate limiting is not currently enforced but will be implemented in future releases.
Best practices:
- Batch operations where possible
- Cache responses appropriately
- Implement exponential backoff for retries
Pagination
Section titled “Pagination”List endpoints (coming soon) will support pagination:
GET /scenarios?limit=50&offset=0| Parameter | Description | Default |
|---|---|---|
limit | Number of results per page | 50 |
offset | Number of results to skip | 0 |
Filtering and Sorting
Section titled “Filtering and Sorting”List endpoints will support filtering and sorting:
GET /scenarios?teamId={teamId}&sort=created&order=descVersioning
Section titled “Versioning”The API uses URL-based versioning (/api/v1/). All endpoints in this version are backwards-compatible within the v1
namespace.
Breaking changes will result in a new version (/api/v2/).
HTTP Status Codes
Section titled “HTTP Status Codes”| Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | Invalid request format |
| 401 | Unauthorized | Authentication failed |
| 403 | Forbidden | Not authorized for resource |
| 404 | Not Found | Resource doesn’t exist |
| 422 | Validation Error | Request body validation failed |
| 500 | Server Error | Unexpected server error |
Next Steps
Section titled “Next Steps”- Browse individual endpoint documentation
- Review authentication guide
- Understand error handling
- Explore data schemas
Last updated: 2025-11-19