Skip to main content
POST
/
v1
/
enrichment
/
phone
curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/phone" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      { "phone": "5125551234" },
      { "phone": "2145559876" }
    ],
    "fields": ["full_name", "phones", "emails", "estimated_value"],
    "include_properties": true
  }'
{
  "data": [
    {
      "input": {
        "phone": "5125551234"
      },
      "matched": true,
      "contacts": [
        {
          "dm_person_id": "per_x1y2z3",
          "full_name": "John Smith",
          "first_name": "John",
          "last_name": "Smith",
          "phones": [{ "number": "5125551234" }, { "number": "5125559999" }],
          "emails": [{ "address": "john.smith@example.com" }],
          "properties": [
            {
              "dm_property_id": "prop_a1b2c3",
              "address": "1200 Barton Springs Rd",
              "city": "Austin",
              "state": "TX",
              "zip": "78704",
              "latitude": 30.2598,
              "longitude": -97.7544
            }
          ]
        },
        {
          "dm_person_id": "per_a4b5c6",
          "full_name": "Jane Smith",
          "first_name": "Jane",
          "last_name": "Smith",
          "phones": [{ "number": "5125551234" }],
          "emails": [{ "address": "jane.smith@example.com" }]
        }
      ]
    },
    {
      "input": {
        "phone": "2145559876"
      },
      "matched": false,
      "match_failure": {
        "code": "not_found",
        "reason": "No person found matching the provided phone number"
      }
    }
  ],
  "totals": {
    "submitted": 2,
    "matched": 1,
    "unmatched": 1
  },
  "credits": {
    "used": 3,
    "properties": 1,
    "people": 2,
    "deduplicated": 0
  }
}
Look up people by phone number. Each item in the data array provides a phone number, and the API returns all people associated with that number in a contacts array.
Each request accepts up to 250 items in the data array. The response returns every submitted item with a matched flag indicating whether a person was found.

Body Parameters

data
array
required
Array of phone objects to look up (max 250).
fields
string[]
Field IDs to include in results. Can include both people and property fields. Omit or pass an empty array for the default set.
include_properties
boolean
default:false
When true, each matched person includes a properties array with all associated properties and their always-included fields.

curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/phone" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      { "phone": "5125551234" },
      { "phone": "2145559876" }
    ],
    "fields": ["full_name", "phones", "emails", "estimated_value"],
    "include_properties": true
  }'
{
  "data": [
    {
      "input": {
        "phone": "5125551234"
      },
      "matched": true,
      "contacts": [
        {
          "dm_person_id": "per_x1y2z3",
          "full_name": "John Smith",
          "first_name": "John",
          "last_name": "Smith",
          "phones": [{ "number": "5125551234" }, { "number": "5125559999" }],
          "emails": [{ "address": "john.smith@example.com" }],
          "properties": [
            {
              "dm_property_id": "prop_a1b2c3",
              "address": "1200 Barton Springs Rd",
              "city": "Austin",
              "state": "TX",
              "zip": "78704",
              "latitude": 30.2598,
              "longitude": -97.7544
            }
          ]
        },
        {
          "dm_person_id": "per_a4b5c6",
          "full_name": "Jane Smith",
          "first_name": "Jane",
          "last_name": "Smith",
          "phones": [{ "number": "5125551234" }],
          "emails": [{ "address": "jane.smith@example.com" }]
        }
      ]
    },
    {
      "input": {
        "phone": "2145559876"
      },
      "matched": false,
      "match_failure": {
        "code": "not_found",
        "reason": "No person found matching the provided phone number"
      }
    }
  ],
  "totals": {
    "submitted": 2,
    "matched": 1,
    "unmatched": 1
  },
  "credits": {
    "used": 3,
    "properties": 1,
    "people": 2,
    "deduplicated": 0
  }
}

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 a contacts array with every person matching the phone number.
FieldTypeDescription
inputobjectEcho of the original input object
matchedbooleantrue
contactsarrayAll people matching the phone number (see below)

Contact Object

Each object in the contacts array contains:
FieldTypeDescription
dm_person_idstringDealMachine internal person ID
full_namestringFull display name
first_name, last_namestring | nullParsed name components
phonesarrayPhone numbers with number
emailsarrayEmail addresses
propertiesarrayAssociated properties. Only present when include_properties is true.
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 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 person
unmatchedintegerNumber of items that did not match

Credits

This endpoint consumes 1 people credit per matched person. When include_properties is true, included properties consume property credits. Only matched results consume credits. Credits are deduplicated within your billing period — accessing the same entity again is free. Every response includes a credits object with a full breakdown of what was charged. See Credits for details.

Notes

  • A single phone number may match multiple people. All matching contacts are returned in the contacts array.
  • Phone numbers are normalized to 10 digits. Formatting like (512) 555-1234, 512-555-1234, +1 512 555 1234 are all accepted and matched against the same canonical number.
  • When include_properties is true, each contact’s properties array includes all associated properties.
  • 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.