The portfolio command bulk-checks expiry dates for any list of domains, reads a file, and emits structured JSON you can pipe into a reminder or a cron job.
# check a few domains inline
python cli.py portfoliogoogle.com github.com# read the whole list from a file
python cli.py portfolio --filedomains.txt# structured JSON (status, days_remaining, expires, registrar)
python cli.py portfolio --filedomains.txt--json
THE BIG DIFFERENCE
Monitor renewals from inside your AI
This tool speaks the Model Context Protocol (MCP) and ships a REST API. Connect it once, then just ask your assistant to watch your domain portfolio and flag anything expiring soon.
A lapsed domain can take a website, its email and its search rankings offline in a single day, and once a name drops it can be snapped up by anyone. If you own more than a handful of domains, tracking every renewal date by hand is easy to get wrong. A domain expiry monitor reads the authoritative expiry date for each domain in your list and shows you, at a glance, which ones need renewing and how soon, so nothing slips through.
How to check expiry for a list of domains
Paste your domains into the box above, one per line (for example google.com and github.com).
Select Check all. Each domain is queried and the table fills in within a few seconds.
Read the status, days remaining, expiry date and registrar, sorted with the most urgent first.
Export the whole portfolio as CSV to track it or feed a reminder.
What days_remaining and status mean
Every domain is returned with a days_remaining figure and a status so you can act on it without reading a full WHOIS record:
days_remaining: the whole number of days from today until the domain's expiry date. It can be negative when a domain has already passed its expiry.
ok: the domain is comfortably in date, with plenty of runway before renewal.
expiring_soon: the renewal window is close. Renew it now to stay safe.
expired: the expiry date has passed. The domain may be in a grace or redemption period before it is released.
unregistered: the name is not registered, so there is nothing to renew.
unknown: no authoritative expiry date could be read, often because the TLD does not publish one. invalid means the input was not a usable domain.
Set up an AI agent to watch your portfolio
Because this tool ships an MCP server and a REST API, you do not have to open a page to stay on top of renewals. Connect it to your assistant once, then ask it to review your list on a schedule: "check my domains every week and tell me anything under 30 days". Your agent calls the same expiry engine, reads the days_remaining and status for each domain, and surfaces only the ones that need action, right where you already work.
Frequently asked questions
What is a domain expiry monitor?
A domain expiry monitor checks when each domain in your list is due to expire and how many days remain until renewal. Paste a list of domains and it returns the expiry date, days remaining, registrar and a status for each one, so you can renew before anything lapses.
How do I check the expiry date of multiple domains at once?
Paste your domains into the box, one per line, and select Check all. The tool queries each domain and shows a sorted table with days remaining, the expiry date, the registrar and a status of ok, expiring soon, expired, unregistered or unknown. You can export the whole table as CSV.
Is the Domain Expiry Monitor free and open source?
Yes. It is completely free and open source under the MIT license, part of WebToolsHub by Konko Maji. It reads authoritative registration data over HTTPS and never stores your list. There is no signup.
What does days remaining and status mean?
Days remaining is the whole number of days from today until the domain's expiry date. Status summarises that: ok means comfortably in date, expiring soon means the renewal window is close, expired means the date has passed, unregistered means the domain is not registered, and unknown means no authoritative expiry date could be read.
Can I monitor domain expiry inside Claude, ChatGPT or Gemini?
Yes. It ships an MCP server and a REST API, so you can connect it to Claude, ChatGPT, Gemini, Kimi, Cursor and any MCP client, then ask your assistant to watch your domain portfolio and flag anything expiring soon. See the connection guide.