Skip to main content

usacallerlookup

Zero-dependency Python client for the free USA Caller Lookup API: reverse phone lookup, FTC robocall complaint data, and US area code information.

The API is free, needs no key, and covers every US NANP number reported in FTC Do Not Call complaints (200,000+ tracked numbers, refreshed every weekday). Aggregates are US public domain data (CC0).

Install

pip install usacallerlookup

Requires Python 3.8 or newer. Uses only the standard library.

Usage

import usacallerlookup as ucl

# Reverse phone lookup: location, carrier, complaint history
num = ucl.lookup_number("369-216-6437")
print(num["location"])              # {'city': 'Ukiah', 'state': 'CA', 'carrier': 'T-MOBILE USA, INC.'}
print(num["complaints"]["total"])   # 1389
print(num["complaints"]["top_subjects"][0]["subject"])

# Area code info: state, timezone, top cities, complaint totals
ac = ucl.area_code(369)
print(ac["state"], ac["timezone"])  # CA P

# Dataset-wide statistics
s = ucl.stats()
print(s["tracked_numbers"], s["complaint_records"])

Phone numbers are accepted in any common format: "2029671717", "202-967-1717", "(202) 967 1717", "+1 202 967 1717".

API

Function Endpoint Returns
lookup_number(phone) /number/{phone} Location, carrier, toll-free flag, FTC complaint totals and subjects, community reports
area_code(npa) /area-code/{npa} State, timezone, assigned prefixes, top cities, complaint totals
stats() /stats Tracked numbers, complaint records, robocall share, last refresh time

A number with no complaint history still returns a result (zero counts). An unknown area code raises UCLError with status == 404.

Every function takes an optional timeout keyword argument (seconds, default 10).

Errors

All failures raise UCLError, which carries status (HTTP status, or 0 for input and network errors) and code ("invalid_input", "rate_limited", "network_error", or the API's error code).

Rate limit

60 requests per minute per IP. Exceeding it raises UCLError with code == "rate_limited" and status == 429. For bulk analysis, skip the API and use the full dataset instead (CSV, CC0, updated weekdays).

Data sources

License

MIT for this client. The underlying aggregates are CC0 1.0 (US public domain source data).

Metadata

Release files for usacallerlookup 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 usacallerlookup 1.0.0
File Size Uploaded
usacallerlookup-1.0.0.tar.gz 4.7 kB Details

Built distribution (wheel)

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

Total release size: 9.8 kB

Release files / usacallerlookup-1.0.0.tar.gz

Download URL usacallerlookup-1.0.0.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7a5648c3336d4b05bd87afcfcc1aa1bbdc1f5294593adc0ad254047ee4740899
BLAKE2b-256 checksum
How to use checksums
e897a0a73ac125ab6468a0a94a166d11bb7c0f65ceb00b6570bb1b491f65e49d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

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

Download URL usacallerlookup-1.0.0-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0dc4eed8e9da7e66519a735a59460cebc32e9f8cb28e0dd28dab6eb2877c802e
BLAKE2b-256 checksum
How to use checksums
ef64fc323adb60813f57b716ee61e4fce8bbe27c2fbdee3f50881fbfdb1c1bb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.0.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