AddressVerify Python 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
- 🐍 Typed:
TypedDictresponse types and full type hints
Installation
pip install addressverify
Get 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
from addressverify import AddressVerify
av = AddressVerify(api_key="YOUR_API_KEY")
# Single-line address
result = av.verify("123 Main St, New York, NY 10001")
print(result["addressValid"]) # True
print(result["homeType"]) # "SINGLE_FAMILY"
print(result["homeValue"]) # 273900
Multi-line address
result = 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):
result = av.verify("20 Marie St, Iberia, MO 65486", expanded=True)
print(result["propertyInfo"]["bedrooms"]) # 4
print(result["taxAssessment"]["taxAssessedValue"]) # 150210
print(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 raise AddressVerifyError with the HTTP status_code and parsed body:
from addressverify import AddressVerify, AddressVerifyError
av = AddressVerify(api_key="YOUR_API_KEY")
try:
av.verify("not a real address")
except AddressVerifyError as err:
print(err.status_code) # e.g. 422
print(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 |
Usage as a context manager
with AddressVerify(api_key="YOUR_API_KEY") as av:
result = av.verify("123 Main St, New York, NY 10001")
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
Metadata
Release files for addressverify 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| addressverify-0.1.0.tar.gz | 5.3 kB | Without provenance | Details for addressverify-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| addressverify-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for addressverify-0.1.0-py3-none-any.whl |
Total release size: 11.6 kB
Release files / addressverify-0.1.0.tar.gz
| Download URL | addressverify-0.1.0.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
daca0134777b6dadc60d8c595c0681b37f64b8f0664478ffe5a7907e72c0bb7b
|
|
BLAKE2b-256 checksum How to use checksums |
65e75ab8e79c96e51afcf085168bd082bff4a1eeb5a9cc5bcf514722d879f103
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Release files / addressverify-0.1.0-py3-none-any.whl
| Download URL | addressverify-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4d9a35e24adb8db2fe6775a53990e2f37e92f80bda26b6a551365991074184c
|
|
BLAKE2b-256 checksum How to use checksums |
0dae0dc06c513fb8290610464445e470942440466a664bf63919b4449d5b7388
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Security for addressverify 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.