curl "https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value" \
-H "Authorization: Bearer dm_sk_live_xxx"
const response = await fetch(
'https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value',
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
}
);
const { data } = await response.json();
console.log(`${data.full_name} — ${data.phones?.[0]?.number}`);
if (data.properties) {
for (const prop of data.properties) {
console.log(` Property: ${prop.address}, ${prop.city} ${prop.state}`);
}
}
import requests
response = requests.get(
"https://api.v2.dealmachine.com/v1/people/per_12345",
headers={"Authorization": f"Bearer {api_key}"},
params={
"include_properties": "true",
"property_limit": 20,
"fields": "estimated_household_income,estimated_value",
},
)
data = response.json()["data"]
print(f"{data['full_name']} — {data.get('phones', [{}])[0].get('number', 'N/A')}")
for prop in data.get("properties", []):
print(f" Property: {prop['address']}, {prop['city']} {prop['state']}")
{
"data": {
"dm_person_id": "per_12345",
"full_name": "John Smith",
"first_name": "John",
"last_name": "Smith",
"middle_initial": "R",
"person_age": 45,
"estimated_household_income": 125000,
"phones": [
{ "number": "5125551234", "type": "wireless", "do_not_call": false },
{ "number": "5125559999", "type": "wireless", "do_not_call": false }
],
"emails": [{ "address": "john.smith@example.com" }],
"properties": [
{
"dm_property_id": "prop_67890",
"full_address": "1200 Barton Springs Rd, Austin, TX 78704",
"address": "1200 Barton Springs Rd",
"city": "Austin",
"state": "TX",
"zip": "78704",
"latitude": 30.2598,
"longitude": -97.7544,
"estimated_value": 575000,
"estimated_equity_amount": 414000,
"estimated_equity_percentage": 72,
"year_built": 1985,
"living_area_sqft": 2200,
"lot_size_sqft": 8500,
"num_bedrooms": 4,
"num_bathrooms": 2,
"num_stories": 2,
"owner_occupied": true,
"last_sale_date": "2018-06-15",
"last_sale_amount": 380000,
"total_assessed_value": 520000,
"annual_property_tax_amount": 11440,
"num_mortgages": 1,
"total_original_loan_amount": 304000,
"total_estimated_loan_balance": 161000,
"apn": "0123456789",
"fips": "48453",
"is_likely_owner": true,
"is_resident": true,
"is_likely_renter": false
}
]
},
"credits": {
"used": 2,
"properties": 1,
"people": 1,
"deduplicated": 0
}
}
{
"error": {
"code": "invalid_person_id",
"message": "Invalid person ID format. Expected format: per_12345",
"request_id": "req_abc123"
}
}
{
"error": {
"code": "person_not_found",
"message": "No person found with ID per_99999",
"request_id": "req_abc123"
}
}
People
Get Person
GET
/
v1
/
people
/
{id}
curl "https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value" \
-H "Authorization: Bearer dm_sk_live_xxx"
const response = await fetch(
'https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value',
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
}
);
const { data } = await response.json();
console.log(`${data.full_name} — ${data.phones?.[0]?.number}`);
if (data.properties) {
for (const prop of data.properties) {
console.log(` Property: ${prop.address}, ${prop.city} ${prop.state}`);
}
}
import requests
response = requests.get(
"https://api.v2.dealmachine.com/v1/people/per_12345",
headers={"Authorization": f"Bearer {api_key}"},
params={
"include_properties": "true",
"property_limit": 20,
"fields": "estimated_household_income,estimated_value",
},
)
data = response.json()["data"]
print(f"{data['full_name']} — {data.get('phones', [{}])[0].get('number', 'N/A')}")
for prop in data.get("properties", []):
print(f" Property: {prop['address']}, {prop['city']} {prop['state']}")
{
"data": {
"dm_person_id": "per_12345",
"full_name": "John Smith",
"first_name": "John",
"last_name": "Smith",
"middle_initial": "R",
"person_age": 45,
"estimated_household_income": 125000,
"phones": [
{ "number": "5125551234", "type": "wireless", "do_not_call": false },
{ "number": "5125559999", "type": "wireless", "do_not_call": false }
],
"emails": [{ "address": "john.smith@example.com" }],
"properties": [
{
"dm_property_id": "prop_67890",
"full_address": "1200 Barton Springs Rd, Austin, TX 78704",
"address": "1200 Barton Springs Rd",
"city": "Austin",
"state": "TX",
"zip": "78704",
"latitude": 30.2598,
"longitude": -97.7544,
"estimated_value": 575000,
"estimated_equity_amount": 414000,
"estimated_equity_percentage": 72,
"year_built": 1985,
"living_area_sqft": 2200,
"lot_size_sqft": 8500,
"num_bedrooms": 4,
"num_bathrooms": 2,
"num_stories": 2,
"owner_occupied": true,
"last_sale_date": "2018-06-15",
"last_sale_amount": 380000,
"total_assessed_value": 520000,
"annual_property_tax_amount": 11440,
"num_mortgages": 1,
"total_original_loan_amount": 304000,
"total_estimated_loan_balance": 161000,
"apn": "0123456789",
"fips": "48453",
"is_likely_owner": true,
"is_resident": true,
"is_likely_renter": false
}
]
},
"credits": {
"used": 2,
"properties": 1,
"people": 1,
"deduplicated": 0
}
}
{
"error": {
"code": "invalid_person_id",
"message": "Invalid person ID format. Expected format: per_12345",
"request_id": "req_abc123"
}
}
{
"error": {
"code": "person_not_found",
"message": "No person found with ID per_99999",
"request_id": "req_abc123"
}
}
Retrieve a single person by their DealMachine person ID. Returns contact information including name, phone numbers, email addresses, and demographic data.
Path Parameters
string
required
DealMachine person ID (e.g.,
per_12345).Query Parameters
boolean
default:true
Controls whether enriched data is returned and credits are consumed.Set
true (default) to return person fields including phones, emails, and demographics. Credits are consumed. Set false for preview mode with base fields only. Preview mode omits phones, emails, and demographic data and consumes no credits.boolean
default:false
When
true, includes the person’s associated properties with address, valuation, and ownership
data.integer
default:20
Maximum associated properties to return when
include_properties=true. Maximum: 100.string
Comma-separated field IDs from List Fields. People fields return on the person. Property fields return under
property. Requires enrich=true.curl "https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value" \
-H "Authorization: Bearer dm_sk_live_xxx"
const response = await fetch(
'https://api.v2.dealmachine.com/v1/people/per_12345?include_properties=true&property_limit=20&fields=estimated_household_income,estimated_value',
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
}
);
const { data } = await response.json();
console.log(`${data.full_name} — ${data.phones?.[0]?.number}`);
if (data.properties) {
for (const prop of data.properties) {
console.log(` Property: ${prop.address}, ${prop.city} ${prop.state}`);
}
}
import requests
response = requests.get(
"https://api.v2.dealmachine.com/v1/people/per_12345",
headers={"Authorization": f"Bearer {api_key}"},
params={
"include_properties": "true",
"property_limit": 20,
"fields": "estimated_household_income,estimated_value",
},
)
data = response.json()["data"]
print(f"{data['full_name']} — {data.get('phones', [{}])[0].get('number', 'N/A')}")
for prop in data.get("properties", []):
print(f" Property: {prop['address']}, {prop['city']} {prop['state']}")
{
"data": {
"dm_person_id": "per_12345",
"full_name": "John Smith",
"first_name": "John",
"last_name": "Smith",
"middle_initial": "R",
"person_age": 45,
"estimated_household_income": 125000,
"phones": [
{ "number": "5125551234", "type": "wireless", "do_not_call": false },
{ "number": "5125559999", "type": "wireless", "do_not_call": false }
],
"emails": [{ "address": "john.smith@example.com" }],
"properties": [
{
"dm_property_id": "prop_67890",
"full_address": "1200 Barton Springs Rd, Austin, TX 78704",
"address": "1200 Barton Springs Rd",
"city": "Austin",
"state": "TX",
"zip": "78704",
"latitude": 30.2598,
"longitude": -97.7544,
"estimated_value": 575000,
"estimated_equity_amount": 414000,
"estimated_equity_percentage": 72,
"year_built": 1985,
"living_area_sqft": 2200,
"lot_size_sqft": 8500,
"num_bedrooms": 4,
"num_bathrooms": 2,
"num_stories": 2,
"owner_occupied": true,
"last_sale_date": "2018-06-15",
"last_sale_amount": 380000,
"total_assessed_value": 520000,
"annual_property_tax_amount": 11440,
"num_mortgages": 1,
"total_original_loan_amount": 304000,
"total_estimated_loan_balance": 161000,
"apn": "0123456789",
"fips": "48453",
"is_likely_owner": true,
"is_resident": true,
"is_likely_renter": false
}
]
},
"credits": {
"used": 2,
"properties": 1,
"people": 1,
"deduplicated": 0
}
}
{
"error": {
"code": "invalid_person_id",
"message": "Invalid person ID format. Expected format: per_12345",
"request_id": "req_abc123"
}
}
{
"error": {
"code": "person_not_found",
"message": "No person found with ID per_99999",
"request_id": "req_abc123"
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
dm_person_id | string | DealMachine person ID |
full_name | string | Full display name |
first_name, last_name | string | Name components |
middle_initial | string | Middle initial |
age | number | Estimated age |
estimated_household_income | number | Estimated household income |
gender | string | Gender (e.g., "Male", "Female") |
marital_status | string | Marital status (e.g., "Married", "Single") |
education | string | Education level (e.g., "Bachelor's Degree") |
occupation | string | Occupation |
occupation_group | string | Occupation group |
language | string | Primary language |
net_asset_value | string | Net asset value range |
phones | array | Phone numbers with number, normalized type, and do_not_call |
emails | array | Email addresses, each with address |
property | object | Property context and requested property fields when fields includes property data. |
properties | array | Associated properties. Only present when include_properties=true. Limited by property_limit. |
Property Fields (when included)
| Field | Type | Description |
|---|---|---|
dm_property_id | string | DealMachine property ID |
full_address | string | Complete formatted address |
address, address_2, city, state, zip | string | Parsed address components |
latitude, longitude | number | Coordinates |
estimated_value | number | Estimated market value |
estimated_equity_amount | number | Estimated equity in dollars |
estimated_equity_percentage | number | Estimated equity as percentage |
year_built | number | Year the property was built |
living_area_sqft | number | Interior living area in square feet |
lot_size_sqft | number | Total lot size in square feet |
num_bedrooms | number | Number of bedrooms |
num_bathrooms | number | Number of bathrooms |
num_stories | number | Number of stories |
property_use_code_id | number | Property use code |
owner_occupied | boolean | Whether the owner lives at the property |
last_sale_date | string | Date of last sale |
last_sale_amount | number | Price of last sale |
total_assessed_value | number | Tax assessor’s total assessed value |
annual_property_tax_amount | number | Annual property tax amount |
num_mortgages | number | Number of active mortgages |
total_original_loan_amount | number | Total original loan amount |
total_estimated_loan_balance | number | Total estimated remaining loan balance |
apn | string | Assessor’s Parcel Number |
fips | string | 5-digit FIPS county code |
is_likely_owner | boolean | Whether person is likely the owner |
is_resident | boolean | Whether person is a resident |
is_likely_renter | boolean | Whether person is likely a renter |
Credits
Whenenrich=true (the default), this endpoint consumes 1 people credit for the person. When include_properties=true, included properties consume property credits. Chargeable property fields requested through fields add a property credit. Credits are deduplicated within your billing period, so looking up the same person or property again is free.
When enrich=false, no credits are consumed. Only base fields are returned (name, match flags). No phones, emails, or demographic data is included.⌘I