Before creating a shipment, POST to /addresses with the raw address fields (name, street1, city, state, zip, country) and verify: true in the request body to trigger real-time validation
Inspect the verifications.delivery object in the response: check success (boolean) and errors array; a success: false indicates the address is undeliverable as entered
Surface corrected address components from the response (e.g., corrected zip code or standardized street abbreviation) and use these corrected values in your shipment creation call
Log and flag addresses where verifications.delivery.success is false for manual review or customer re-entry before committing to a label purchase
For bulk pre-validation, create address objects without verify: true and then call POST /addresses/{address_id}/verify separately to spread API cost across time
Distinguish between residential and commercial addresses using the residential field in the response, as carriers charge different rates for each
Known gotchas
Address verification accuracy depends on the carrier and country; verification is most reliable for US addresses using USPS CASS data and less reliable for some international destinations
A verified address does not guarantee delivery; verification confirms the address exists but not that the recipient or access is correct
Verification consumes API credits or counts against rate limits; do not re-verify the same confirmed address on every order if you cache results
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp