Official Go client for the AddressVerify API — validate U.S. residential addresses, classify home types, and get estimated property values in real time.
- 🏠 Address validation — confirm an address is a real, deliverable U.S. residence
- 🏷️ Home-type classification —
SINGLE_FAMILY,MULTI_FAMILY,APARTMENT,CONDO,TOWNHOUSE,MANUFACTURED,LOT - 💰 Property values — estimated home value, plus optional expanded property data
- 🪶 Zero dependencies — standard library only
go get github.com/AddressVerify-io/addressverify-goCreate a free account at app.addressverify.io and copy your API key from the dashboard. The free tier includes 100 calls/month.
package main
import (
"context"
"fmt"
"log"
"os"
addressverify "github.com/AddressVerify-io/addressverify-go"
)
func main() {
client := addressverify.NewClient(os.Getenv("ADDRESSVERIFY_API_KEY"))
// Single-line address
res, err := client.Verify(context.Background(), "123 Main St, New York, NY 10001")
if err != nil {
log.Fatal(err)
}
fmt.Println(res.AddressValid) // true
fmt.Println(res.HomeType) // SINGLE_FAMILY
fmt.Println(res.HomeValue) // 273900
}res, err := client.VerifyParts(ctx, addressverify.Address{
Street: "20 Marie St",
City: "Iberia",
State: "MO",
Zip: "65486",
})Pass addressverify.WithExpanded() to receive parsed address components, property
details, tax assessment, and listing data (available on all plans at no extra cost):
res, err := client.Verify(ctx, "20 Marie St, Iberia, MO 65486", addressverify.WithExpanded())
if err != nil {
log.Fatal(err)
}
if res.PropertyInfo != nil {
fmt.Println(res.PropertyInfo.Bedrooms) // 4
}Non-2xx responses return an *APIError with the HTTP status and parsed body:
res, err := client.Verify(ctx, "not a real address")
if err != nil {
var apiErr *addressverify.APIError
if errors.As(err, &apiErr) {
fmt.Println(apiErr.StatusCode) // e.g. 422
fmt.Println(apiErr.Message) // API error message
}
}| Status | Meaning |
|---|---|
400 |
Bad Request — invalid or missing parameters |
401 |
Unauthorized — invalid API key |
422 |
Invalid address (e.g. missing street number) |
429 |
Too Many Requests — rate limit exceeded |
client := addressverify.NewClient(
"YOUR_API_KEY",
addressverify.WithBaseURL("https://api.addressverify.io"), // optional
addressverify.WithHTTPClient(&http.Client{Timeout: 5 * time.Second}), // optional
)Every request takes a context.Context, so cancellation and timeouts work as usual.
- Home Verify (homeowner + person & property lookup,
…/isHomeOwner/homeOwner) — coming to the SDK. Already available on the REST API.
- 🌐 Website: https://addressverify.io
- 📚 API docs: https://addressverify.io/docs
- 🔑 Get an API key: https://app.addressverify.io/user/register
MIT © AddressVerify