Model MatchHelp

Recipes

Export a whole list to a file

Deliver every record matching a search as CSV, Excel, JSON, or Parquet. One request to queue it, one to download it.

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" with columns to set header labels and number formats, for example { "field": "scopedVolume", "label": "Volume", "format": "currency" }.
  • Trailing windows regardless of period: name columns like volume_3mo or units_12mo in fields.
  • 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.