Skip to main content
POST
/
v1
/
enrichment
/
apn
curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/apn" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      { "apn": "0123-45-6789" },
      { "apn": "9876-54-3210" }
    ],
    "location": { "type": "state", "code": "TX" },
    "fields": ["estimated_value", "equity_percent", "bedrooms", "full_name", "phones"],
    "contact_audience": "owners"
  }'
{
  "data": [
    {
      "input": {
        "apn": "0123-45-6789"
      },
      "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,
      "equity_percent": 72,
      "bedrooms": 4,
      "contacts": [
        {
          "dm_person_id": "per_x1y2z3",
          "full_name": "John Smith",
          "phones": [{ "number": "5125551234", "type": "wireless", "do_not_call": false }],
          "match_status": "matched"
        }
      ]
    },
    {
      "input": {
        "apn": "9876-54-3210"
      },
      "matched": false,
      "match_failure": {
        "code": "not_found",
        "reason": "No property found matching the provided APN in this county"
      }
    }
  ],
  "totals": {
    "submitted": 2,
    "matched": 1,
    "unmatched": 1
  },
  "credits": {
    "used": 1,
    "properties": 1,
    "people": 0,
    "deduplicated": 0
  }
}
Look up properties by Assessor’s Parcel Number (APN). Each item in the data array provides an apn, and the API normalizes formatting automatically (dashes, spaces, dots are all handled). Optionally include a location to narrow results to a specific area.
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

data
array
required
Array of APN objects to look up (max 250).
location
object
Location to narrow results to a specific area. When omitted, results are not filtered by location.
fields
string[]
Field IDs to include in results. Can include both property and people fields. Omit or pass an empty array for the default set.
contact_audience
string
Which contacts to include on matched properties.Options: owners, owners_and_family, renters, residentsWhen set, each matched result includes a contacts array. Omit to skip contacts.

curl -X POST "https://api.v2.dealmachine.com/v1/enrichment/apn" \
  -H "Authorization: Bearer dm_sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      { "apn": "0123-45-6789" },
      { "apn": "9876-54-3210" }
    ],
    "location": { "type": "state", "code": "TX" },
    "fields": ["estimated_value", "equity_percent", "bedrooms", "full_name", "phones"],
    "contact_audience": "owners"
  }'
{
  "data": [
    {
      "input": {
        "apn": "0123-45-6789"
      },
      "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,
      "equity_percent": 72,
      "bedrooms": 4,
      "contacts": [
        {
          "dm_person_id": "per_x1y2z3",
          "full_name": "John Smith",
          "phones": [{ "number": "5125551234", "type": "wireless", "do_not_call": false }],
          "match_status": "matched"
        }
      ]
    },
    {
      "input": {
        "apn": "9876-54-3210"
      },
      "matched": false,
      "match_failure": {
        "code": "not_found",
        "reason": "No property found matching the provided APN in this county"
      }
    }
  ],
  "totals": {
    "submitted": 2,
    "matched": 1,
    "unmatched": 1
  },
  "credits": {
    "used": 1,
    "properties": 1,
    "people": 0,
    "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 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. Only present when contact_audience is set.
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 property
unmatchedintegerNumber of items that did not match

Credits

This endpoint consumes 1 property enrichment credit per matched property. When contact_audience is set, included contacts consume people 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

  • Each item only requires the apn field. The API normalizes formatting (dashes, dots, spaces) to the raw unformatted form automatically.
  • The location parameter is optional. When provided, results are scoped to that area. When omitted, the search is nationwide.
  • 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, each matched result includes a contacts array with the same structure and match behavior as Search Properties.