Skip to main content
POST
/
v1
/
addresses
/
validate
curl -X POST "https://api.v2.dealmachine.com/v1/addresses/validate" \
  -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"
      },
      {
        "full_address": "123 Fake Street, Nowhere, ZZ 00000"
      }
    ]
  }'
{
  "data": [
    {
      "input": {
        "full_address": "1200 Barton Springs Rd, Austin, TX 78704"
      },
      "status": "valid",
      "standardized_address": "1200 BARTON SPRINGS RD, AUSTIN, TX 78704-1227",
      "street": "1200 BARTON SPRINGS RD",
      "unit": null,
      "city": "AUSTIN",
      "state": "TX",
      "zip": "78704",
      "zip4": "1227",
      "county": "Travis",
      "fips": "48453",
      "delivery_type": "street",
      "vacant": false,
      "corrections": []
    },
    {
      "input": {
        "street": "4500 S Lamar Blvd",
        "unit": "Apt 4B",
        "city": "Austin",
        "state": "TX",
        "zip": "78745"
      },
      "status": "corrected",
      "standardized_address": "4500 S LAMAR BLVD APT 4B, AUSTIN, TX 78745-1234",
      "street": "4500 S LAMAR BLVD",
      "unit": "APT 4B",
      "city": "AUSTIN",
      "state": "TX",
      "zip": "78745",
      "zip4": "1234",
      "county": "Travis",
      "fips": "48453",
      "delivery_type": "highrise",
      "vacant": false,
      "corrections": ["unit_designator_standardized"]
    },
    {
      "input": {
        "full_address": "123 Fake Street, Nowhere, ZZ 00000"
      },
      "status": "invalid",
      "error": {
        "code": "address_not_found",
        "reason": "The address could not be found in the USPS database"
      }
    }
  ],
  "totals": {
    "submitted": 3,
    "valid": 1,
    "corrected": 1,
    "invalid": 1
  },
  "credits": {
    "used": 2,
    "properties": 2,
    "people": 0,
    "deduplicated": 0
  }
}
Validate and standardize US addresses using USPS address data. Each item in the data array can use either a single full_address string or structured components (street, unit, city, state, zip). Returns USPS-standardized versions of each submitted address along with a validation status indicating whether the address is deliverable.
Each request accepts up to 1,000 items in the data array. The response returns every submitted item with a status indicating the validation result.

When to Use This

  • Before mailing — verify addresses are deliverable so you don’t waste postage
  • Data cleanup — standardize addresses in your CRM or spreadsheet before importing
  • Before enrichment — validate addresses before passing them to Enrich by Address to improve match rates

Body Parameters

data
array
required
Array of address objects to validate (max 1,000).

curl -X POST "https://api.v2.dealmachine.com/v1/addresses/validate" \
  -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"
      },
      {
        "full_address": "123 Fake Street, Nowhere, ZZ 00000"
      }
    ]
  }'
{
  "data": [
    {
      "input": {
        "full_address": "1200 Barton Springs Rd, Austin, TX 78704"
      },
      "status": "valid",
      "standardized_address": "1200 BARTON SPRINGS RD, AUSTIN, TX 78704-1227",
      "street": "1200 BARTON SPRINGS RD",
      "unit": null,
      "city": "AUSTIN",
      "state": "TX",
      "zip": "78704",
      "zip4": "1227",
      "county": "Travis",
      "fips": "48453",
      "delivery_type": "street",
      "vacant": false,
      "corrections": []
    },
    {
      "input": {
        "street": "4500 S Lamar Blvd",
        "unit": "Apt 4B",
        "city": "Austin",
        "state": "TX",
        "zip": "78745"
      },
      "status": "corrected",
      "standardized_address": "4500 S LAMAR BLVD APT 4B, AUSTIN, TX 78745-1234",
      "street": "4500 S LAMAR BLVD",
      "unit": "APT 4B",
      "city": "AUSTIN",
      "state": "TX",
      "zip": "78745",
      "zip4": "1234",
      "county": "Travis",
      "fips": "48453",
      "delivery_type": "highrise",
      "vacant": false,
      "corrections": ["unit_designator_standardized"]
    },
    {
      "input": {
        "full_address": "123 Fake Street, Nowhere, ZZ 00000"
      },
      "status": "invalid",
      "error": {
        "code": "address_not_found",
        "reason": "The address could not be found in the USPS database"
      }
    }
  ],
  "totals": {
    "submitted": 3,
    "valid": 1,
    "corrected": 1,
    "invalid": 1
  },
  "credits": {
    "used": 2,
    "properties": 2,
    "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.

Validation Statuses

StatusDescription
validThe address exactly matched a USPS deliverable address. No corrections were needed.
correctedThe address was found but USPS made corrections (e.g., standardized abbreviations, added ZIP+4). The corrections array describes what changed.
invalidThe address could not be validated. See the error object for details.

Valid / Corrected Result

When status is valid or corrected, the result contains the USPS-standardized address:
FieldTypeDescription
inputobjectEcho of the original input object
statusstring"valid" or "corrected"
standardized_addressstringFull USPS-standardized address string
streetstringStandardized street line
unitstring | nullStandardized unit/apartment, or null if none
citystringStandardized city name
statestringTwo-letter state abbreviation
zipstring5-digit ZIP code
zip4stringZIP+4 extension
countystringCounty name
fipsstring5-digit FIPS county code
delivery_typestringUSPS delivery type (see below)
vacantbooleanWhether USPS considers this address vacant
correctionsstring[]List of corrections applied. Empty array for valid results.

Delivery Types

TypeDescription
streetStandard street delivery
highriseApartment or high-rise building
po_boxPost office box
rural_routeRural route delivery
general_deliveryGeneral delivery (held at post office)

Correction Codes

When status is corrected, the corrections array describes what was changed:
CodeDescription
zip_correctedZIP code was corrected
city_correctedCity name was corrected or standardized
state_correctedState was corrected
street_standardizedStreet name or suffix was standardized (e.g., “Street” to “ST”)
unit_designator_standardizedUnit designator was standardized (e.g., “Apartment” to “APT”)
directional_standardizedStreet directional was standardized (e.g., “South” to “S”)
zip4_addedZIP+4 was appended

Invalid Result

FieldTypeDescription
inputobjectEcho of the original input object
statusstring"invalid"
errorobjectStructured error with code and reason

Error Codes

CodeDescription
address_not_foundThe address does not exist in the USPS database
insufficient_addressNot enough information to identify a specific address
multiple_matchesThe address matched multiple deliverable locations — add a unit number to disambiguate
invalid_stateThe state abbreviation is not valid
invalid_zipThe ZIP code is not valid or does not match the city/state

Totals

FieldTypeDescription
submittedintegerNumber of items in the request data array
validintegerNumber of addresses that matched exactly
correctedintegerNumber of addresses that matched with corrections
invalidintegerNumber of addresses that could not be validated

Credits

This endpoint consumes 1 credit per validated address (addresses with status of valid or corrected). Invalid addresses are free. Credits are deduplicated within your billing period — validating the same address again is free. 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 or the combination of street + city + state. Including unit and zip with structured fields is optional but improves accuracy.
  • Items are validated independently — one invalid address does not affect others.
  • The input object is always echoed back so you can correlate results with your input data.
  • Standardized addresses use USPS formatting conventions: uppercase letters, standard abbreviations (ST, AVE, BLVD), and directional abbreviations (N, S, E, W).
  • The fips code in valid/corrected results can be used directly as a county location code in Search Properties and Search People.