Agents match on any of their location signals by default: their office, their listed city, and the markets where they close. Set locationSource to production to rank by where they actually transact.
The request
curl -X POST https://api.modelmatch.com/v1/agents \
-H "x-api-key: mm_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"flatFilters": { "city": "Austin, TX", "producersOnly": true },
"locationSource": "production",
"period": "last12Months",
"sort": [{ "field": "volume", "order": "desc" }],
"pagination": { "size": 25 }
}'import { createClient } from "@model-match/api";
const client = createClient({ apiKey: process.env.MODEL_MATCH_API_KEY });
const result = await client.agents.list({
body: {
flatFilters: { city: "Austin, TX", producersOnly: true },
locationSource: "production",
period: "last12Months",
sort: [{ field: "volume", order: "desc" }],
pagination: { size: 25 },
},
});
const rows = result.data.data; // one row per agentWith the MCP server connected, ask:
List the top 25 real estate agents closing deals in Austin, TX over the last 12 months. Show buyer vs seller volume and how many loan officers each works with.
Write cities as "City, ST" so the name binds to the right state. county takes a 5-digit FIPS code; zip takes a 5-digit ZIP.
What comes back
{
"data": [
{
"id": "mma_8d5072986d54c67e",
"fullName": "Priya Natarajan",
"office": "Lakeline Realty Group",
"city": "austin",
"state": "TX",
"zip": "78731",
"volume": 118400000,
"units": 142,
"avgSoldPrice": 833802,
"buyerVolume": 51200000,
"buyerUnits": 61,
"sellerVolume": 64700000,
"sellerUnits": 78,
"dualUnits": 3,
"totalOriginatorsWorkedWith": 48,
"totalLendersWorkedWith": 31,
"phone": "5125550198",
"email": "priya@example.com",
"licenseNumber": "0523468"
}
],
"total": 14293,
"cursor": "WyJtbTp2MiIsMjk2OTAxNzYwLCJtbWFfNzMyOWM1NTZkNjc4MmIwZiJd"
}
buyerUnitsis the number of buyers the agent represented, the deals where a mortgage introduction happens.totalOriginatorsWorkedWithtells you how spread out their referrals are.{ "lte": 1 }finds agents loyal to a single loan officer.- Each row costs one credit. Use the same body on
/v1/agents/countfirst to size the list for free.
Make it yours
- Buyer-side agents only: add
"sideDominance": ["buyer"]next toflatFilters. - Financed deals:
"percentUnitsMortgaged": { "gte": 80 }keeps agents whose buyers almost always use a mortgage. - Around an office: replace
citywith"near": [{ "lat": 30.27, "lon": -97.74, "radius": "15mi" }]. - Agents you don’t work with yet:
"losOnMyTeam": { "relationship": "doesNotWorkWith" }excludes anyone your company’s loan officers already finance.