addressverify
v0.1.0
Published
Official TypeScript/JavaScript SDK for the AddressVerify API: validate residential addresses, classify home types, and get property values.
Downloads
21
Maintainers
Readme
AddressVerify JavaScript / TypeScript SDK
Official SDK 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 runtime dependencies: uses native
fetch(Node 18+) - 🟦 Fully typed: first-class TypeScript types
Installation
npm install addressverifyGet an API key
Create a free account at app.addressverify.io and copy your API key from the dashboard. The free tier includes 50 free API calls to get started.
Quick start
import { AddressVerify } from "addressverify";
const av = new AddressVerify({ apiKey: process.env.ADDRESSVERIFY_API_KEY! });
// Single-line address
const result = await av.verify("123 Main St, New York, NY 10001");
console.log(result.addressValid); // true
console.log(result.homeType); // "SINGLE_FAMILY"
console.log(result.homeValue); // 273900Multi-line address
const result = await av.verify({
street: "20 Marie St",
city: "Iberia",
state: "MO",
zip: "65486",
});Expanded property data
Pass { expanded: true } to receive parsed address components, property details, tax
assessment, and listing data (available on all plans at no extra cost):
const result = await av.verify("20 Marie St, Iberia, MO 65486", { expanded: true });
console.log(result.propertyInfo?.bedrooms); // 4
console.log(result.taxAssessment?.taxAssessedValue); // 150210
console.log(result.listing?.listingStatus); // "recentlySold"Response shape
{
"address": "20 Marie St, Iberia, MO 65486",
"addressValid": true,
"homeType": "SINGLE_FAMILY",
"homeValue": 371000,
// present only with { expanded: true }
"addressInfo": { "streetAddress": "20 Marie St", "zipcode": "65486", "city": "Iberia", "state": "MO" },
"propertyInfo": { "bathrooms": 2, "bedrooms": 4, "livingArea": 2072, "yearBuilt": 2001, "lotSize": "1.84 acres" },
"taxAssessment": { "taxAssessedValue": 150210, "taxAssessmentYear": "2024" },
"listing": { "lastSoldDate": "2025-05-22", "isPreforeclosureAuction": false, "listingStatus": "recentlySold" }
}Error handling
Non-2xx responses throw an AddressVerifyError with the HTTP status and parsed body:
import { AddressVerify, AddressVerifyError } from "addressverify";
try {
await av.verify("not a real address");
} catch (err) {
if (err instanceof AddressVerifyError) {
console.error(err.status); // e.g. 422
console.error(err.body); // API error payload
}
}| 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 |
Configuration
new AddressVerify({
apiKey: "...", // required
baseUrl: "https://api.addressverify.io" // optional override
});verify() also accepts an AbortSignal for cancellation/timeouts:
await av.verify("123 Main St, New York, NY 10001", {
signal: AbortSignal.timeout(5000),
});Roadmap
- Home Verify (homeowner + person & property lookup,
…/isHomeOwner/homeOwner): coming to the SDK. Already available on the REST API.
Links
- 🌐 Website: https://addressverify.io
- 📚 API docs: https://addressverify.io/docs
- 🔑 Get an API key: https://app.addressverify.io/user/register
License
MIT © AddressVerify
