Properties
Search Properties
POST
Search the DealMachine property database using filters. Control which fields are returned, how results are paginated and sorted, and whether contacts are included.
An array of result objects. The shape depends on the
When
The
The full count of matching entities across the entire result set, regardless of pagination.
Results are properties. Contacts matching the
Results are people. The
The response contains
Body Parameters
array
Array of location objects defining where to search. Required unless filters or protocol filters are provided (max 15). Locations use OR logic — results matching any location are included.
array
Array of filter objects. Required unless locations or protocol filters are provided. You can mix property filters (
source_type=properties) and people filters (source_type=people).object
Restrict results to property list IDs, for example
{ "property_list_ids": [123] }.object
Exclude property list IDs, for example
{ "property_list_ids": [456] }.boolean | object
Exclude records already exported by your organization. Pass
true for defaults or a full Query
Builder export exclusion object.integer
Query Builder dataset environment:
1 production, 2 staging, 3 development.string[]
Field IDs to include in results. Can include both property and people fields.
Omit or pass an empty array for the default set. With
anchor: "people", property address/context
fields do not add property credits. Other property output fields do.string
default:"properties"
Controls the shape of the response.Use
properties 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.string
default:"owners"
Which contacts to include. Required when
anchor is people. Defaults to "owners" when anchor is "properties".Options: owners, owners_and_family, renters, residents, noneSet to "none" to explicitly opt out of contacts. Returned contacts consume people credits in addition to property credits.integer
default:1
Page number (min:
1).integer
default:25
Results per page (min:
1, max: 250).array
Array of sort objects for ordering results. See Pagination & Sorting.
boolean
default:false
When
true, returns a credit cost estimate without returning data or consuming credits. See
Cost Estimate.Response
Every search response contains three top-level keys:data, totals, and pagination.
data
An array of result objects. The shape depends on the anchor parameter.
Each property includes its standard response fields plus any requested fields. Contacts include
phones, emails, and DNC status. Credits are consumed per returned entity type.
When 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.
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.
contacts
The contacts array is present on each property when contact_audience is set to a value other than "none" (default: "owners").
totals
The full count of matching entities across the entire result set, regardless of pagination.
pagination
Anchor Behavior
Theanchor parameter controls the response shape and how mixed filters are applied.
anchor: "properties" (default)
Results are properties. Contacts matching the contact_audience are nested in a contacts array on each property.
- Property filters determine which properties are returned.
- People filters scope the
contactsarray on each property — they do not filter out properties. A property is still returned even if no contacts match. - People fields you request appear on each object in the
contactsarray. - If
contact_audienceis"none", nocontactsarray is included. Default is"owners". - Billing is 1 property data credit per property. Nested contacts consume people credits.
anchor: "people"
Results are people. The contact_audience parameter is required.
- Property filters determine which properties to search within.
- People filters determine which people are returned.
- The response is an array of people matching both the property criteria and the contact audience.
- Each person includes a
residenceobject (where they live — not necessarily a property they own) and a nestedpropertyobject (the associated property from the search). - Requested fields (e.g.,
estimated_value) appear inside the nestedpropertyobject. - Billing includes people credits for returned people. Requested chargeable property fields add property credits.
Notes
- At least one location, filter, list condition, or previous-export condition is required. An empty
filtersarray is valid when another search criterion is present. - All filters are combined with AND logic. See Searching.
contact_audienceis required whenanchoris"people"and defaults to"owners"whenanchoris"properties". Set to"none"to skip contacts entirely.- When
anchoris"properties", people filters scope thecontactsarray but do not filter properties. A property with no matching contacts still appears with an emptycontactsarray. - Billing follows the requested output. Property-anchored rows consume property credits, and returned contacts consume people credits. People-anchored rows consume people credits; property credits are added only when requested property output fields go beyond address/context. See Credit-efficient queries.
- Use
source_type=propertiesandsource_type=peoplewhen calling List Filters and List Fields to discover available filters and fields.
Cost Estimate
Setestimate_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.
totals, pagination, and estimated_credits — but no data array: