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

Enrich by Address

Look up properties by street address. Each item in the data array can use either a single full_address string or structured components (street, unit, city, state, zip). You can also break down the street into street_number and street_name instead of using a single street field.
Each request accepts up to 250 items in the data array. The response returns every submitted item with a matched flag indicating whether a property was found.

Body Parameters

body dataarrayrequired
Array of address objects to look up (max 250).
Address object properties
body full_addressstring
Complete address string (e.g., "1200 Barton Springs Rd, Austin, TX 78704"). Use this or the structured fields below — not both.
body streetstring
Street address line only — e.g., "1200 Barton Springs Rd". Do not include city, state, or ZIP in this value; put those in the separate city, state, and zip fields. If you want to pass the whole address as one string, use full_address instead. Required when not using full_address or street_number/street_name.
If we detect that this field contains a full address line (e.g., "1200 Barton Springs Rd Austin, TX 78704"), we'll try to match on just the parsed street and attach a match_warning to the per-item response (see match_warning).
body street_numberstring
Street number (e.g., "1200"). Use with street_name as an alternative to street.
body street_namestring
Street name (e.g., "Barton Springs Rd"). Use with street_number as an alternative to street.
body unitstring
Unit, apartment, or suite number (e.g., "Apt 4B", "Suite 200"). Optional.
body citystring
City name. Required when not using full_address.
body statestring
Two-letter state abbreviation. Required when not using full_address.
body zipstring
5-digit ZIP code. Optional when using structured fields, but improves match accuracy.
body fieldsstring[]
Field IDs to include in results. Can include both property and people fields. Omit or pass an empty array for the default set.
body contact_audiencestring
Which contacts to include on matched properties.
Options: owners, owners_and_family, renters, residents, none
When set to an audience other than none, each matched result includes a contacts array. Omit the parameter or set it to none to return property data only with zero people credits.
Use contact_audience: "none" when you only need the enriched property. Request owners or another audience only when you need those people records.

Response Fields

The response contains a data array and a totals object. There is no pagination — all submitted items are returned in a single response.

Matched Result

When matched is true, the result contains all always-included property fields plus any requested fields.
FieldTypeDescription
inputobjectEcho of the original input object
matchedbooleantrue
dm_property_idstringDealMachine internal property ID
full_addressstringComplete formatted address
address, city, state, zipstringParsed address components
latitude, longitudenumberProperty coordinates
imagesobjectSigned URLs for street_view, satellite, and roadmap
contactsarrayContacts matching contact_audience. Omitted for contact_audience: "none".
requested fieldsvariesAny fields specified in fields

Unmatched Result

FieldTypeDescription
inputobjectEcho of the original input object
matchedbooleanfalse
match_failureobjectStructured failure with code and reason
match_failure.codestringMachine-readable failure code (see Match Failure Codes below)
match_failure.reasonstringHuman-readable explanation of why no match was found

Match Warnings

When the API can still match an item but had to rewrite the input to do so, the response item includes a match_warning alongside matched (whether the match succeeded or not). Treat it as a signal to fix your client — the match worked this time but may not on a similar input.
FieldTypeDescription
match_warning.codestringMachine-readable warning code (e.g., street_field_contains_full_address)
match_warning.messagestringHuman-readable explanation
match_warning.hintobjectEndpoint-specific hint — for street_field_contains_full_address, includes parsed_street with what we used

Match Failure Codes

These codes are shared across all enrichment endpoints.
CodeDescription
not_foundNo matching record exists for the provided input
invalid_inputThe input could not be processed (e.g., invalid address, invalid email, invalid phone number). The reason field provides specifics.

Totals

FieldTypeDescription
submittedintegerNumber of items in the request data array
matchedintegerNumber of items that matched a property
unmatchedintegerNumber of items that did not match

Credits

This endpoint consumes 1 property data credit per matched property. When contact_audience is set to an audience other than none, included contacts consume people credits. contact_audience: "none" consumes zero people credits. Only matched results consume credits. Credits are deduplicated within your billing period.
Every response includes a credits object with a full breakdown of what was charged. See Credits for details.

Notes

  • Each item must include either full_address, street, or the combination of street_number + street_name, along with city + state. Including unit and zip with structured fields is optional but improves match accuracy.
  • Items are matched independently — one failed match does not affect others.
  • The input object is always echoed back so you can correlate results with your input data.
  • When contact_audience is set to an audience other than none, each matched result includes a contacts array with the same structure and match behavior as Search Properties.
Request example
curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/address" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{ "data": [ { "full_address": "1200 Barton Springs Rd, Austin, TX 78704" }, { "street": "4500 S Lamar Blvd", "unit": "Apt 4B", "city": "Austin", "state": "TX", "zip": "78745" }, { "street_number": "1600", "street_name": "Pennsylvania Ave", "city": "Washington", "state": "DC", "zip": "20500" } ], "fields": ["estimated_value", "estimated_equity_percentage", "num_bedrooms", "full_name", "phones"], "contact_audience": "owners" }'
Response example
{ "data": [ { "input": { "full_address": "1200 Barton Springs Rd, Austin, TX 78704" }, "matched": true, "dm_property_id": "prop_a1b2c3", "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, "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, "estimated_equity_percentage": 72, "num_bedrooms": 4, "contacts": [ { "dm_person_id": "per_x1y2z3", "full_name": "John Smith", "first_name": "John", "last_name": "Smith", "phones": [{ "number": "5125551234", "type": "wireless", "do_not_call": false }], "emails": [{ "address": "john.smith@example.com" }], "is_likely_owner": true, "is_in_owner_family": false, "is_resident": true, "is_likely_renter": false } ] }, { "input": { "street": "999 Nonexistent Ave", "city": "Austin", "state": "TX", "zip": "78700" }, "matched": false, "match_failure": { "code": "not_found", "reason": "No property found matching the provided address" } } ], "totals": { "submitted": 2, "matched": 1, "unmatched": 1 }, "credits": { "used": 2, "properties": 1, "people": 1, "deduplicated": 0 } }