body locationsarraybody typestringrequiredstate, county, city, zip_code, radius, or polygon.body codestringstate (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 latitudenumberradius.body longitudenumberradius.body radius_milesnumberradius.body coordinatesarray[longitude, latitude] pairs defining the boundary. Required for polygon (minimum 3 points).body filtersarraysource_type=properties) and people filters (source_type=people).body filter_idstringrequiredbody operatorstringallowed_operators. See Filter Values for all operators by type. Optional for BOOLEAN filters — automatically defaults to is_boolean.body valueanyrequiredbody include_listsobject{ "property_list_ids": [123] }.body exclude_listsobject{ "property_list_ids": [456] }.body exclude_previously_exportedboolean | objecttrue for defaults or a full Query
Builder export exclusion object.body bigquery_data_environmentinteger1 production, 2 staging, 3 development.body fieldsstring[]anchor: "people", property address/context
fields do not add property credits. Other property output fields do. Use coordinates to select
both latitude and longitude, or person_coordinates to select both person coordinate values.body anchorstringdefault: propertiesproperties to return properties with contacts nested in a contacts array. See Anchor Behavior. Use people to return people with a residence and associated property; this requires contact_audience.body contact_audiencestringdefault: ownersanchor is people. Defaults to "owners" when anchor is "properties".owners, owners_and_family, renters, residents, none"none" to explicitly opt out of contacts. Returned contacts consume people credits in addition to property credits.body pageintegerdefault: 11).body per_pageintegerdefault: 251, max: 250).body sortarraybody field_idstringrequiredbody directionstringrequiredasc (ascending) or desc (descending).body estimate_costbooleantrue, returns a credit cost estimate without returning data or consuming credits. See
Cost Estimate.data, totals, and pagination.dataanchor parameter.fields. Contacts include
phones, emails, and DNC status. Credits are consumed per returned entity type.anchor is "properties" (the default), each object is a property. Every property includes the always-included fields — address, coordinates, and signed image URLs — plus any fields you requested and, optionally, a contacts array.1234567891011121314151617181920212223242526272829303132333435{ "dm_property_id": "prop_a1b2c3", "full_address": "1200 Barton Springs Rd, Austin, TX 78704", "address": "1200 Barton Springs Rd", "unit": null, "city": "Austin", "state": "TX", "zip": "78704", "latitude": 30.2598, "longitude": -97.7544, "images": { "street_view": "https://next.v3.dealmachine.com/map/streetview?...", "satellite": "https://next.v3.dealmachine.com/map/satellite?...", "roadmap": "https://next.v3.dealmachine.com/map/staticmap?..." }, "estimated_value": 575000, "estimated_equity_percentage": 72, "num_bedrooms": 4, "num_bathrooms": 2, "living_area_sqft": 2200, "contacts": [ { "dm_person_id": "per_67890", "full_name": "John Smith", "first_name": "John", "last_name": "Smith", "is_likely_owner": true, "is_in_owner_family": false, "is_resident": true, "is_likely_renter": false, "phones": [{ "number": "5125551234", "type": "wireless", "do_not_call": false }], "emails": [{ "address": "john.smith@example.com" }] } ] }
anchor is "people", each object is a person. The person's residence (where they live) is in a residence object, and the associated property is nested in a property object. See Anchor Behavior for details.12345678910111213141516171819202122232425262728293031323334{ "dm_person_id": "per_150468071288", "full_name": "Craig Heller", "first_name": "Craig", "last_name": "Heller", "phones": [ { "number": "5125551234", "type": "wireless", "do_not_call": true }, { "number": "5125559876", "type": "landline", "do_not_call": false } ], "emails": [ { "address": "craig@example.com" } ], "residence": { "address": "315 N 11TH ST", "unit": "APT 1203", "city": "SAINT LOUIS", "state": "MO", "zip": "63101", "full_address": "315 N 11TH ST APT 1203, SAINT LOUIS, MO 63101" }, "property": { "dm_property_id": "prop_80365658", "full_address": "316 N 8TH ST, SAINT LOUIS, MO 63101", "address": "316 N 8TH ST", "unit": null, "city": "SAINT LOUIS", "state": "MO", "zip": "63101", "latitude": 38.63026, "longitude": -90.193701, "images": { "..." }, "estimated_value": 305000 } }
contactscontacts array is present on each property when contact_audience is set to a value other than "none" (default: "owners").| Field | Type | Description |
dm_person_id | string | DealMachine person ID |
full_name | string | Full display name |
first_name | string | null | First/given name |
last_name | string | null | Last/family name |
is_likely_owner | boolean | Whether this person is likely the owner |
is_in_owner_family | boolean | Whether this person is in the owner's family |
is_resident | boolean | Whether this person is a resident |
is_likely_renter | boolean | Whether this person is likely a renter |
phones | array | Phone numbers with number, type, and do_not_call |
emails | array | Email addresses with address |
totals123456{ "totals": { "properties": 1847, "people": 2134 } }
| Field | Type | Description |
properties | integer | Total properties matching the filters |
people | integer | Total people matching the filters and contact_audience |
pagination| Field | Type | Description |
page | integer | Current page number |
per_page | integer | Results per page |
total_results | integer | Total matching records |
total_pages | integer | Total pages available |
has_next_page | boolean | Whether more pages exist after this one |
has_previous_page | boolean | Whether pages exist before this one |
anchor parameter controls the response shape and how mixed filters are applied.anchor: "properties" (default)contact_audience are nested in a contacts array on each property.contacts array on each property — they do not filter out properties. A property is still returned even if no contacts match.contacts array.contact_audience is "none", no contacts array is included. Default is "owners".anchor: "people"contact_audience parameter is required.residence object (where they live — not necessarily a property they own) and a nested property object (the associated property from the search).estimated_value) appear inside the nested property object.filters array is valid when another search criterion is present.contact_audience is required when anchor is "people" and defaults to "owners" when anchor is "properties". Set to "none" to skip contacts entirely.anchor is "properties", people filters scope the contacts array but do not filter properties. A property with no matching contacts still appears with an empty contacts array.source_type=properties and source_type=people when calling List Filters and List Fields to discover available filters and fields.estimate_cost: true to preview the credit cost of a search before committing to it. The request is validated identically to a real search — same filters, same pagination — but no data is returned and no credits are consumed.12345678910111213141516curl -X POST "https://api.v2.dealmachine.com/v1/properties/search" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{ "estimate_cost": true, "locations": [ { "type": "state", "code": "TX" } ], "anchor": "properties", "contact_audience": "owners", "filters": [ { "filter_id": "estimated_value", "operator": "range", "value": { "min": 200000, "max": 600000 } } ], "page": 1, "per_page": 25 }'
totals, pagination, and estimated_credits — but no data array:123456789101112131415161718192021222324{ "totals": { "properties": 1847, "people": 2134 }, "pagination": { "page": 1, "per_page": 25, "total_results": 1847, "total_pages": 74, "has_next_page": true, "has_previous_page": false }, "estimated_credits": { "this_page": 25, "total_all_pages": 1847, "breakdown": { "properties": 25, "people": 0, "already_accessed": 0, "note": "Estimate based on requested output. Actual credits may be lower due to returned contact counts, active licenses, and deduplication within your billing period." } } }
| Field | Type | Description |
estimated_credits.this_page | integer | Estimated credits for this page before deduplication |
estimated_credits.total_all_pages | integer | Credits all pages combined would consume |
estimated_credits.breakdown.properties | integer | Property data credits on this page |
estimated_credits.breakdown.people | integer | People data credits on this page when anchor is "people" |
estimated_credits.breakdown.already_accessed | integer | Currently 0; final usage applies billing-period dedup |
1234567891011121314151617181920212223242526272829303132curl -X POST "https://api.v2.dealmachine.com/v1/properties/search" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{ "locations": [ { "type": "county", "code": "48201" }, { "type": "county", "code": "48113" } ], "anchor": "properties", "contact_audience": "owners", "filters": [ { "filter_id": "estimated_value", "operator": "range", "value": { "min": 200000, "max": 600000 } }, { "filter_id": "has_absentee_owners", "value": true } ], "fields": [ "estimated_value", "estimated_equity_percentage", "num_bedrooms" ], "page": 1, "per_page": 25, "sort": [ { "field_id": "estimated_value", "direction": "desc" } ] }'
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657{ "data": [ { "dm_property_id": "prop_a1b2c3", "full_address": "1200 Barton Springs Rd, Austin, TX 78704", "address": "1200 Barton Springs Rd", "unit": null, "city": "Austin", "state": "TX", "zip": "78704", "latitude": 30.2598, "longitude": -97.7544, "images": { "street_view": "https://next.v3.dealmachine.com/map/streetview?...", "satellite": "https://next.v3.dealmachine.com/map/satellite?...", "roadmap": "https://next.v3.dealmachine.com/map/staticmap?..." }, "estimated_value": 575000, "estimated_equity_percentage": 72, "num_bedrooms": 4, "num_bathrooms": 2, "living_area_sqft": 2200, "contacts": [ { "dm_person_id": "per_67890", "full_name": "John Smith", "first_name": "John", "last_name": "Smith", "is_likely_owner": true, "is_in_owner_family": false, "is_resident": true, "is_likely_renter": false, "phones": [{ "number": "5125551234", "type": "wireless", "do_not_call": false }], "emails": [{ "address": "john.smith@example.com" }] } ] } ], "totals": { "properties": 1847, "people": 2134 }, "credits": { "used": 50, "properties": 25, "people": 25, "deduplicated": 0 }, "pagination": { "page": 1, "per_page": 25, "total_results": 1847, "total_pages": 74, "has_next_page": true, "has_previous_page": false } }