How to Verify an Address with USPS (And When You Need an Address Validation API)

Validate and verify addresses with API to check user input
Validate and verify addresses with API to check user input

Address verification often starts with a simple question: can this address be used for shipping, customer records, or service planning? For US mailing addresses, the official USPS ZIP Code Lookup, USPS Addresses 3.0 API, and USPS AMS API are natural reference points. But many business workflows need more than a postal check: international coverage, autocomplete, bulk cleanup, coordinates, and confidence scores for automated decisions. In this guide, we’ll look at USPS address verification as one method, then compare it with alternative approaches such as the Geoapify Geocoding API.

Quick answer: To verify an address with USPS, use ZIP Code Lookup for one-off manual checks, the USPS Addresses API for controlled USPS mailing workflows, or AMS API for licensed address-matching software. If you also need coordinates, autocomplete, international coverage, or address data you can reuse in product workflows, combine USPS with geocoding and address autocomplete tools such as Geoapify Geocoding API and Address Autocomplete.

NeedBest optionMain limitation
Check one US mailing address manuallyUSPS ZIP Code LookupManual, one address at a time
Automate USPS postal verificationUSPS Addresses APIQuotas and USPS usage restrictions
Build licensed address matching softwareUSPS AMS APIPaid licensing and specialized setup
Add coordinates, autocomplete, or international coverageGeoapify Geocoding API and Address AutocompleteNot official USPS postal verification and no ZIP+4

In this article, an address validation API alternative means a service that can help validate, complete, standardize, geocode, or enrich address data, even when it is not an official USPS postal verification service.

Task example

Imagine an online store receives this checkout address:

1200 Market St, San Fransisco, CA

The team needs to know whether the address is complete, whether the city typo can be corrected, which ZIP Code belongs to it, and whether the result is reliable enough to pass to shipping, CRM, analytics, or route planning systems.

What Address Verification Means

Address verification means checking whether an address can be matched to a real, usable address record. In a USPS context, that usually means confirming that the address is recognized as a US postal address and returning the USPS-standardized version when available.

In practice, USPS address services can involve all three address data quality steps: validation, verification, and standardization. They work together because a mailing address first needs enough required parts, then needs to match a USPS-recognized record, and finally needs to be returned in the format USPS expects for mail handling.

  • Validation checks whether the input has the required parts, such as street address, city, state, and ZIP Code.
  • Verification checks whether the address matches a real USPS postal record.
  • Standardization formats the matched address in USPS style, including capitalization, abbreviations, ZIP Code, and ZIP+4 when available.
Address verification vs address validation vs address standardization
Validation, verification, and standardization often happen together, but verification is the step that confirms whether an address matches a real record.

For example, 1200 Market St, San Fransisco, CA may be validated as incomplete or misspelled, verified against a postal or geocoding database, and then returned in a standardized format. This article focuses on USPS verification methods, but it is useful to keep all three steps in mind because USPS tools often validate, verify, and standardize in the same workflow.

How to Verify an Address with USPS

USPS offers several ways to check US postal addresses, from a manual web form to developer APIs and licensed address-matching software. The right option depends on how many addresses you need to check, whether the process must be automated, and whether you are building mailing software rather than a regular web app.

Choose the USPS method that matches your workflow:

  • USPS ZIP Code Lookup - a generally free manual tool for checking one address at a time.
  • USPS Addresses 3.0 API - a REST API for automated USPS address standardization with quotas and usage restrictions.
  • USPS AMS API - a paid licensed product for specialized address matching software.

Method 1: Verify a Single Address with USPS ZIP Code Lookup

The USPS ZIP Code Lookup is a public web tool for checking one US mailing address at a time. It is useful when you need a quick manual confirmation of the USPS-recognized address format, ZIP Code, and ZIP+4.

USPS ZIP Code by Address form
USPS ZIP Code by Address form with separate fields for company, street address, city, state, and ZIP Code.

This is not a free-form search box. Use the ZIP Code by Address tab and fill the fields separately:

  • Street Address
  • City and State, or ZIP Code
  • Company, only for business addresses
  • Urbanization Code, only for Puerto Rico addresses when needed

For example, enter 1600 Pennsylvania Ave NW, Washington, DC as:

Street Address: 1600 Pennsylvania Ave NW
City: Washington
State: DC

USPS returns:

1600 PENNSYLVANIA AVE NW
WASHINGTON DC 20500-0005

Use the standardized result for mailing workflows. If USPS returns multiple matches or no result, correct the street, state, or company fields and try again. A matched address does not prove that a specific person or company is located there.

Pricing

The USPS ZIP Code Lookup web tool is generally free to use. The real cost is operational: a person must enter, check, and copy each result manually.

Limitations and Trade-Offs

  • One-at-a-time use - it works for occasional checks, but it does not scale for checkout forms, imports, or bulk cleanup.
  • Structured input required - users must split the address into street, city, state, and ZIP Code fields.
  • No coordinates - it returns postal information, not latitude/longitude for maps, routing, or spatial analysis.

Method 2: Use the USPS Addresses API

The USPS Addresses 3.0 API is the developer option for adding USPS address checks to software. It is useful when you need to validate and standardize addresses inside a shipping workflow, internal tool, checkout process, or CRM cleanup flow.

The API includes several address utilities. For address verification, the most relevant endpoint is GET /address, but the same API family also includes ZIP Code and city/state lookups:

EndpointWhat it doesRequired input
GET /addressReturns the best standardized USPS domestic address for a given addressstreetAddress, state, and either city or ZIPCode
GET /city-stateReturns city and state for a 5-digit ZIP CodeZIPCode
GET /zipcodeReturns ZIP Code and ZIP+4 for an address, city, and statestreetAddress, city, state

Use GET /address when you want USPS to validate and standardize a domestic address. For example:

curl "https://apis.usps.com/addresses/v3/address?streetAddress=1600%20Pennsylvania%20Ave%20NW&city=Washington&state=DC" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

A simplified successful response may look like this:

{
  "address": {
    "streetAddress": "1600 PENNSYLVANIA AVE NW",
    "city": "WASHINGTON",
    "state": "DC",
    "ZIPCode": "20500",
    "ZIPPlus4": "0005"
  },
  "additionalInfo": {
    "DPVConfirmation": "Y"
  },
  "matches": [
    {
      "code": "31",
      "text": "Single Response - exact match"
    }
  ]
}

Use address, ZIPCode, and ZIPPlus4 as the standardized USPS result. Use DPVConfirmation, matches, corrections, and warnings to decide whether to accept the address or ask for more details.

If the API cannot match an address, treat errors such as invalid city, insufficient address data, address not found, or multiple addresses found as review points.

Use the USPS API when your workflow is US-focused and postal delivery is the main goal. If your application also needs international addresses, latitude/longitude, address autocomplete, batch processing, confidence scores, or geocoding for maps and routes, compare USPS with an address validation or geocoding API before choosing the architecture.

Pricing

The USPS migration FAQ says the new USPS APIs are free for valid USPS shipping and mailing use under USPS Terms and Conditions. This makes the Addresses API useful for small, controlled US mailing workflows, but not for unrestricted bulk address validation.

USPS Addresses API Limitations and Restrictions

  • Default quota is limited - USPS Getting Started lists the default Addresses API quota as 60 calls per hour; higher limits require USPS approval.
  • Bulk/list validation is not permitted - USPS migration guidance says the API is for validating shipping addresses during label generation, not bulk use, batch reporting, or mailing list generation.
  • Address database creation is restricted - USPS Terms restrict using USPS APIs or data to create address lists, third-party databases, data products, or similar resources.
  • Structured query parameters - the API expects fields such as streetAddress, state, and either city or ZIPCode; it is not a universal free-form parser.
  • No autocomplete or coordinates - it does not provide address suggestions, latitude/longitude, or map-ready geocoding output.

Method 3: Use USPS AMS API for Licensed Address Matching Software

The USPS Address Matching System API (AMS API) is a licensed USPS software product for building address matching software. It is different from the hosted REST GET /address endpoint in the Addresses API.

AMS API is intended for products that need USPS matching logic and ZIP+4 return accuracy. It is usually not the right choice for a normal checkout form, SaaS signup, CRM import, or delivery app.

What AMS API providesWhy it matters
Platform-specific API librariesLets developers build USPS address matching into licensed software
Interface definition files and documentationHelps teams integrate the matching engine correctly
Test utility and sample configuration dataSupports implementation and validation during development
Monthly product updatesKeeps the local matching software aligned with USPS data updates

Pricing

AMS API is not free. The USPS AMS API licensing fees page links to the current fee schedule. As of the fee document updated on July 8, 2025, the linked fee schedule lists these AMS API renewal fees:

AMS API license typeRenewal fee
Interface Developer$2,110
Interface Distributor$48,200
Full Service Provider$336,000

USPS also prorates fees for the initial license year. The license year runs from October 1 through September 30, so the amount can depend on the month when the license starts.

Limitations and Trade-Offs

  • Paid licensing - AMS API has annual license fees and is not comparable to a free web lookup.
  • Specialized setup - it is a software product with libraries, configuration files, documentation, and monthly updates, not a simple hosted REST endpoint.
  • Best for mailing software - it is more appropriate for specialized address matching products than ordinary web forms or lightweight integrations.
  • Operational overhead - teams must manage licensing, updates, implementation, and compliance requirements.

USPS Address Verification Methods Compared

Here is the short version of when each USPS option makes sense:

MethodBest forCost and access
USPS ZIP Code LookupOne-off manual checksGenerally free, but manual only
USPS Addresses API GET /addressUS-focused app integrationGenerally free developer access, but hourly request quotas apply
USPS AMS APILicensed address matching softwarePaid annual license; published renewal fees range from $2,110 to $336,000 depending on license type

For most product teams, the manual lookup is too slow, and AMS API is too specialized. The REST Addresses API is the practical USPS option, but only when its quota and usage restrictions fit your workflow.

USPS Services Alternatives: Geoapify Geocoding and Address Autocomplete

USPS is useful for US postal workflows, but many applications need more than a postal match. Geoapify provides two practical alternatives for product teams that need address verification, structured address data, coordinates, autocomplete, or international coverage.

Geoapify methodBest forTry it
Geocoding APIVerifying submitted addresses, returning structured components, confidence scores, and coordinatesGeocoding Playground
Address AutocompletePreventing bad input while a user types an address in checkout, signup, or booking formsAutocomplete Playground

Geoapify Geocoding API works with both free-form and structured address input. For example, use free-form geocoding when the address arrives as one text string:

curl "https://api.geoapify.com/v1/geocode/search?text=1600%20Pennsylvania%20Ave%20NW%2C%20Washington%2C%20DC&apiKey=YOUR_API_KEY"

Use structured geocoding when your form or database already separates address fields:

curl "https://api.geoapify.com/v1/geocode/search?housenumber=1600&street=Pennsylvania%20Ave%20NW&city=Washington&state=DC&country=United%20States&apiKey=YOUR_API_KEY"

A shortened response for the free-form request looks like this:

{
  "results": [
    {
      "name": "White House",
      "country": "United States",
      "state": "District of Columbia",
      "city": "Washington",
      "postcode": "20500",
      "street": "Pennsylvania Avenue Northwest",
      "housenumber": "1600",
      "lon": -77.0365528,
      "lat": 38.8976387,
      "result_type": "amenity",
      "formatted": "White House, 1600 Pennsylvania Avenue Northwest, Washington, DC 20500, United States of America",
      "address_line1": "White House",
      "address_line2": "1600 Pennsylvania Avenue Northwest, Washington, DC 20500, United States of America",
      "rank": {
        "confidence": 1,
        "confidence_city_level": 1,
        "confidence_street_level": 1,
        "confidence_building_level": 1,
        "match_type": "inner_part"
      }
    }
  ],
  "query": {
    "text": "1600 Pennsylvania Ave NW, Washington, DC",
    "parsed": {
      "housenumber": "1600",
      "street": "pennsylvania ave nw",
      "city": "washington",
      "state": "dc"
    }
  }
}

For address verification, the most important fields are:

  • formatted, address_line1, and address_line2 - the readable standardized result.
  • housenumber, street, city, state, postcode, and country - structured address components for storage and comparison.
  • lat and lon - coordinates for maps, routing, delivery zones, and spatial checks.
  • rank.confidence and level-specific confidence fields - signals for automated acceptance or manual review.
  • query.parsed - how Geoapify interpreted the original input.

Address Autocomplete Examples

Address Autocomplete is best for incomplete or partially typed addresses. Instead of waiting until form submission, you can suggest addresses while the user types:

User starts typingAutocomplete can suggest
1600 Pennsyl1600 Pennsylvania Avenue NW, Washington, DC 20500, United States
1200 Market Sanpossible 1200 Market Street matches with city/state context
10 Downingfull address candidates in the expected country or bias area

Autocomplete reduces typos and missing fields before they enter your database. It is especially useful for checkout pages, quote forms, booking flows, delivery apps, and CRM forms.

Geoapify pricing depends on request volumes and API usage. See the Geoapify Pricing page and Pricing Details to estimate costs for geocoding, autocomplete, and batch workflows.

Geoapify Address Verification: Benefits and Trade-Offs

Geoapify is helpful when address verification is part of a broader product workflow:

  • International coverage - supports addresses beyond US postal records.
  • Coordinates included - returns latitude and longitude for maps, routing, analytics, and service areas.
  • Flexible input - accepts both free-form and structured address data.
  • Autocomplete support - helps prevent typos and missing fields before form submission.
  • Business-friendly license - lets businesses store geocoding results and standardized address data in their own databases.

Limitations and Trade-Offs

Geoapify is not a replacement for official USPS postal verification:

  • Not USPS-verified - Geoapify results are not official USPS-verified postal records.
  • No ZIP+4 - ZIP+4 is USPS postal routing data used for mail handling and delivery-point precision, so it belongs to USPS postal services rather than general geocoding data.
  • Use USPS when required - if your workflow needs USPS compliance, postal discounts, ZIP+4, or carrier-specific deliverability checks, use USPS official services for the postal verification step.

A practical setup is to use both USPS and Geoapify, each for a different step. Use USPS when you need postal verification, ZIP+4, or mailing compliance. Then use Geoapify Geocoding API to add coordinates, structured components, confidence scores, and map-ready data. In user-facing forms, add Geoapify Address Autocomplete before submission to reduce typos and missing address parts.

What to Choose: USPS, Geocoding API, or Address Autocomplete

USPS is the right choice when the main question is: is this a valid USPS mailing address? Geoapify Geocoding API and Address Autocomplete are better fits when your application needs to understand, complete, store, map, or reuse address data across product workflows.

RequirementBetter choice
Official USPS postal verificationUSPS
ZIP+4USPS
US mailing compliance or postal discountsUSPS
Checkout or signup autocompleteAddress Autocomplete
International address coverageGeocoding API
Coordinates for maps, routes, analytics, or service areasGeocoding API
CRM cleanup or database enrichmentGeocoding API
Storing standardized address results in your own databaseGeocoding API
US postal verification plus coordinates and product-ready dataCombine USPS with Geocoding API

Use USPS when you need official US postal confirmation. Use Geoapify Address Autocomplete to improve address entry, and use Geoapify Geocoding API when you need addresses that are ready for storage, maps, routing, analytics, and international workflows.

Conclusion

USPS tools are useful when your workflow depends on official US postal verification, ZIP+4, or mailing compliance:

  • Use USPS ZIP Code Lookup for occasional manual checks.
  • Use USPS Addresses API for controlled USPS-focused integrations.
  • Use USPS AMS API only for licensed mailing software.

For most product workflows, address verification needs more than a postal match. You may need autocomplete, international coverage, coordinates, confidence scores, and address data you can store and reuse.

That is where Geoapify fits: use Address Autocomplete to prevent bad input, and use Geocoding API to turn addresses into structured, map-ready data. When USPS compliance matters, combine both: USPS for postal verification, Geoapify for product-ready address intelligence.

FAQ

Is USPS address verification free?

The USPS ZIP Code Lookup is generally free for manual checks. The USPS Addresses API is also described by USPS migration guidance as free for valid USPS shipping and mailing use, but quotas and usage restrictions apply.

Can USPS verify international addresses?

No. USPS address verification tools are focused on US postal addresses. For international address search, structured address data, and coordinates, use a geocoding service such as the Geoapify Geocoding API.

Does USPS provide ZIP+4?

Yes. USPS tools can return ZIP+4 for recognized US postal addresses. ZIP+4 is USPS postal routing data, so use official USPS services when ZIP+4 is required.

Can I use USPS APIs for bulk address validation?

USPS APIs are not intended for unrestricted bulk address validation, mailing list generation, address harvesting, or database creation. USPS migration guidance says the Addresses API is for validating shipping addresses during label generation, and USPS Terms restrict creating address lists or third-party databases from USPS API data.

What is the difference between USPS address verification and Geoapify Geocoding API?

USPS verifies US postal addresses and can provide postal details such as ZIP+4. The Geoapify Geocoding API verifies and standardizes addresses against geospatial data, returns coordinates, structured address components, confidence scores, and supports international addresses.

When should I use Address Autocomplete instead of verifying an address after submission?

Use Address Autocomplete when users type addresses into checkout, signup, booking, or delivery forms. It helps prevent typos, incomplete addresses, and missing fields before the address enters your database.

Can Geoapify return coordinates for an address?

Yes. The Geoapify Geocoding API returns latitude and longitude together with a formatted address, structured components, and confidence information, so addresses can be used in maps, routing, analytics, and service-area checks.

Can I store Geoapify address results in my database?

Yes. Geoapify offers a business-friendly license that lets businesses store geocoding results and standardized address data in their own databases. Review the Geoapify Pricing and service terms for the plan and usage volume that fits your workflow.

Is Geoapify a replacement for USPS postal verification?

No. Geoapify is not a replacement for official USPS postal verification when you need USPS compliance, postal discounts, ZIP+4, or carrier-specific deliverability checks. Use USPS for the postal verification step and Geoapify for autocomplete, geocoding, coordinates, and address enrichment.

When should I combine USPS and Geoapify?

Combine them when you need both official US postal verification and product-ready address data. For example, use USPS to confirm the mailing address and ZIP+4, then use Geoapify Geocoding API for coordinates and structured data, and Address Autocomplete to improve address entry in user-facing forms.