Model MatchHelp

Start here

How the API works

The conventions every endpoint shares — list vs detail, filters, periods, pagination, and analytics — in one page.

Every resource follows the same shape, so once you’ve made one request you can make them all.

Your first request

Fetch recent purchase loans in California with a single request:

curl -X POST https://api.modelmatch.com/v1/loans \
  -H "x-api-key: mm_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "flatFilters": {
      "state": "CA",
      "transactionType": "purchase"
    },
    "sort": [{ "field": "mortgageDate", "order": "desc" }],
    "pagination": { "size": 25 }
  }'

Every list endpoint returns the same shape — a data array, a total count, and a cursor for the next page:

{
  "data": [{ "id": "...", "state": "CA", "mortgageAmount": 750000, ... }],
  "total": 142857,
  "cursor": "eyJzb3J0IjpbIjIwMjQt..."
}

How the API Works

All resources follow the same conventions, so once you learn one, you know them all.

List vs Detail

Every resource has two endpoints:

  • List (POST /v1/<resource>) — paginated summaries with filtering, sorting, and analytics
  • Detail (GET /v1/<resource>/{id}) — the complete record with all nested data

List endpoints return compact summaries (loan amount, address, originator name). Detail endpoints return everything — buyers, sellers, agents, valuation history, title company, and more.

Common Capabilities

All list endpoints support:

  • Pagination — cursor-based, up to 100 results per page
  • Filtering — flat filters or boolean trees
  • Sorting — multi-field sort via the sort array
  • Period scoping — time-bounded queries ("2024", "last12Months", "yearToDate", "allTime")
  • Analytics — most resources (agents, originators, loans, sales, market) expose /analytics/summary, /analytics/time-series, and /analytics/chart sub-endpoints

Base URL

https://api.modelmatch.com