data array provides an email, and the API returns all people associated with that address in a contacts array.data array. The response returns every submitted
item with a matched flag indicating whether a person was found.body dataarrayrequiredbody emailstringrequired"john.smith@example.com").body fieldsstring[]body include_propertiesbooleantrue, each matched person includes a properties array with all associated properties and
their always-included fields.data array and a totals object. There is no pagination — all submitted items are returned in a single response.matched is true, the result contains a contacts array with every person matching the email address.| Field | Type | Description |
input | object | Echo of the original input object |
matched | boolean | true |
contacts | array | All people matching the email address (see below) |
contacts array contains:| Field | Type | Description |
dm_person_id | string | DealMachine internal person ID |
full_name | string | Full display name |
first_name, last_name | string | null | Parsed name components |
property_count | integer | Number of associated properties. This count is free metadata. |
property | object | Property context and requested property fields when fields includes property data. |
phones | array | Phone numbers with number, normalized type, and do_not_call |
emails | array | Email addresses |
properties | array | Associated properties. Only present when include_properties is true. |
| requested fields | varies | Any fields specified in fields |
| Field | Type | Description |
input | object | Echo of the original input object |
matched | boolean | false |
match_failure | object | Structured failure with code and reason |
match_failure.code | string | Machine-readable failure code (see Match Failure Codes below) |
match_failure.reason | string | Human-readable explanation of why no match was found |
| Code | Description |
not_found | No matching record exists for the provided input |
invalid_input | The input could not be processed (e.g., invalid address, invalid email, invalid phone number). The reason field provides specifics. |
| Field | Type | Description |
submitted | integer | Number of items in the request data array |
matched | integer | Number of items that matched a person |
unmatched | integer | Number of items that did not match |
property_count field is free. When include_properties is true, included properties consume property credits. Chargeable property fields requested through fields add property credits. Only matched results consume credits. Credits are deduplicated within your billing period, so accessing the same entity again is free.credits object with a full breakdown of what was charged. See Credits for details.contacts array.include_properties is true, each contact's properties array includes all associated properties.input object is always echoed back so you can correlate results with your input data.1234567891011curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/email" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{ "data": [ { "email": "john.smith@example.com" }, { "email": "sarah.johnson@example.com" } ], "fields": ["full_name", "phones", "emails", "estimated_value"], "include_properties": true }'
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556{ "data": [ { "input": { "email": "john.smith@example.com" }, "matched": true, "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 }, { "number": "5125559999", "type": "wireless", "do_not_call": false } ], "emails": [{ "address": "john.smith@example.com" }], "property_count": 1, "properties": [ { "dm_property_id": "prop_a1b2c3", "address": "1200 Barton Springs Rd", "city": "Austin", "state": "TX", "zip": "78704", "latitude": 30.2598, "longitude": -97.7544 } ] } ] }, { "input": { "email": "sarah.johnson@example.com" }, "matched": false, "match_failure": { "code": "not_found", "reason": "No person found matching the provided email address" } } ], "totals": { "submitted": 2, "matched": 1, "unmatched": 1 }, "credits": { "used": 2, "properties": 1, "people": 1, "deduplicated": 0 } }