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.
| Domain | Registrant Organization | Registrar | Created | Expires | Days | Status |
|---|---|---|---|---|---|---|
| anthropic.com | Not present | MarkMonitor Inc. | 2001-10-02 | 2033-10-02 | 2583 | OK |
| openai.com | Not present | MarkMonitor Inc. | 2007-01-19 | 2029-01-19 | 866 | OK |
| wikipedia.org | Not present | MarkMonitor Inc. | 2001-01-13 | 2027-01-13 | 129 | OK |
| linkedin.com | LinkedIn Corporation | MarkMonitor, Inc. | 2002-11-02 | 2026-11-02 | 57 | Expiring |
| canada.ca | Shared Services Canada | Authentic Web Inc. | 2002-11-25 | 2026-10-16 | 40 | Expiring |
| bbc.co.uk | Not present | Not present | Not present | Not 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.