Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Export Properties

Export matching properties 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

body locationsarray
Array of location objects defining where to export. Required unless property_ids or protocol filters are provided (max 15). Locations use OR logic — results matching any location are included.
Location object properties
body typestringrequired
Location type: state, county, city, zip_code, radius, or polygon.
body codestring
Location identifier. Required for state (2-letter abbreviation, e.g., "TX"), county (5-digit FIPS code, e.g., "29189"), city (place ID, e.g., "7333"), and zip_code (5-digit ZIP, e.g., "63101").
body latitudenumber
Center point latitude. Required for radius.
body longitudenumber
Center point longitude. Required for radius.
body radius_milesnumber
Search radius in miles. Required for radius.
body coordinatesarray
Array of [longitude, latitude] pairs defining the boundary. Required for polygon (minimum 3 points).
body include_listsobject
Export only property list IDs, for example { "property_list_ids": [123] }.
body exclude_listsobject
Exclude property list IDs, for example { "property_list_ids": [456] }.
body exclude_previously_exportedboolean | object
Exclude records already exported by your organization.
body filtersarray
Array of filter objects. Omit or pass an empty array to export with no filters (location-only).
Filter object properties
body filter_idstringrequired
The filter slug from the List Filters endpoint (e.g., estimated_value, property_type_id).
body operatorstring
One of the filter's allowed_operators. See Filter Values for all operators by type. Optional for BOOLEAN filters — automatically defaults to is_boolean.
body valueanyrequired
The filter value. Shape depends on the operator — can be a number, string, boolean, array, or object. See Filter Values.
body fieldsstring[]
Field IDs to include in the CSV columns. Omit or pass an empty array for the default set. Include coordinates once to add separate latitude and longitude columns. Use person_coordinates to add separate person_latitude and person_longitude columns when the export includes people.
body contact_audiencestring
Which contacts to include in the export. When set, contact columns (name, phone, email) are added to the CSV. Returned people consume people credits. Property credits are added only when selected property fields go beyond address/context.
Options: owners, owners_and_family, renters, residents
body anchorstringdefault: property
Controls the export anchor type — determines what each row in the CSV represents.
  • property — One row per property. Property-only output consumes property credits. When contacts are included, people credits apply and property credits depend on the selected property fields.
  • person — One row per person. Deduplicates people across properties.
  • phone — One row per phone number.
  • email — One row per email address.
Person, phone, and email rows consume people credits. Chargeable property fields add property credits to those output shapes.
body require_phoneboolean
Only include records where the contact has a phone number. Useful for telemarketing or outreach campaigns.
body require_emailboolean
Only include records where the contact has an email address. Useful for email marketing campaigns.
body mobile_onlyboolean
Only include wireless phone numbers. Cannot be combined with landline_only.
body landline_onlyboolean
Only include landline phone numbers. Cannot be combined with mobile_only.
body scrub_dncboolean
Exclude contacts on the Do Not Call registry. Recommended for compliance with telemarketing regulations.

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.propertiesintegerNumber of property lead records billed
credits.peopleintegerNumber of people/contact lead records billed
Find Properties export billing follows the entities included in the CSV. Property rows bill property credits. Returned contacts, contact rows, phone rows, and email rows bill people credits. Chargeable property fields in a contact-shaped export add property credits.

download_urls

Each object in the download_urls array contains:
FieldTypeDescription
filenamestringSuggested filename for the download (e.g., properties_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 Properties endpoint first to check how many records match your filters before committing to an export.
  • For datasets under 250 records, the paginated Search Properties endpoint may be more appropriate.
  • 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.
Request example
curl -X POST "https://api.v2.dealmachine.com/v1/properties/export" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ --max-time 120 \ -d '{ "locations": [ { "type": "county", "code": "48201" } ], "filters": [ { "filter_id": "estimated_value", "operator": "range", "value": { "min": 200000, "max": 600000 } }, { "filter_id": "has_absentee_owners", "value": true } ], "fields": [ "coordinates", "estimated_value", "estimated_equity_percentage", "year_built" ], "contact_audience": "owners" }'
Response example
{ "export_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "record_count": 15432, "file_count": 1, "total_file_size": 2457600, "execution_time": 34.7, "download_urls": [ { "filename": "properties_export_2026-02-17.csv.gz", "url": "https://storage.googleapis.com/...", "size": 2457600 } ], "credits": { "used": 15432, "properties": 15432 } }