Skip to main content

verified-net

Official Python client for the Verified.net API: email verification, phone validation, live carrier and porting lookups, IP intelligence, contact verification, reverse lookups and bulk jobs. No dependencies; Python 3.9+.

pip install verified-net

Quick start

Create an API key at app.verified.net and set it as VERIFIED_KEY.

from verified_net import Client, VerifiedError

client = Client()  # or Client("vfy_live_...")

result = client.email("jane.doe@gmial.com")
print(result["recommendation"])   # {'action': 'review', 'reasons': ['possible_typo']}
print(result["did_you_mean"])     # jane.doe@gmail.com

phone = client.phone("(202) 456-1111", default_country="US")
print(phone["line_type"], phone["voip"])

try:
    client.carrier("+12024561111")
except VerifiedError as e:
    print(e.status, e.code, e.message, e.request_id)

Every result has recommendation.action: accept, review or reject, with reasons. Field reference: verified.net/docs.

Methods

Method Endpoint Credits
email(address) POST /v1/email 1
phone(number, default_country=None) POST /v1/phone 1
carrier(number) POST /v1/carrier (US/Canada) 3
ip(ip) POST /v1/ip 1
contact(email, name=None, phone=None) POST /v1/contact 1
reverse_phone(phone, tier="standard") POST /v1/reverse/phone 10 / 25, only when found
reverse_email(email) POST /v1/reverse/email 10, only when found
account() GET /v1/account free

Invalid input is free, and the same value checked again within 7 days is free. Pass bypass_cache=True to force a fresh (charged) check.

Bulk jobs

job = client.create_bulk_job("email", ["a@example.com", "b@example.org"])
job = client.wait_for_bulk_job(job["id"])
for item in client.bulk_results(job["id"]):
    print(item["input"], item["status"], item["result"] and item["result"]["recommendation"]["action"])

open("results.csv", "wb").write(client.bulk_results_csv(job["id"]))

Types: email, phone, ip, carrier, reverse_phone, reverse_email. Up to 100,000 values per job. create_bulk_job sends an Idempotency-Key, so retrying it after a network error never creates a second job. webhook_url= gets a signed POST when the job finishes.

Errors and retries

API errors raise VerifiedError with status, code (insufficient_credits, rate_limited, unauthorized, invalid_request, ...), message and request_id (quote it to support). A 429 is retried after Retry-After (max_retries=2 by default); network errors are retried for reads and bulk job creation only, so a lookup is never charged twice by a retry.

License

MIT

Metadata

Release files for verified-net 1.0.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 verified-net 1.0.0
File Size Uploaded Provenance
verified_net-1.0.0.tar.gz 5.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for verified-net 1.0.0
File Interpreter ABI Platform
verified_net-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.3 kB

Release files / verified_net-1.0.0.tar.gz

Download URL verified_net-1.0.0.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
fa5d6cab44cad0db553504e6149fb4fafca488590b042a46fb282627b90ee17d
BLAKE2b-256 checksum
How to use checksums
be3b230d41fb287af38cbe0c1f5aaebe07b5a03797c2cb1a488bf6650d6b2e25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / verified_net-1.0.0-py3-none-any.whl

Download URL verified_net-1.0.0-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
475d6cda4cdc6a3e58c4ad0f007f9b3b5c4b4c0822369861667ba2f2d8295bb5
BLAKE2b-256 checksum
How to use checksums
a5f6a784718c3b61d1914d94e86c0b76afe2f1fee8aa4b3d3c17f1bd138da336
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for verified-net 1.0.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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

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