Split the address before using it

Addresses often enter an agent workflow as one loose string. Shipping labels need separate fields, while CRM imports need columns that can be compared across records.

address-parse accepts a freeform US street address and costs $0.005 USDC per call. It’s one of 816 paid endpoints in the current agentutility registry.

Send a JSON object with one required property:

POST https://x402.agentutility.ai/address-parse
Content-Type: application/json

{
  "address": "123 Main St Apt 4, Springfield, IL 62704"
}

An x402-capable client handles the HTTP 402 payment challenge with USDC on Base mainnet, then receives the endpoint response.

The address value must be a nonempty string of at most 300 characters. Leading and trailing whitespace is removed before parsing. Missing input returns HTTP 400, while an address longer than 300 characters returns HTTP 413.

Every returned field

Here’s the full response for that request:

{
  "input": "123 Main St Apt 4, Springfield, IL 62704",
  "number": "123",
  "street": "Main St",
  "unit": "4",
  "city": "Springfield",
  "state": "IL",
  "zip": "62704",
  "parsed": true
}

The response has eight top-level fields:

  • input is the trimmed address received by the endpoint.
  • number is the house or building number, including a trailing letter such as 12B.
  • street is the street portion after the building number.
  • unit is the value following markers such as Apt, Suite, Unit, #, or Floor.
  • city is the text after the final comma and before the state.
  • state is an uppercase two-letter code when one appears near the end.
  • zip is a five-digit ZIP Code or ZIP+4 value found at the end.
  • parsed reports whether the result has a building number, a street, and at least one populated locality field.

A missing component is returned as null. That matters for tool routing. Callers should inspect each required field instead of treating parsed: true as proof that every property was found.

For example, a label writer may require number, street, city, state, and zip. A contact-import job might accept a missing unit. Define that policy in the caller.

Add geocoding where location matters

address-parse divides a postal string into fields. Those fields work well for database columns, form prefilling, CSV cleanup, and match-key preparation.

Geocoding resolves an address to candidate places with coordinates, ranked matches, structured region data, and bounding boxes. Add address-geocode when the next action depends on distance, a map pin, delivery-zone membership, or a timezone derived from coordinates.

Pass the original input value so apartment text and punctuation remain available:

POST https://x402.agentutility.ai/address-geocode
Content-Type: application/json

{
  "address": "123 Main St Apt 4, Springfield, IL 62704",
  "country_codes": ["us"],
  "limit": 3
}

address-geocode costs $0.02 USDC per call. Running both endpoints costs $0.025 USDC at current registry prices.

The task should control this branch. A parsed: false result can still merit geocoding because a place name or unusual address format may resolve. And a successful parse doesn’t establish deliverability or select one geographic match.

Give the router a narrow policy

A coordinates-only request should call address-geocode directly for $0.02. If the caller needs separate mailing fields plus place resolution, call address-parse first and add geocoding after it.

Use parsed: true to fill a shipping-label form. Wait for the geocoder’s latitude and longitude before choosing a delivery zone.