Skip to content

Expired Domain API: How to Get Drop Lists as JSON

No single API lists every expiring domain. Here are the machine-readable sources that exist, what each returns and how to chain them in a script.

8 min read

There is no single official expired domain API that returns every expiring or dropped name. What exists is three kinds of machine-readable source: registry data (RDAP for one domain at a time, zone files for a whole extension), the lists that auction and backorder platforms publish, and filtered APIs that have already done the vetting and return a short list as JSON. Here is what each source returns, what it leaves out and how to chain them in a script.

Why there is no single expired domain API

Expiring domains do not sit in one database. A name that has just expired is still at its registrar, and many registrars auction it during the grace period, each on its own platform. A name that nobody buys passes through redemption and pending delete before it drops. So an "expired domain database" is always assembled from several places.

Source What you get What is missing
RDAP Status, dates and registrar of one domain, from the registry No list; you must already have the name
Zone files (CZDS) Every delegated name in an extension, comparable between dates No status, no dates, no metrics
Marketplace lists Names in auction or backorder, with price and end time Only that platform’s inventory, no vetting
Filtered API A short list with metrics, history and flags Only what passed the provider’s filter

RDAP: the registry’s answer for one domain

RDAP is the protocol that replaced WHOIS, and in practice it works as a free, official RDAP API for registration data. You send an HTTPS request for one domain and get JSON back: status, registration, expiration and last-changed dates, registrar and nameservers. IANA publishes a bootstrap file that pairs each extension with the base URL of its server.

Three things to know before you build on it:

  • It answers about a name, it does not list names. You cannot ask RDAP for "everything in pending delete today".
  • A 404 means the server has no record of the name. For a name you were watching, that normally means it has been deleted. Confirm at a registrar before you treat it as available.
  • Servers limit request rates. A server that declines a query for that reason answers with HTTP 429. Pace the script.

Not every extension has a server: at the time of writing, .com.tr, .se, .nu, .it and .es cannot be looked up this way. If you would prefer not to write the client, the bulk availability checker and the drop date calculator read the same records, and the guide to domain status codes explains each status.

Zone files: the raw material for a deleted domains API

ICANN’s Centralized Zone Data Service (CZDS) is, in ICANN’s words, a portal where any interested party can request access to the zone files of participating generic extensions. A zone file lists the names in an extension that are delegated, meaning they have nameservers and resolve.

Comparing the files of two dates gives you the names that left the zone. That is the raw material for a deleted domains list, but be precise about what the difference means. A name leaves the zone when it enters redemption, not when it is deleted, and it can also leave because of a hold or because its nameservers were removed. A zone difference is a list of candidates, and the status of each one still has to be confirmed over RDAP.

Zone files carry no dates, no price and no quality signal. Check the portal for which extensions take part and for the terms of use.

Marketplace lists and why an expired domain scraper is a poor substitute

Many names never reach the public drop, because they are sold in a registrar’s auction first. That inventory lives on the platforms, and each one decides how to publish it: as a downloadable list, an export, an API for account holders, or not at all. The guide to domain auction sites covers who sells what.

Read the platform’s terms before automating anything. An expired domain scraper that walks a site’s result pages breaks when the layout changes, and it may be against the site’s terms of use, which can cost you the account you bid with. If a platform publishes a list, use the list. If it does not, a free expired domains list is a safer starting point than scraping.

A filtered API: what hunter.domains returns

The hunter.domains API sits at the other end: it returns only what survived the filter. Every day the service scans the full feeds of GoDaddy Auctions, DropCatch, SnapNames, Sedo, Dynadot, Park.io and the .se/.nu registry, about two million listings, and removes names with weak authority, link-network footprints, blacklist entries or a spam history in the Wayback Machine. The page on how the filtering and scoring works has the details.

The REST API returns the same lists and reports as the website, as JSON: status, the 0–100 Hunter score and verdict, risk flags, Domain Rating, referring domains, Trust Flow and Citation Flow, the source marketplace, the price and the end time. The key is created on the account page, and the API is part of the plan, with no separate API price.

A free account’s key sees the day’s open domains, the archive of ended domains and the lookups. The Pro plan opens the full list, including the "Available now" list of dropped names that nobody registered. The endpoints and parameters are in the API documentation on the site.

MCP and webhooks

MCP. An MCP server lets AI assistants such as Claude, ChatGPT and Cursor search the list, read reports and run the lookups. You ask in plain language, for example for .com names above a Domain Rating threshold with no risk flags.

Webhooks. On Pro, signed webhooks send each new match of an alert rule to your own endpoint. That turns expired domain alerts from an email you read into an event your code handles. Verify the signature before you trust the payload.

A practical pipeline

The order is always the same: cheap checks first, so the expensive ones run on few names.

  1. Candidates. Pull names from a zone difference, a marketplace list or a filtered API.
  2. Registry status. Query RDAP for each name. Drop anything that is active again, and note the stage of the rest.
  3. Metrics. Add link data from the provider you subscribe to. A high Domain Rating says nothing about topic or spam.
  4. History. Read the archive across several years, not just the latest capture. This is the hardest step to automate well.
  5. Decision. Keep the short list for a human. A script should narrow the field, not place bids.

Say your zone difference returns a few thousand names. Step 2 removes the ones that were renewed or only lost their nameservers, step 3 the ones with no links worth having, and step 4 is where many of the rest fail. A filtered API hands you the result of steps 1 to 4, with less control over the thresholds.

What no API gives you

  • Google manual actions. They are visible only to the verified owner in Search Console. No API, including ours, can see them before you buy.
  • Trademark clearance. A flag can warn about an obvious brand name, but it is not a trademark search.
  • A complete archive reading. Wayback captures are samples, so a short spam period can fall between them.

For a single name, the domain checker runs the full report on demand.

Frequently asked questions

Is there a free expired domain API?

Partly. RDAP is free and official, but it answers one domain at a time and gives no list. Zone files can be requested through ICANN’s CZDS, but they are raw names with no status or metrics. hunter.domains includes API access in its free plan, where the key sees the day’s open domains, the archive and the lookups.

Can I get a list of deleted domains through an API?

Not from RDAP, which answers about one specific name and offers no feed of deletions. Lists of deleted names are built by comparing zone files between dates and confirming each name’s status, or they come from a provider that has done this already.

Is scraping an expired domain list allowed?

That depends on the site’s terms of use, so read them first. A scraper also breaks whenever the page changes. Use an official list, export or API where one exists.

Can an AI assistant search expired domains?

Yes, through an MCP server. An assistant that supports MCP can be connected to a service that exposes its search and lookups as tools, then asked in plain language. Deciding to buy is still up to you.

Related articles

Don't miss the next good domain.

Set your rule and leave the rest to us. You hear the moment a matching domain is found.

Get started free