{
  "openapi": "3.1.0",
  "info": {
    "title": "Australian car loan rates",
    "version": "1.0.0",
    "summary": "Car loan rates from each Australian bank's own published product data and terms, ranked by comparison rate per vehicle, rate type and loan amount.",
    "description": "Rates are published by each bank as public product reference data under the Consumer Data Right and are reproduced here as reference data with the source URL and the bank's own last-updated timestamp on every row. Terms that data leaves out (vehicle age limits, fees, loan terms, early repayment costs, who may borrow) are read from the bank's own terms and pages, quoted, and re-checked daily; where the bank's page contradicts its product record, we follow the page until the bank republishes. Rates change without notice and the rate a borrower is offered depends on the bank's assessment, often of their credit history; check the bank's page before acting. This is not financial advice. The comparison rate is the bank's own figure, worked out by a formula set in law and including most fees, on one of the loan examples the law prescribes: the bank picks the one closest to its typical loan. For car loans that is usually $30,000 over 5 years, and comparison_basis says when the bank states the example it used. On a smaller loan or a shorter term the fees weigh more than it shows. Covers only lenders that publish car loans under the Consumer Data Right: banks, credit unions and a few non-banks. Non-bank car financiers and dealer or manufacturer finance are not on the CDR register and are not included (checked 2026-10-18: Automotive Financial Services (AFS), Pepper, Plenti, Money3, Latitude, Toyota Finance, Angle Finance, Firstmac, Wisr, Harmoney, NOW Finance, Stratton and Metro Finance are absent). Business vehicle loans (chattel mortgages, ABN required) are a separate dataset, https://deepalmanac.com/au/finance/business-car-loans/; novated leases are not covered.",
    "license": {
      "name": "Deep Almanac's own work CC BY 4.0; source data under its own terms, listed in licences in each index.json",
      "url": "https://deepalmanac.com/terms#data-licences"
    }
  },
  "servers": [
    {
      "url": "https://deepalmanac.com"
    }
  ],
  "security": [],
  "tags": [
    {
      "name": "car-loans",
      "description": "Australian car loan rates from each bank's own product data and terms."
    }
  ],
  "paths": {
    "/v1/compare/car-loans": {
      "get": {
        "summary": "The best rates at the reader's exact loan, as JSON",
        "description": "Ranks rows/<vehicle>/<kind>.json at the reader's own loan by the same rule as the best/ slices (each bank's lowest comparison rate, then rate, then name), gives the monthly repayment and total interest over 60 months (or the loan's longest term, where shorter) at the rate, and lists every bank left out, with why. Replies 200 with JSON directly, echoing the query; at 15000, 30000 and 60000 it gives the same ranking as best/<vehicle>/<kind>/<loan>.json.",
        "parameters": [
          {
            "name": "loan",
            "in": "query",
            "required": true,
            "description": "Dollars to borrow.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vehicle",
            "in": "query",
            "required": false,
            "description": "new (default), used or green.",
            "schema": {
              "type": "string",
              "enum": [
                "new",
                "used",
                "green"
              ]
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": false,
            "description": "any (default), fixed or variable.",
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "fixed",
                "variable"
              ]
            }
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "description": "broker, a group kind (occupation, age, ...) or all: rates left out by default.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many banks to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ranking: query, method_note, banks_ranked, not_ranked and results, each with a summary.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "A parameter could not be read; the reply says which and gives an example."
          }
        }
      }
    },
    "/au/finance/car-loans/v1/index.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "Dataset index: files, timestamps and every per-bank file",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "dataset": {
                      "type": "string",
                      "description": "Dataset name."
                    },
                    "page": {
                      "type": "string",
                      "description": "Human-readable page for the dataset.",
                      "format": "uri"
                    },
                    "start_here": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "The small file that answers most questions here: answer_file (a URL template), inputs (how to fill it), example (a filled-in URL) and sometimes also (the next file for a common variant).",
                      "properties": {
                        "answer_file": {
                          "type": "string",
                          "description": "URL template of the answer file."
                        },
                        "inputs": {
                          "type": "string",
                          "description": "What each placeholder takes."
                        },
                        "example": {
                          "type": "string",
                          "description": "A filled-in answer file URL.",
                          "format": "uri"
                        },
                        "also": {
                          "type": "string",
                          "description": "Another file for a common variant of the question."
                        },
                        "lookup": {
                          "type": "string",
                          "description": "Where present: a /v1/lookup URL that takes the reader's own numbers, applies the bucket rules and redirects to the answer file.",
                          "format": "uri"
                        },
                        "compare": {
                          "type": "string",
                          "description": "Where present: a /v1/compare URL that ranks every rate at the reader's exact amount and answers with JSON directly.",
                          "format": "uri"
                        }
                      }
                    },
                    "generated_at": {
                      "type": "string",
                      "description": "When this index was written, UTC, YYYY-MM-DDTHH:MM:SSZ.",
                      "format": "date-time",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
                    },
                    "fetched_at": {
                      "type": "string",
                      "description": "When the source was last fetched, UTC, YYYY-MM-DDTHH:MM:SSZ.",
                      "format": "date-time",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"
                    },
                    "data_as_of": {
                      "type": "string",
                      "description": "How current the data is: a date (YYYY-MM-DD) or a UTC timestamp (YYYY-MM-DDTHH:MM:SSZ); data_as_of_basis says what it means here.",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}Z)?$"
                    },
                    "data_as_of_basis": {
                      "type": "string",
                      "description": "One sentence saying what data_as_of means for this dataset."
                    },
                    "source": {
                      "type": "string",
                      "description": "Data source statement."
                    },
                    "licence_note": {
                      "type": "string",
                      "description": "Terms of reuse and the not-advice note."
                    },
                    "licences": {
                      "type": "array",
                      "description": "What may be reused and on what terms, layer by layer: each layer's source, the fields it covers, its licence and the attribution it asks for. The last layer is Deep Almanac's own work (CC BY 4.0), covering every field no other layer names. Reusing a field means meeting the terms of the layer that covers it.",
                      "items": {
                        "type": "object",
                        "required": [
                          "layer",
                          "covers",
                          "licence",
                          "licence_url",
                          "attribution"
                        ],
                        "properties": {
                          "layer": {
                            "type": "string",
                            "description": "The source."
                          },
                          "covers": {
                            "type": "string",
                            "description": "The fields it covers."
                          },
                          "licence": {
                            "type": "string",
                            "description": "Its licence, or why there is none."
                          },
                          "licence_url": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "uri",
                            "description": "The licence's own page, where it has one."
                          },
                          "attribution": {
                            "type": "string",
                            "description": "The credit the layer asks for."
                          }
                        }
                      }
                    },
                    "questions": {
                      "type": "string",
                      "description": "This dataset's questions.json: what to ask the reader first and which file answers each.",
                      "format": "uri"
                    },
                    "openapi": {
                      "type": "string",
                      "description": "This dataset's OpenAPI document.",
                      "format": "uri"
                    },
                    "status": {
                      "type": "string",
                      "description": "https://deepalmanac.com/status.json: when every dataset was last fetched and when it counts as overdue.",
                      "format": "uri"
                    },
                    "llms": {
                      "type": "string",
                      "description": "https://deepalmanac.com/llms.txt: the site's guide for language models.",
                      "format": "uri"
                    },
                    "files": {
                      "type": "array",
                      "description": "Every top-level file this dataset publishes, as absolute URLs.",
                      "items": {
                        "type": "string",
                        "format": "uri"
                      }
                    },
                    "file_guide": {
                      "type": "array",
                      "description": "What each of those files holds, in the same order.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "file": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "description": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "coverage_note": {
                      "type": "string",
                      "description": "Which lenders are and are not covered."
                    },
                    "cash_rate_change": {
                      "type": "object",
                      "description": "The Reserve Bank's latest cash rate move."
                    },
                    "before_answering": {
                      "type": "string"
                    },
                    "answering": {
                      "type": "object"
                    },
                    "best_dir": {
                      "type": "object",
                      "properties": {
                        "url_template": {
                          "type": "string"
                        }
                      }
                    },
                    "top_dir": {
                      "type": "object",
                      "properties": {
                        "url_template": {
                          "type": "string"
                        }
                      }
                    },
                    "brands_dir": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "url_template": {
                          "type": "string"
                        },
                        "page_template": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer"
                        },
                        "brands": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "brand_slug": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string",
                                "format": "uri"
                              },
                              "page": {
                                "type": "string",
                                "format": "uri"
                              }
                            }
                          }
                        }
                      }
                    },
                    "source_dir": {
                      "type": "object",
                      "properties": {
                        "path": {
                          "type": "string"
                        },
                        "url_template": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        },
                        "count": {
                          "type": "integer"
                        }
                      }
                    }
                  },
                  "required": [
                    "dataset",
                    "page",
                    "start_here",
                    "generated_at",
                    "fetched_at",
                    "data_as_of",
                    "data_as_of_basis",
                    "source",
                    "licence_note",
                    "licences",
                    "questions",
                    "openapi",
                    "status",
                    "llms",
                    "files",
                    "brands_dir"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/au/finance/car-loans/v1/questions.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "What to ask a reader before answering a car loan question, and which file answers it (read first)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "note",
                    "questions",
                    "commentary",
                    "commentary_note",
                    "what_it_cannot_answer_yet",
                    "context_this_dataset_does_not_hold",
                    "not_advice"
                  ],
                  "properties": {
                    "note": {
                      "type": "string"
                    },
                    "questions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "also_asked_as": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "has_no_single_answer": {
                            "type": "boolean",
                            "description": "True when the inputs below change the answer."
                          },
                          "ask_the_reader_first": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "input": {
                                  "type": "string"
                                },
                                "why": {
                                  "type": "string"
                                },
                                "how_much_it_moves_the_answer": {
                                  "type": "string",
                                  "description": "Computed from today's data."
                                }
                              }
                            }
                          },
                          "then_read": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "string"
                            },
                            "description": "Label to URL or URL template; fill {placeholders} from the inputs."
                          },
                          "say_as_well": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "commentary": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "topic": {
                            "type": "string"
                          },
                          "what_you_will_see": {
                            "type": "string"
                          },
                          "why_it_is_correct": {
                            "type": "string"
                          },
                          "what_it_actually_means": {
                            "type": "string"
                          },
                          "say_this_as_well": {
                            "type": "string"
                          },
                          "do_not": {
                            "type": "string"
                          },
                          "check_it_yourself": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "commentary_note": {
                      "type": "string"
                    },
                    "what_it_cannot_answer_yet": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "why": {
                            "type": "string"
                          },
                          "where_to_send_the_reader": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "context_this_dataset_does_not_hold": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "not_advice": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/au/finance/car-loans/v1/best/{vehicle}/{kind}/{loan}.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "Every bank ranked for one slice (prefer this to best.json)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rank": {
                            "type": "integer"
                          },
                          "brand": {},
                          "brand_label": {},
                          "brand_slug": {},
                          "product_id": {},
                          "product_name": {},
                          "product_label": {},
                          "product_url": {},
                          "terms_url": {},
                          "car_loan_basis": {
                            "type": "string",
                            "enum": [
                              "name",
                              "green_text",
                              "vehicle_secured",
                              "rate_text"
                            ]
                          },
                          "rate_kind": {},
                          "lending_rate_type": {},
                          "fixed_months": {},
                          "kind": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "fixed",
                              "variable",
                              null
                            ]
                          },
                          "vehicles": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "new",
                                "used",
                                "green"
                              ]
                            }
                          },
                          "vehicle_age_min": {},
                          "vehicle_age_max": {},
                          "max_vehicle_age_months": {},
                          "vehicle_age_quote": {},
                          "security": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "secured",
                              "unsecured",
                              "partially_secured",
                              null
                            ]
                          },
                          "term_min_months": {},
                          "term_max_months": {},
                          "rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Annual rate as a fraction; null when rate_unreliable."
                          },
                          "rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "rate_published_pct": {
                            "type": "number",
                            "description": "The rate field exactly as the bank's feed gives it."
                          },
                          "rate_unreliable": {
                            "type": "boolean",
                            "description": "The feed's rate cannot be right (see conditions)."
                          },
                          "comparison_rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "The comparison rate is the bank's own figure, worked out by a formula set in law and including most fees, on one of the loan examples the law prescribes: the bank picks the one closest to its typical loan. For car loans that is usually $30,000 over 5 years, and comparison_basis says when the bank states the example it used. On a smaller loan or a shorter term the fees weigh more than it shows."
                          },
                          "comparison_rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "comparison_basis": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "amount": {
                                "type": "number"
                              },
                              "term_months": {
                                "type": "integer"
                              }
                            },
                            "description": "The loan example the bank says its comparison rate is calculated on; null when it does not say (usually $30,000 over 5 years)."
                          },
                          "rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Top of the bank's range for risk-based pricing."
                          },
                          "comparison_rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "risk_based": {
                            "type": "boolean",
                            "description": "The rate depends on the borrower's credit history; rate is the lowest."
                          },
                          "credit_band": {},
                          "loan_min": {},
                          "loan_max": {},
                          "max_lvr": {},
                          "redraw": {},
                          "annual_fee": {},
                          "upfront_fees": {},
                          "restrictions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "age_limited",
                                "broker_only",
                                "business",
                                "credit_impaired",
                                "existing_customers",
                                "income_limited",
                                "low_doc",
                                "occupation_membership",
                                "one_make_only",
                                "online_only",
                                "organisation_only",
                                "outdated_record",
                                "pensioner",
                                "profession",
                                "range_max",
                                "range_representative",
                                "refinance_only",
                                "region_limited",
                                "revert_rate",
                                "special_offer",
                                "staff",
                                "student"
                              ]
                            }
                          },
                          "conditions": {},
                          "record_stale": {},
                          "record_correction": {},
                          "source_url": {},
                          "source_snapshot": {
                            "type": "string",
                            "description": "Site-relative path of our verbatim snapshot of the CDR detail response."
                          },
                          "bank_last_updated": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "est_monthly_repayment": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "est_monthly_repayment and est_total_interest are estimates on the slice's loan amount over 60 months, or over the loan's own longest term where it is shorter (repayment_term_months and repayment_basis say which), at the rate (not the comparison rate), excluding all fees; null when the bank's rate field is unreliable."
                          },
                          "est_total_interest": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "repayment_term_months": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "repayment_basis": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      },
                      "description": "The default ranking: broker-only and occupation-limited rates left out."
                    },
                    "entries_all": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rank": {
                            "type": "integer"
                          },
                          "brand": {},
                          "brand_label": {},
                          "brand_slug": {},
                          "product_id": {},
                          "product_name": {},
                          "product_label": {},
                          "product_url": {},
                          "terms_url": {},
                          "car_loan_basis": {
                            "type": "string",
                            "enum": [
                              "name",
                              "green_text",
                              "vehicle_secured",
                              "rate_text"
                            ]
                          },
                          "rate_kind": {},
                          "lending_rate_type": {},
                          "fixed_months": {},
                          "kind": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "fixed",
                              "variable",
                              null
                            ]
                          },
                          "vehicles": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "new",
                                "used",
                                "green"
                              ]
                            }
                          },
                          "vehicle_age_min": {},
                          "vehicle_age_max": {},
                          "max_vehicle_age_months": {},
                          "vehicle_age_quote": {},
                          "security": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "secured",
                              "unsecured",
                              "partially_secured",
                              null
                            ]
                          },
                          "term_min_months": {},
                          "term_max_months": {},
                          "rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Annual rate as a fraction; null when rate_unreliable."
                          },
                          "rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "rate_published_pct": {
                            "type": "number",
                            "description": "The rate field exactly as the bank's feed gives it."
                          },
                          "rate_unreliable": {
                            "type": "boolean",
                            "description": "The feed's rate cannot be right (see conditions)."
                          },
                          "comparison_rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "The comparison rate is the bank's own figure, worked out by a formula set in law and including most fees, on one of the loan examples the law prescribes: the bank picks the one closest to its typical loan. For car loans that is usually $30,000 over 5 years, and comparison_basis says when the bank states the example it used. On a smaller loan or a shorter term the fees weigh more than it shows."
                          },
                          "comparison_rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "comparison_basis": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "amount": {
                                "type": "number"
                              },
                              "term_months": {
                                "type": "integer"
                              }
                            },
                            "description": "The loan example the bank says its comparison rate is calculated on; null when it does not say (usually $30,000 over 5 years)."
                          },
                          "rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Top of the bank's range for risk-based pricing."
                          },
                          "comparison_rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "risk_based": {
                            "type": "boolean",
                            "description": "The rate depends on the borrower's credit history; rate is the lowest."
                          },
                          "credit_band": {},
                          "loan_min": {},
                          "loan_max": {},
                          "max_lvr": {},
                          "redraw": {},
                          "annual_fee": {},
                          "upfront_fees": {},
                          "restrictions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "age_limited",
                                "broker_only",
                                "business",
                                "credit_impaired",
                                "existing_customers",
                                "income_limited",
                                "low_doc",
                                "occupation_membership",
                                "one_make_only",
                                "online_only",
                                "organisation_only",
                                "outdated_record",
                                "pensioner",
                                "profession",
                                "range_max",
                                "range_representative",
                                "refinance_only",
                                "region_limited",
                                "revert_rate",
                                "special_offer",
                                "staff",
                                "student"
                              ]
                            }
                          },
                          "conditions": {},
                          "record_stale": {},
                          "record_correction": {},
                          "source_url": {},
                          "source_snapshot": {
                            "type": "string",
                            "description": "Site-relative path of our verbatim snapshot of the CDR detail response."
                          },
                          "bank_last_updated": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "est_monthly_repayment": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "est_monthly_repayment and est_total_interest are estimates on the slice's loan amount over 60 months, or over the loan's own longest term where it is shorter (repayment_term_months and repayment_basis say which), at the rate (not the comparison rate), excluding all fees; null when the bank's rate field is unreliable."
                          },
                          "est_total_interest": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "repayment_term_months": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "repayment_basis": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      },
                      "description": "Every ranked bank, broker-only and occupation-limited rates in, one entry per bank; filter on restrictions and renumber to rank either way."
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "vehicle",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "new",
                "used",
                "green"
              ]
            }
          },
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "fixed",
                "variable"
              ]
            }
          },
          {
            "name": "loan",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "enum": [
                15000,
                30000,
                60000
              ]
            }
          }
        ]
      }
    },
    "/au/finance/car-loans/v1/top/{vehicle}/{kind}/{loan}.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "The top 10 banks for one slice, compact (a few kB; read this first)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "generated_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "When this file's contents last changed."
                    },
                    "data_as_of": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "full_ranking": {
                      "type": "string",
                      "format": "uri"
                    },
                    "banks_ranked": {
                      "type": "integer"
                    },
                    "top": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "A ranked rate cut to what it takes to quote it.",
                        "properties": {
                          "rank": {
                            "type": "integer"
                          },
                          "brand_label": {},
                          "brand_slug": {},
                          "product_label": {},
                          "comparison_rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "comparison_basis": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "amount": {
                                "type": "number"
                              },
                              "term_months": {
                                "type": "integer"
                              }
                            },
                            "description": "The loan example the bank says its comparison rate is calculated on; null when it does not say (usually $30,000 over 5 years)."
                          },
                          "rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "rate_unreliable": {
                            "type": "boolean",
                            "description": "The feed's rate cannot be right (see conditions)."
                          },
                          "rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Top of the bank's range for risk-based pricing."
                          },
                          "comparison_rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "risk_based": {
                            "type": "boolean",
                            "description": "The rate depends on the borrower's credit history; rate is the lowest."
                          },
                          "kind": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "fixed",
                              "variable",
                              null
                            ]
                          },
                          "conditions": {},
                          "restrictions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "age_limited",
                                "broker_only",
                                "business",
                                "credit_impaired",
                                "existing_customers",
                                "income_limited",
                                "low_doc",
                                "occupation_membership",
                                "one_make_only",
                                "online_only",
                                "organisation_only",
                                "outdated_record",
                                "pensioner",
                                "profession",
                                "range_max",
                                "range_representative",
                                "refinance_only",
                                "region_limited",
                                "revert_rate",
                                "special_offer",
                                "staff",
                                "student"
                              ]
                            }
                          },
                          "record_stale": {},
                          "annual_fee": {},
                          "upfront_fees": {},
                          "loan_min": {},
                          "loan_max": {},
                          "vehicle_age_max": {},
                          "est_monthly_repayment": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "est_monthly_repayment and est_total_interest are estimates on the slice's loan amount over 60 months, or over the loan's own longest term where it is shorter (repayment_term_months and repayment_basis say which), at the rate (not the comparison rate), excluding all fees; null when the bank's rate field is unreliable."
                          },
                          "est_total_interest": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "repayment_basis": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "product_url": {},
                          "terms_url": {},
                          "bank_last_updated": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "rank",
                          "brand_label",
                          "brand_slug",
                          "product_label",
                          "comparison_rate_pct",
                          "comparison_basis",
                          "rate_pct",
                          "rate_unreliable",
                          "rate_max_pct",
                          "comparison_rate_max_pct",
                          "risk_based",
                          "kind",
                          "conditions",
                          "restrictions",
                          "record_stale",
                          "annual_fee",
                          "upfront_fees",
                          "loan_min",
                          "loan_max",
                          "vehicle_age_max",
                          "est_monthly_repayment",
                          "est_total_interest",
                          "product_url",
                          "terms_url",
                          "bank_last_updated"
                        ]
                      }
                    },
                    "top_all_note": {
                      "type": "string",
                      "description": "Whether broker-only and occupation-limited rates change the top 10."
                    },
                    "top_all": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "object",
                        "description": "A ranked rate cut to what it takes to quote it.",
                        "properties": {
                          "rank": {
                            "type": "integer"
                          },
                          "brand_label": {},
                          "brand_slug": {},
                          "product_label": {},
                          "comparison_rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "comparison_basis": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "amount": {
                                "type": "number"
                              },
                              "term_months": {
                                "type": "integer"
                              }
                            },
                            "description": "The loan example the bank says its comparison rate is calculated on; null when it does not say (usually $30,000 over 5 years)."
                          },
                          "rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "rate_unreliable": {
                            "type": "boolean",
                            "description": "The feed's rate cannot be right (see conditions)."
                          },
                          "rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Top of the bank's range for risk-based pricing."
                          },
                          "comparison_rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "risk_based": {
                            "type": "boolean",
                            "description": "The rate depends on the borrower's credit history; rate is the lowest."
                          },
                          "kind": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "fixed",
                              "variable",
                              null
                            ]
                          },
                          "conditions": {},
                          "restrictions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "age_limited",
                                "broker_only",
                                "business",
                                "credit_impaired",
                                "existing_customers",
                                "income_limited",
                                "low_doc",
                                "occupation_membership",
                                "one_make_only",
                                "online_only",
                                "organisation_only",
                                "outdated_record",
                                "pensioner",
                                "profession",
                                "range_max",
                                "range_representative",
                                "refinance_only",
                                "region_limited",
                                "revert_rate",
                                "special_offer",
                                "staff",
                                "student"
                              ]
                            }
                          },
                          "record_stale": {},
                          "annual_fee": {},
                          "upfront_fees": {},
                          "loan_min": {},
                          "loan_max": {},
                          "vehicle_age_max": {},
                          "est_monthly_repayment": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "est_monthly_repayment and est_total_interest are estimates on the slice's loan amount over 60 months, or over the loan's own longest term where it is shorter (repayment_term_months and repayment_basis say which), at the rate (not the comparison rate), excluding all fees; null when the bank's rate field is unreliable."
                          },
                          "est_total_interest": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "repayment_basis": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "product_url": {},
                          "terms_url": {},
                          "bank_last_updated": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "rank",
                          "brand_label",
                          "brand_slug",
                          "product_label",
                          "comparison_rate_pct",
                          "comparison_basis",
                          "rate_pct",
                          "rate_unreliable",
                          "rate_max_pct",
                          "comparison_rate_max_pct",
                          "risk_based",
                          "kind",
                          "conditions",
                          "restrictions",
                          "record_stale",
                          "annual_fee",
                          "upfront_fees",
                          "loan_min",
                          "loan_max",
                          "vehicle_age_max",
                          "est_monthly_repayment",
                          "est_total_interest",
                          "product_url",
                          "terms_url",
                          "bank_last_updated"
                        ]
                      },
                      "description": "The top 10 with them in; null when it equals top."
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "vehicle",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "new",
                "used",
                "green"
              ]
            }
          },
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "fixed",
                "variable"
              ]
            }
          },
          {
            "name": "loan",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "enum": [
                15000,
                30000,
                60000
              ]
            }
          }
        ]
      }
    },
    "/au/finance/car-loans/v1/best.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "Every slice's ranking in one file",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/au/finance/car-loans/v1/rates.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "Every car loan rate row",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rows": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "brand": {},
                          "brand_label": {},
                          "brand_slug": {},
                          "product_id": {},
                          "product_name": {},
                          "product_label": {},
                          "product_url": {},
                          "terms_url": {},
                          "car_loan_basis": {
                            "type": "string",
                            "enum": [
                              "name",
                              "green_text",
                              "vehicle_secured",
                              "rate_text"
                            ]
                          },
                          "rate_kind": {},
                          "lending_rate_type": {},
                          "fixed_months": {},
                          "kind": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "fixed",
                              "variable",
                              null
                            ]
                          },
                          "vehicles": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "new",
                                "used",
                                "green"
                              ]
                            }
                          },
                          "vehicle_age_min": {},
                          "vehicle_age_max": {},
                          "max_vehicle_age_months": {},
                          "vehicle_age_quote": {},
                          "security": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "secured",
                              "unsecured",
                              "partially_secured",
                              null
                            ]
                          },
                          "term_min_months": {},
                          "term_max_months": {},
                          "rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Annual rate as a fraction; null when rate_unreliable."
                          },
                          "rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "rate_published_pct": {
                            "type": "number",
                            "description": "The rate field exactly as the bank's feed gives it."
                          },
                          "rate_unreliable": {
                            "type": "boolean",
                            "description": "The feed's rate cannot be right (see conditions)."
                          },
                          "comparison_rate": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "The comparison rate is the bank's own figure, worked out by a formula set in law and including most fees, on one of the loan examples the law prescribes: the bank picks the one closest to its typical loan. For car loans that is usually $30,000 over 5 years, and comparison_basis says when the bank states the example it used. On a smaller loan or a shorter term the fees weigh more than it shows."
                          },
                          "comparison_rate_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "comparison_basis": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "properties": {
                              "amount": {
                                "type": "number"
                              },
                              "term_months": {
                                "type": "integer"
                              }
                            },
                            "description": "The loan example the bank says its comparison rate is calculated on; null when it does not say (usually $30,000 over 5 years)."
                          },
                          "rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "description": "Top of the bank's range for risk-based pricing."
                          },
                          "comparison_rate_max_pct": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "risk_based": {
                            "type": "boolean",
                            "description": "The rate depends on the borrower's credit history; rate is the lowest."
                          },
                          "credit_band": {},
                          "loan_min": {},
                          "loan_max": {},
                          "max_lvr": {},
                          "redraw": {},
                          "annual_fee": {},
                          "upfront_fees": {},
                          "restrictions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "age_limited",
                                "broker_only",
                                "business",
                                "credit_impaired",
                                "existing_customers",
                                "income_limited",
                                "low_doc",
                                "occupation_membership",
                                "one_make_only",
                                "online_only",
                                "organisation_only",
                                "outdated_record",
                                "pensioner",
                                "profession",
                                "range_max",
                                "range_representative",
                                "refinance_only",
                                "region_limited",
                                "revert_rate",
                                "special_offer",
                                "staff",
                                "student"
                              ]
                            }
                          },
                          "conditions": {},
                          "record_stale": {},
                          "record_correction": {},
                          "source_url": {},
                          "source_snapshot": {
                            "type": "string",
                            "description": "Site-relative path of our verbatim snapshot of the CDR detail response."
                          },
                          "bank_last_updated": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "ranked": {
                            "type": "boolean"
                          },
                          "unranked_reason": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "enum": [
                              "no_comparison_rate",
                              "not_a_loan_rate",
                              "out_of_range",
                              "outdated_record",
                              "range_upper",
                              "restricted",
                              "revert_rate",
                              null
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/au/finance/car-loans/v1/brands.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "Banks with car loan products",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/au/finance/car-loans/v1/brands/{brand_slug}.json": {
      "get": {
        "tags": [
          "car-loans"
        ],
        "summary": "One bank's lowest car loan rates (at_a_glance), products and rate rows",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "at_a_glance": {
                      "type": "object",
                      "description": "This bank's lowest-ranked car loan per vehicle (new, used, green) and rate kind (fixed, variable), one line each: the lowest of the bank's own entries in the best/{vehicle}/{kind}/{loan}.json slices (broker-only and occupation-limited rates left out, as there), so it matches best/ and top/; a bank with no entry there for a vehicle and kind (a lender open only to certain occupations, say) takes its entry from entries_all. Ranking is by comparison rate. reference_loans are the slice loan amounts where it is the bank's entry. rate_pct is null when the bank's rate field is unreliable. conditions is a key into condition_sets. unranked counts the rows no slice ranks, by reason. Every product and rate row follows in products and rows.",
                      "properties": {
                        "note": {
                          "type": "string"
                        },
                        "rates": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "vehicle": {},
                              "kind": {},
                              "comparison_rate_pct": {},
                              "rate_pct": {},
                              "rate_max_pct": {},
                              "comparison_rate_max_pct": {},
                              "product_label": {},
                              "reference_loans": {},
                              "loan_min": {},
                              "loan_max": {},
                              "vehicle_age_max": {},
                              "max_vehicle_age_months": {},
                              "vehicle_age_quote": {},
                              "term_max_months": {},
                              "security": {},
                              "annual_fee": {},
                              "upfront_fees": {},
                              "risk_based": {},
                              "conditions": {},
                              "restrictions": {},
                              "record_stale": {}
                            }
                          }
                        },
                        "condition_sets": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "unranked": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "integer"
                          }
                        }
                      }
                    },
                    "products": {
                      "type": "array"
                    },
                    "rows": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "brand_slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    }
  }
}
