Any list search can be exported in full. Send the same filters to the entity’s bulk-delivery endpoint, pick a format, and poll the job for a download link. Billing is one credit per row delivered.
The request
curl -X POST https://api.modelmatch.com/v1/originators/bulk-delivery \
-H "x-api-key: mm_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"flatFilters": { "msa": "12420", "hasPhone": true },
"period": "last12Months",
"sort": [{ "field": "scopedVolume", "order": "desc" }],
"format": "csv",
"limit": 2000,
"fields": ["nmlsId", "name", "companyName", "phone", "email", "scopedVolume", "scopedUnits", "fhaPct", "vaPct"]
}'With the MCP server connected, ask:
Export the top 2,000 loan officers in the Austin metro with a phone number to a CSV. Include name, company, phone, email, and volume.
The assistant calls submitBulkDelivery and reports the row count and cost before it runs.
The body is the list request plus three fields: format, an optional limit (rows delivered and billed), and optional fields to pick columns. Swap originators for agents, properties, loans, companies, or branches.
What comes back
The submit returns 202 with a job:
{ "jobId": "job_01jbx4k9v3", "status": "queued", "entityType": "originators", "format": "csv", "estimatedTotal": 2000 }
Poll it until status is completed:
curl https://api.modelmatch.com/v1/originators/bulk-delivery/job_01jbx4k9v3 \
-H "x-api-key: mm_your_key_here"
{
"jobId": "job_01jbx4k9v3",
"status": "completed",
"processed": 2000,
"creditsCharged": 2000,
"format": "csv",
"downloadUrl": "https://api.modelmatch.com/v1/originators/bulk-delivery/job_01jbx4k9v3/download",
"completedAt": "2026-10-19T18:42:07.000Z"
}
downloadUrl is a stable link that forces a file download, so it’s safe to hand to someone. Jobs usually finish in under a minute for a few thousand rows.
Make it yours
- Spreadsheet-ready: use
"format": "xlsx"withcolumnsto set header labels and number formats, for example{ "field": "scopedVolume", "label": "Volume", "format": "currency" }. - Trailing windows regardless of period: name columns like
volume_3moorunits_12moinfields. - Push instead of download: set
"destination": { "type": "push-target", "targetId": "..." }to send the rows to a push target, such as your CRM. - Row limits: up to 5,000 rows need no entitlement. Larger exports use your organization’s bulk-delivery allowance; see Bulk Delivery.