data, totals, and pagination.12345678910111213141516171819202122232425262728293031323334{ "totals": { "properties": 1847, "people": 2134 }, "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://img.dealmachine.com/sv/30.2598,-97.7544.jpg", "satellite": "https://img.dealmachine.com/sat/30.2598,-97.7544.jpg", "roadmap": "https://img.dealmachine.com/map/30.2598,-97.7544.jpg" }, "estimated_value": 575000, "equity_percent": 72 } ], "pagination": { "page": 1, "per_page": 25, "total_results": 1847, "total_pages": 74, "has_next_page": true, "has_previous_page": false } }
data Arraydata array contains the matching records. Each record is a JSON object with always-included fields plus any fields you requested.fields selection (see below).field_id in the fields array.fields parameter or pass an empty array.YYYY-MM-DD strings, booleans are true/false, and multi-select values are arrays of option IDs.null.totals Objecttotals object with the full count of matching entities across the entire result set, regardless of pagination or anchor.| Field | Type | Description |
properties | integer | Total number of matching properties |
people | integer | Total number of matching people/contacts |
| Field | Type | Description |
dm_property_id | string | DealMachine internal property ID |
full_address | string | Complete formatted address (street, city, state, ZIP) |
address | string | Street address line |
unit | string | null | Unit/apt number (e.g., "# 1", "Apt 203") |
city | string | City |
state | string | Two-letter state abbreviation |
zip | string | 5-digit ZIP code |
latitude | number | Property latitude |
longitude | number | Property longitude |
images | object | Image URLs (see Images below) |
anchor is "people", each record in data represents a person. Person records always include:| Field | Type | Description |
dm_person_id | string | DealMachine internal person ID |
full_name | string | Full display name |
first_name | string | null | First/given name |
last_name | string | null | Last/family name |
phones | array | Phone numbers (see Phones below) |
emails | array | Email addresses (see Emails below) |
residence | object | Where the person lives (see Residence below) |
property | object | The associated property (see Nested Property below) |
residence object is the person's place of residence — where they currently live. This is not necessarily a property they own; it is simply their home address.| Field | Type | Description |
address | string | null | Street address |
unit | string | null | Unit/apt (e.g., "APT 304", "UNIT 206") |
city | string | null | City |
state | string | null | Two-letter state abbreviation |
zip | string | null | 5-digit ZIP code |
full_address | string | null | Complete formatted address |
property object contains the property associated with this person through the search — for example, a property they own, rent, or are otherwise connected to based on the contact_audience parameter. It uses the same structure as a property-anchored result, including images and any requested property fields like estimated_value.| Field | Type | Description |
dm_property_id | string | null | DealMachine property ID |
full_address | string | null | Complete formatted property address |
address | string | null | Property street address |
unit | string | null | Unit/apt number |
city | string | null | City |
state | string | null | State abbreviation |
zip | string | null | ZIP code |
latitude | number | null | Property latitude |
longitude | number | null | Property longitude |
images | object | null | Property image URLs |
images object with three views served via img.dealmachine.com. Image URLs are edge-cached and do not consume additional credits.1234567{ "images": { "street_view": "https://img.dealmachine.com/sv/30.2598,-97.7544.jpg", "satellite": "https://img.dealmachine.com/sat/30.2598,-97.7544.jpg", "roadmap": "https://img.dealmachine.com/map/30.2598,-97.7544.jpg" } }
| Key | Description |
street_view | Street-level photograph of the property |
satellite | Aerial/bird's-eye satellite view |
roadmap | Map view with streets and labels |
https://img.dealmachine.com/{type}/{lat},{lng}.jpg and support optional query parameters:| Parameter | Applies to | Default | Description |
size | all | 500x500 (sv), 600x600 (sat/map) | Image dimensions (WxH) |
zoom | sat, map | 19 (sat), 16 (map) | Google Maps zoom level |
heading | sv | — | Camera heading in degrees (0–360) |
fov | sv | 90 | Field of view in degrees |
pitch | sv | 0 | Camera pitch in degrees |
phones array on each person contains all available phone numbers:1234567891011121314{ "phones": [ { "number": "5125551234", "type": "wireless", "do_not_call": false }, { "number": "5125559876", "type": "landline", "do_not_call": true } ] }
| Field | Type | Description |
number | string | 10-digit phone number |
type | string | wireless, landline, or voip |
do_not_call | boolean | Whether the number is on the national Do Not Call registry |
emails array on each person contains all available email addresses:1234567{ "emails": [ { "address": "john.smith@example.com" } ] }
| Field | Type | Description |
address | string | Email address |
credits Objectcredits object in the response. This tells you exactly what was charged for the request.12345678{ "credits": { "used": 7, "properties": 5, "people": 2, "deduplicated": 3 } }
| Field | Type | Description |
used | integer | New credits charged after deduplication |
properties | integer | Property lead records evaluated in this response |
people | integer | People lead records evaluated in this response |
deduplicated | integer | Entities already accessed this billing period (free) |
credits object is not included on non-billable endpoints (account info, filter metadata, field discovery) or when estimate_cost: true is used on search endpoints.pagination Object| 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 |
123456789101112131415{ "totals": { "properties": 0, "people": 0 }, "data": [], "pagination": { "page": 1, "per_page": 25, "total_results": 0, "total_pages": 0, "has_next_page": false, "has_previous_page": false } }
123456789101112131415{ "error": { "code": "validation_error", "message": "Validation failed", "request_id": "req_abc123def456", "details": { "issues": [ { "path": "filters[0].operator", "message": "Operator 'contains' is not allowed for NUMBER filter 'estimated_value'" } ] } } }
| Status | Code | Cause |
| 400 | validation_error | Invalid filter, operator, value shape, or sort field |
| 401 | invalid_api_key | Missing or invalid API key |
| 429 | rate_limit_exceeded | Too many requests — back off and retry |