Python SDK · Feature

Domain Age Checker in Python

Newly registered domains are a strong fraud and spam signal. domain_age returns how long ago a domain was registered, derived from WHOIS data, so you can flag or block domains created days ago.

Trusted by thousands of businesses
Fast JSON API responses
Real-time validation
Simple integration, SDKs & examples
What it does

Catch throwaway domains early

Abuse rings register domains in bulk and burn them fast, so a domain's age is one of the cheapest, highest-signal fraud checks you can run. domain_age turns a raw WHOIS record into a simple registration date and age in days, and domain_age_batch lets you screen a whole list — sign-up email domains, referral links, or outbound targets — in a single request.

Prerequisites

1

Age of one domain with domain_age

Returns the registration date and the age in years and days.

import os
from ipapi_io import IpApiClient

client = IpApiClient(api_key=os.environ["IP_API_IO_KEY"])

age = client.domain_age("example.com")

print(age["is_valid"])           # True
print(age["registration_date"])  # "1995-08-14"
print(age["age_in_years"])       # 30
print(age["age_in_days"])        # 11000+

if (age["age_in_days"] or 10**9) < 30:
    pass  # treat brand-new domains as higher risk
2

Many domains with domain_age_batch

Check a list of domains in one request (raises ValueError if empty).

batch = client.domain_age_batch([
    "example.com",
    "brand-new-domain.xyz",
])

for domain, age in batch["results"].items():
    print(domain, age["age_in_days"])
Reference

Response reference

DomainAge (from domain_age)

FieldTypeDescription
domainstrThe domain checked
is_validboolWhether age could be determined
registration_datestr | NoneFirst registration date
age_in_yearsint | NoneAge in whole years
age_in_daysint | NoneAge in days
errorstr | NoneReason when is_valid is false

domain_age_batch(domains) returns a BatchDomainAgeResponse — a results dict mapping each domain to its DomainAge.

FAQ

Frequently asked questions

How do I check a domain's age in Python?

Call client.domain_age(domain). It returns is_valid, the registration_date, and the age as both age_in_years and age_in_days, derived from WHOIS data.

Why is domain age a fraud signal?

Freshly registered domains are disproportionately used for phishing, spam, and throwaway accounts. Flagging domains created in the last few days — e.g. age_in_days < 30 — catches a lot of abuse before it reaches your users.

Can I check many domains at once?

Yes. client.domain_age_batch(domains) checks a list of domains in one request and returns a results dict mapping each domain to its age. It raises ValueError if the list is empty.

Start building with the ip-api.io Python SDK

Install ip-api-io, drop in your free API key, and ship in minutes — one zero-dependency client for geolocation, fraud detection, and email validation.

Need support?

Explore how IP-API.io can enhance your security, provide robust bot protection, and improve IP geolocation accuracy for your applications.

Contact Support

Found a bug in the SDK?

The ip-api-io package is open source. Open an issue or pull request on GitHub and we'll take a look.

Open on GitHub