Skip to main content

AddressZen Python SDK

Client for every current API operation: address search and lookup, place search, email and phone validation, and key, licensee and configuration management. Requires Python 3.12 or later; tested on 3.12, 3.13 and 3.14.

pip install addresszen
from addresszen import AddressZen

with AddressZen("ak_test") as client:
    hits = client.find_address(query="123 Main Street", limit=5).hits
    if hits:
        address = client.retrieve_address(hits[0].id)
        print(address.zip_code)

ak_test is the public test key. Resolve the suggestion the user chooses. Empty suggestions are a normal result. The client returns Pydantic models from the API's result field. Read fields as attributes and use model_dump() for a dictionary. Reuse a client and close it with a context manager. Production keys belong in environment variables.

Methods

Method Purpose
find_address(query=..., ...) Address autocomplete
retrieve_address(address, ...) Resolve a suggestion using the spec's USA endpoint
address_verify(query=..., ...) Verify an address with optional ZIP or postal code, city and state inputs
find_place(query=..., ...) Place search
resolve_place(place, ...) Resolve a place suggestion
email_validation(query=..., ...) Validate an email address
phone_number_validation(query=..., ...) Validate a phone number
key_availability(key) Public availability and licensed contexts
key_details(key, user_token=...) Private settings and remaining lookups
update_key_details(key, user_token=..., ...) Update selected key settings
key_usage(key, user_token=..., ...) Usage totals and daily breakdown
key_logs(key, user_token=..., ...) Paid lookup logs as CSV text
list_licensees, create_licensee, retrieve_licensee, update_licensee, delete_licensee, regenerate_licensee_key Licensee management
list_configs, create_config, retrieve_config, update_config, delete_config Saved configurations

Verification uses the spec's zip_code parameter. For a US address, supply query="123 Main Street", zip_code="81073".

Methods expose every supported input in their signatures. Required keyword arguments must be supplied. Optional None values are omitted, leaving defaults to the server. Dataset lists are comma-joined. String flags use "true" and "false", as declared by the API. Parameter constraints appear in each method's docstring; scalar ranges, lengths and enums are checked before sending.

Use help(AddressZen.find_address) or inspect addresszen/client.py for parameters. Response definitions live in addresszen/types.py. examples/ has a runnable script for each method.

Keys

from addresszen import AddressZen

with AddressZen("ak_test") as client:
    availability = client.key_availability("ak_test")
    print(availability.available)

The key argument identifies the key to inspect or update. Availability and retrieve_config need no Management Key. Other key, licensee and configuration methods require your Management Key as the keyword user_token; the client sends it in the Authorization header, never the URL. Load it from your application's secret storage. Usage and logs accept start and end as UNIX timestamps in milliseconds. key_logs returns CSV text rather than a response model.

Update only the settings you want to change. Nested settings accept typed dictionaries from addresszen.requests. For example, daily_limit={"limit": None} disables the daily limit, notifications={"enabled": False} disables notifications and allowed_urls=[] clears the URL restriction. Omitted top-level settings remain unchanged. Nested None values are sent as JSON null.

Errors and retries

All SDK request failures derive from ClientError:

  • APIError: unsuccessful HTTP response, with status, code, message, body and raw retry_after
  • AuthenticationError, PaymentRequiredError, NotFoundError, RateLimitError and ServerError: API error subclasses
  • TransportError: connection or timeout failure before a response
  • ProtocolError: unexpected success status, malformed envelope or invalid response fields. When response fields fail validation, result holds the unvalidated result, so except ProtocolError as error: raw = error.result can fall back to it

HTTP 429 and HTTP 503 with API code 5030 raise RateLimitError. Other 5xx responses raise ServerError. Exception strings include the API's message, for example API request failed (HTTP 404, code 4040): Postcode not found, and omit credentials and request URLs. body may contain caller input.

There are no automatic retries. A timeout may occur after a lookup was processed. Choose retry behavior in the application and bound attempts; Retry-After can be seconds or an HTTP date. Inputs are checked against the spec before the network call: a missing argument, wrong type or unknown settings key raises TypeError, and an out-of-range number, string length or pattern raises ValueError. Option values the SDK does not list yet pass through to the API.

Testing and limits

Pass transport=httpx.MockTransport(handler) to test without network access, or override base_url. The default timeout is 10 seconds.

Response models validate required fields, types, lists and unions from the checked-in OpenAPI contract, and accept normal API growth: extra fields survive in model_dump(), option fields are plain strings so new values come through, and a native record from a dataset the SDK does not know yet arrives as a dictionary. An explicit filter returns address dictionaries containing the requested fields. The client is synchronous; run it in a worker thread when calling from an async application.

Signup is not included.

Development

Run uv sync --frozen, then make ci and make build. make generate rebuilds the client, transport and response types from the shared generator and this brand's spec. make check-generated detects drift without rewriting committed files. make format applies Ruff fixes and formatting; make ci checks both. Run commands from this package directory.

License

SEE LICENSE IN LICENSE

Metadata

Release files for addresszen 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for addresszen 0.1.0
File Size Uploaded
addresszen-0.1.0.tar.gz 62.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for addresszen 0.1.0
File Interpreter ABI Platform
addresszen-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 127.4 kB

Release files / addresszen-0.1.0.tar.gz

Download URL addresszen-0.1.0.tar.gz
Size 62.6 kB
Tags Source
SHA-256 checksum
How to use checksums
681203067b973e407002881c32db6813e17703eb99cfa453521d66eaedff14ad
BLAKE2b-256 checksum
How to use checksums
f594f834c5cb8a8ec51c5382a57b472eabf4819f92228dad4fbc37e97884965a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / addresszen-0.1.0-py3-none-any.whl

Download URL addresszen-0.1.0-py3-none-any.whl
Size 64.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca4d25a804602be36b28a4bbb595978e6afe39a2d1ab5b5d47704438d5fb72e7
BLAKE2b-256 checksum
How to use checksums
b81bfd1b11a12f001edc2d6eb17a835b9fd64f8e93b0eea54f0e98b99a270639
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page