← Prototypes

Prototype

Domain Portfolio Check

A WHOIS lookup tool for IP diligence and brand portfolio review. You paste in or upload a list of domains, and the tool queries each registry, normalises the responses into a single table, and gives each domain a status based on how close it is to expiry. The output exports to CSV or Excel. The tool is deterministic and does not call any LLMs.

Input
A pasted or uploaded list of domains
Output
Status table, exported to CSV or Excel
Interfaces
Browser app and command line over the same core
Built
2026

Why I built it

Companies accumulate domains over time — the main site, typo variants, defensive registrations, country-code versions, and whatever arrived with an acquisition. In the context of an M&A transaction, someone has to run diligence on these domains to determine what is held, through whom, and whether anything is close to lapsing. This is often done with manual WHOIS lookups across various registries. Doing a manual domain lookup for a hundred or so domains could easily take several hours. This tool does that work in minutes, with literally only seconds of human effort required.

How it works

The user pastes a list of domains into the browser interface, or uploads a text or CSV file. The tool parses these inputs, using regular expressions to ensure the domains are accurate before sending them for lookup.

The lookups then run concurrently in a thread pool. Registries rate-limit bulk querying, so the concurrency is configurable, and the default is set low enough to be comfortable across a few hundred domains. A failure on one domain does not stop the run.

The underlying WHOIS library tends to return messy output. For the same conceptual field, a datetime, a list of datetimes, a bare string in one of several formats, or nothing at all, could all be returned depending on which registry answered. The tool passes every field through a coercion layer to standardize the output.

Each result is then reduced to a single status: OK, expiring within a configurable window, expired, no expiry date published, or lookup failed. Several country-code registries do not publish expiry over WHOIS at all, so these are left blank, whereas a failed lookup is worth retrying.

Output

The results table colours each row by status, and the same colouring carries into the Excel export. Below is an example run over seven domains.

The results table, with each row colour-coded by status and domains flagged as expiring
A live run. Two domains fall inside the 90-day renewal window.
DomainRegistrant OrganizationRegistrar CreatedExpiresDaysStatus
anthropic.comNot presentMarkMonitor Inc. 2001-10-022033-10-022583OK
openai.comNot presentMarkMonitor Inc. 2007-01-192029-01-19866OK
wikipedia.orgNot presentMarkMonitor Inc. 2001-01-132027-01-13129OK
linkedin.comLinkedIn CorporationMarkMonitor, Inc. 2002-11-022026-11-0257Expiring
canada.caShared Services CanadaAuthentic Web Inc. 2002-11-252026-10-1640Expiring
bbc.co.ukNot presentNot present Not presentNot present—Lookup failed

How it was built

Built in Python with the help of Claude Code. Source is not public, but I am happy to walk through it.