Domain monitoring and expiry alerts
Poll your own domains each night and compare dates, status codes and registrar with the previous run. A changed registrar or an approaching expiry becomes an alert instead of a surprise.
Loading
Send a domain name to the WHOIS API and get back its registrant, registrar, dates, name servers, status codes and the raw record, as JSON. We query the registry and registrar live, over WHOIS or RDAP, and return the same structure for every extension, including country-code domains that are hard to reach.
Free WHOIS API credits: 10,000 on signup, no credit card. You pay only for successful lookups.
Overview
A Domain WHOIS API, also called a WHOIS domain API or domain lookup API, returns the registration record of a domain name over HTTP. You send a domain name. It returns the registrar, the registration and expiry dates, the name servers and the status codes, plus the registrant details as far as the record publishes them. Registries publish this in different formats. The API reads each one and gives you a single JSON structure, so your code does not change from .com to .de or .io.
Quickstart
Send a domain name to the live endpoint. Pick a domain and the code updates in every language.
Sign up for free. Your key and 10,000 credits are ready right away. No card needed.
One GET to the live endpoint with domainName. Pass the key in the X-apiKey header or as an apiKey query parameter.
The WHOIS API JSON response holds the parsed fields and the raw text. Check domain_registered first.
Response explorer
Pick a group to highlight its fields in a real response. Each response pairs the parsed record with the original text, so you get clean fields for your application and the verbatim source for evidence.
Data sources
The plain-text WHOIS protocol, queried on registry and registrar servers. Which servers we ask first is set per extension and registrar, so port 43 is not always the first choice.
The structured successor to WHOIS, returned as JSON over HTTPS. We use it wherever the registry or registrar supports it well. WHOIS and RDAP generally carry the same ownership details, so we switch between them by extension support, registrar setup and availability.
Some country-code registries publish their data only on a web lookup page. We read those pages and return the fields in the same structure as every other record.
Automated collection for registries that publish records only through web forms. It extends extension coverage and gives the other routes a fallback.
A lookup can draw on more than one route. If a server rate-limits us or returns a stub record, the next route fills the gap. The response names the servers it used: domain_registrar.rdap_server, and the Registrar WHOIS Server line inside the raw record.
A library like python-whois queries servers from your own IP, so it meets the same limits you would. Here is how the two compare.
Use cases
Poll your own domains each night and compare dates, status codes and registrar with the previous run. A changed registrar or an approaching expiry becomes an alert instead of a surprise.
Read create_date and work out a domain's age in one line of code. Use it to flag brand-new domains in signup, checkout or email-security flows, or to show age and expiry inside your own dashboard. Country-code domains come back in the same shape as .com.
A newly registered lookalike shows its create_date, its registrar and, where the record publishes it, the registrant country in one call. That helps separate a parked, unrelated lookalike from active impersonation. To find other domains registered by the same owner, use the Reverse WHOIS API.
When a suspicious domain lands in your queue, one lookup returns its age, registrar, domain_status locks and the abuse email and phone you will escalate to. That is often enough to score it before anyone clicks. To check the network behind the domain, use the IP WHOIS Lookup API.
A merchant who claims ten years of trading but registered their domain last month deserves a second look. Domain age, the registrant country where published, and registrar accreditation feed into KYC and fraud scoring as extra data points.
domain_registered returns yes or no, so a signup form, a naming tool or a workflow can check a name before going further. For availability suggestions on other extensions, see the Domain Availability API.
Integrations
OpenAPI 3.1 for every live API, in JSON and YAML.
npm i @apifreaks/openapi-specsImport the endpoint and try it with your key.
Open the Postman collectionConnect any MCP-compatible client to live APIFreaks data.
npx -y @apifreaks/mcpLet an agent call the REST API directly, without MCP.
npx skills add https://github.com/api-freaks/af-agent-skills --skill apifreaks-platformView skill →A machine-readable index for crawlers and agents.
Pricing
Free tier. Every new account gets 10,000 free credits, enough for about 555 lookups. The grant is one-time and does not renew, and no credit card is required.
What a lookup costs. A successful lookup costs 18 credits, and only successful (2xx) responses are charged. Errors (4xx and 5xx) cost nothing, and any credits already deducted for them are refunded.
Track usage. Check your balance and consumption with the Credits Usage API.
FAQ
rdap_server inside domain_registrar, and whois_raw_domain keeps the original text.REDACTED FOR PRIVACY or a link to the registrar's contact form in registrant_contact.email_address. Where a registry uses the message "The RDAP server redacted the value", it appears as published. The registrar's own contact details stay available in domain_registrar.https://api.apifreaks.com/v2.0/domain/whois/live with the domainName parameter and your key in the X-apiKey header. The response comes back as JSON by default, with the parsed record and the raw WHOIS text. To get XML instead, add format=xml. The quickstart above shows the request in every language we support.status, domain_name, query_time and domain_registered, followed by the dates create_date, update_date and expiry_date. domain_registrar holds the registrar name, IANA ID, accreditation status, rdap_server, website and the abuse email and phone. Contacts come back as separate objects, such as registrant_contact and technical_contact, for each of the up to five contact types the record publishes. name_servers and domain_status list the nameservers and the EPP status codes. The original text is included too: whois_raw_domain holds the registrar's raw record, and registry_data holds the registry's own record. Add format=xml to get XML instead of JSON.domain_registered. It returns yes or no. An unregistered name returns a normal 200 response, not an error.query_time shows when each one was read. Country-code domains come back in the same structure as every other extension.domain_registered: "no".create_date for the registration date and expiry_date for the expiry or expiration date, both as ISO dates. Domain age is today's date minus create_date, which you can compute in one line of code. To see how a record looked in the past, such as earlier registrars or expiry dates, use the WHOIS History API.Pick a subscription or one-off credit plan and run live lookups on the same API key. Each request returns the registrar, registrant, dates and name servers as JSON or XML.
Checking many domains at once? Use the Bulk WHOIS Lookup API.
Price per 1,000 requests
N/A
monthly plan
N/A
yearly plan
curl -X 'GET' \'https://api.apifreaks.com/v2.0/domain/whois/live?domainName=chatgpt.com' \-H 'X-apiKey: YOUR_API_KEY'