Address Validation

by goshippocf8e96532f24No license3 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 2 weeks ago

Validate, parse, and standardize shipping addresses via the Shippo API

Instructions onlyProductivity & Workflow
AI-generated overview

Validates, parses, and standardizes shipping addresses through the Shippo API.

What it does
This skill guides an agent through using Shippo API endpoints to validate, parse, and standardize shipping addresses. It covers the v1 and v2 field naming conventions, the CreateAddress plus ValidateAddress workflow, interpreting validation results and corrections, parsing freeform address strings, handling international addresses, bulk validation, re-validation, and duplicate address errors. The output is a standardized address with corrected fields, validation status, and residential or commercial classification.
When to use it
Use it when an agent needs to check or normalize a shipping address before fulfillment, parse an unstructured address into components, or process a list of addresses for validation. It is also relevant when handling international addresses or resolving duplicate address errors in a Shippo account.
Requirements
Requires access to the Shippo API and the relevant API credentials. No scripts are included; the skill is instructions only.
<!-- ⚠️ DO NOT EDIT. Auto-generated from skills/address-validation/SKILL.md by scripts/sync.js Edits here will be overwritten on the next sync. To change this content, edit the canonical source and re-run the sync script. -->

Address Validation

Address Field Format

The Shippo API uses v1 field names for address components in most endpoints (including CreateShipment). Always use:

FieldDescriptionExample
nameFull nameJane Smith
street1Street address line 1731 Market St
street2Street address line 2 (optional)Suite 200
cityCitySan Francisco
stateState or provinceCA
zipPostal code94103
countryISO 3166-1 alpha-2 country codeUS
emailEmail (required for international senders)[email protected]
phonePhone (required for international senders)+1-555-123-4567

Note: CreateAddress and ValidateAddress take the v2 field names (address_line_1, city_locality, state_province, postal_code), but when passing addresses inline to CreateShipment, you must use the v1 names above.


Validate a Structured Address

  1. Collect at minimum: street1, city, state, zip, country (ISO 3166-1 alpha-2).
  2. Call CreateAddress with the address fields. This creates the address and returns an object ID.
  3. Call ValidateAddress with the address fields to get validation results. Note: this endpoint takes address fields as query parameters, not an object ID.
  4. Check analysis.validation_result.value in the response. Values: "valid", "invalid", or "partially_valid" (address found with corrections applied). Check analysis.validation_result.reasons for details.
  5. Report the standardized address back. Highlight any corrected fields (listed in changed_attributes). Note analysis.address_type ("residential", "commercial", or "unknown") -- residential classification affects carrier surcharges.
  6. If invalid: relay the reason descriptions. If the API returns a recommended_address, present it to the user.
  7. If partially_valid: show what was corrected and ask the user to confirm the corrections are acceptable.

Parse a Freeform Address

  1. Call ParseAddress with the raw string (e.g., "123 Main St, Springfield IL 62704").
  2. Review the structured output for completeness. The parse response uses v2 field names: address_line_1, city_locality, state_province, postal_code.
  3. Note: the parse response does not include country. You must ask the user for the country or infer it, then add it before proceeding.
  4. Validate the parsed result by passing the fields to CreateAddress then ValidateAddress (follow the structured address workflow above from step 2).

International Addresses

  • Always require the country field. Do not guess.
  • Pass non-Latin characters as-is; the API handles encoding.
  • Validation depth varies by country. US, CA, GB, AU, and major EU countries have deep validation. Others may only confirm structural completeness. Inform the user of this limitation.

Bulk Address Validation

There is no batch validation endpoint. Call CreateAddress per address. Track results (row number, valid/invalid, corrections, errors, residential classification) and report a summary when done. For 50+ addresses, set expectations about processing time and provide progress updates.


Re-validate an Existing Address

Call ValidateAddress with the address fields. This endpoint validates by address fields, not by object ID.


Duplicate Addresses

If CreateAddress returns a "Duplicate address" error, the address already exists in the account. Retrieve it via ListAddresses or proceed directly to validation.


Quick Reference

Validate an address: CreateAddress (saves address) + ValidateAddress (validates with same fields)

Parse then validate: ParseAddress -> add country -> CreateAddress + ValidateAddress

Source and attribution

Source:goshippo/aiinproviders/claude/plugin/skills/address-validationat commitcf8e965

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

More from goshippo/ai

Upgrade Shippo

goshippo

Guides Shippo API version awareness, webhook payload versioning, and troubleshooting of the hosted Shippo MCP server.

Software Development3updated 2 weeks ago

Tracking

goshippo

Track packages across carriers via the Shippo API, including tracking history and webhooks.

Productivity & Workflow3updated 2 weeks ago

Shippo Support Ticket

goshippo

Generate a complete, auto-classified, ready-to-paste Shippo support ticket for a single shipment or label. Use when a support agent or customer needs to escalate a shipping issue (lost/delayed package, unused-label refund, billing/rate adjustment, address exception, customs hold, carrier-account, or tracking-webhook problem). Given a tracking number + carrier, a transaction (label) ID, or a shipment ID, it classifies the issue, runs the right read-only Shippo MCP lookups, computes the triage timeline, and emits both a copy-paste support message and a routing-tagged JSON block so the ticket lands in the right pipeline first time.

Awaiting classification3updated 2 weeks ago

Shippo Best Practices

goshippo

Guides Shippo integration decisions, choosing between Rates at Checkout vs. full Shipments+Transactions vs. Batch processing, address validation strategy (v1 vs v2 fields), domestic vs international workflows (customs declarations, incoterms), label format selection, and webhook setup. Use when planning, building, or reviewing any Shippo integration, including building checkout flows, bulk fulfillment pipelines, address validation, label generation, package tracking, customs handling, or webhook subscriptions.

Awaiting classification3updated 2 weeks ago

Shipping Analysis

goshippo

Analyzes shipping costs, compares carriers, optimizes package dimensions, and reviews historical shipping spend via the Shippo API.

Business & Finance3updated 2 weeks ago

Rate Shopping

goshippo

Compares multi-carrier shipping rates via the Shippo API and recommends cheapest, fastest, or best-value options.

Business & Finance3updated 2 weeks ago