Skip to main content
POST
/
v1
/
people
/
export
curl -X POST "https://api.v2.dealmachine.com/v1/people/export" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  --max-time 120 \
  -d '{
    "locations": [
      { "type": "state", "code": "CA" }
    ],
    "filters": [
      {
        "filter_id": "has_phone",
        "value": true
      }
    ],
    "fields": [
      "full_name",
      "phones",
      "emails"
    ],
    "property_match": "owner"
  }'
{
  "export_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
  "record_count": 8234,
  "file_count": 1,
  "total_file_size": 1843200,
  "execution_time": 28.3,
  "download_urls": [
    {
      "filename": "people_export_2026-02-17.csv.gz",
      "url": "https://storage.googleapis.com/...",
      "size": 1843200
    }
  ],
  "credits": {
    "used": 8234,
    "people": 8234
  }
}
Export matching people as a compressed CSV file. Returns signed download URLs that you can use to download the exported data. This endpoint is designed for bulk data extraction — up to 1,000,000 records per export.
This is a synchronous, long-running endpoint. The response is returned once the entire export is complete, which typically takes up to 30 seconds. Set your HTTP client timeout to at least 120 seconds to avoid premature disconnects. See the Exporting Guide for best practices.

Body Parameters

locations
array
required
Array of location objects defining where to export. At least one location is required (max 15). Locations use OR logic — results matching any location are included.
filters
array
Array of filter objects. Omit or pass an empty array to export with no filters (location-only).
fields
string[]
Field IDs to include in the CSV columns. Omit or pass an empty array for the default set.
property_match
string
Defines the person-to-property relationship for the export.Options: owner, resident, renter
anchor
string
default:"person"
Controls the export anchor type — determines what each row in the CSV represents.
  • person — One row per person (default)
  • phone — One row per phone number
  • email — One row per email address
require_phone
boolean
Only include records where the contact has a phone number. Useful for telemarketing or outreach campaigns.
require_email
boolean
Only include records where the contact has an email address. Useful for email marketing campaigns.
mobile_only
boolean
Only include mobile phone numbers. Cannot be combined with landline_only.
landline_only
boolean
Only include landline phone numbers. Cannot be combined with mobile_only.
scrub_dnc
boolean
Exclude contacts on the Do Not Call registry. Recommended for compliance with telemarketing regulations.

curl -X POST "https://api.v2.dealmachine.com/v1/people/export" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  --max-time 120 \
  -d '{
    "locations": [
      { "type": "state", "code": "CA" }
    ],
    "filters": [
      {
        "filter_id": "has_phone",
        "value": true
      }
    ],
    "fields": [
      "full_name",
      "phones",
      "emails"
    ],
    "property_match": "owner"
  }'
{
  "export_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
  "record_count": 8234,
  "file_count": 1,
  "total_file_size": 1843200,
  "execution_time": 28.3,
  "download_urls": [
    {
      "filename": "people_export_2026-02-17.csv.gz",
      "url": "https://storage.googleapis.com/...",
      "size": 1843200
    }
  ],
  "credits": {
    "used": 8234,
    "people": 8234
  }
}

Response

FieldTypeDescription
export_idstringUnique identifier for this export
record_countintegerNumber of records in the exported CSV
file_countintegerNumber of files generated (large exports may produce multiple files)
total_file_sizeintegerTotal size of all files in bytes
execution_timenumberTime taken to complete the export in seconds
download_urlsarraySigned download URLs for the exported files
credits.usedintegerTotal credits consumed by this export
credits.peopleintegerNumber of people credits consumed

download_urls

Each object in the download_urls array contains:
FieldTypeDescription
filenamestringSuggested filename for the download (e.g., people_export_2026-02-17.csv.gz)
urlstringSigned URL — valid for a limited time. Download promptly after receiving the response.
sizeintegerFile size in bytes
Exported files are gzip-compressed CSV (.csv.gz). Most tools (Excel, Google Sheets, Python pandas) can open .csv.gz files directly. To decompress manually, use gunzip or any archive tool.

Tips

  • Use the Count People endpoint first to check how many records match your filters before committing to an export.
  • For datasets under 250 records, the paginated Search People endpoint may be more appropriate.
  • People exports are deduplicated — each unique person appears only once in the CSV, even if they match multiple properties.
  • Use the export_id in the response with Get Export to retrieve download URLs later, or List Exports to browse past exports.
  • See the Exporting Guide for timeout configuration, download handling, and best practices.