Submit a bulk-delivery job for agents
Queues an ECS task that dumps every matching agents document to S3 in the requested format. Returns 202 with a jobId; poll GET /v1/agents/bulk-delivery/{jobId} for status + the signed download URL.
Row limit. Deliveries of up to 1,000 rows need no entitlement. Above that, the org's bulk-delivery.agents entitlement is required and its scope (row ceiling, row filters, allowed fields) governs the delivery; without it the request is rejected with 403 entitlement_missing. Pass limit at or below the ceiling to deliver a capped subset of a broader query. Email support@modelmatch.com to request a limit increase.
Delivery is billed at 1 credit per 100 rows regardless of entitlement.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/agents/bulk-delivery" \ -H "Content-Type: application/json" \ -d '{ "format": "parquet" }'{
"entityType": "string",
"estimatedTotal": 0,
"format": "parquet",
"jobId": "string",
"maxRows": 1,
"status": "queued"
}{
"error": "string"
}{
"error": "string"
}{
"balance": 0,
"cost": 0,
"error": "payment_required",
"message": "string",
"reason": "out_of_credits"
}{
"entitlementKey": "string",
"error": "entitlement_missing",
"estimatedTotal": 0,
"maxRows": 1,
"message": "string"
}{
"error": "string"
}Search agents with filters POST
Search and list individual real-estate agents with filters — one row per agent. Filter by name, location (state, city, zip), brokerage/office, and production metrics (sales volume, transaction units, price range), with sorting and cursor pagination. LOCATION SEMANTICS: the state/city/zip filters match ANY of an agent's location signals — their listed city/state, their office address(es), AND the markets where they actually closed transactions (production) — combined with OR. So an agent matches a searched location if their office OR their production is there. A search for city "Long Beach" can therefore return agents whose office or displayed primary market is in a different city/state, because they transacted in Long Beach. The `state`/`city` returned on each row reflect the agent's primary market and may differ from the searched location. (Use the `office` filter to match by brokerage/office name, and the per-agent city/county/state breakdown endpoints to rank an agent's volume within a specific market.) RANKING BY DEAL SIDE: combine a location filter with `sort` on `buyerVolume`/`buyerUnits` (or `sellerVolume`/`sellerUnits`, `dualVolume`/`dualUnits`) to rank agents by how active they are representing buyers vs. sellers in that market — e.g. sort `buyerVolume` descending for the most active buyer-side agents in a state or city. This is the per-agent record search: use it to find specific real-estate agents or build a filtered agent list. (For a single agent by ID use the agent detail endpoint.) If you only need how many agents match and not the records themselves, send the same request body to `countAgents`.
City volume breakdown across this branch's loans POST
Ranks the cities this branch's loans were secured in, by volume — the branch's real lending footprint rather than its parent company's. Labels are Title Case so they match the city breakdowns on every other entity.