# Expired Domain Screener — Availability, History, TM Risk (`prometheusagency/expired-domain-screener`) Actor

Screen domain lists before you buy: live registry availability and drop stage (RDAP), Wayback history and age, brandability score and famous-trademark risk signals. Plus a daily new-registration brand watch.

- **URL**: https://apify.com/prometheusagency/expired-domain-screener.md
- **Developed by:** [Prometheus Agency](https://apify.com/prometheusagency) (community)
- **Categories:** SEO tools, Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Expired Domain Screener — Availability, History & Trademark Risk

Screen **expired domain lists before you buy** — in one run, for every domain you paste in:

- ✅ **Live availability from the registry itself** (RDAP — the authoritative source, not a cached WHOIS): available, registered, or **in the drop cycle** (`pendingDelete` = drops in days, `redemptionPeriod` = ~30 days).
- 🕰️ **Website history from the Wayback Machine**: first year seen, last year seen, years archived — spot **aged domains** with real history vs. fresh names.
- ⚖️ **Trademark-risk signals** most tools skip: exact famous-mark matches, marks hidden inside the name (`google-cloud-support`), leetspeak (`g00gle`) and one-letter typosquats (`spotifi`). **95% of UDRP disputes against famous marks are lost by the domain holder** — filter these out *before* wasting money.
- ⭐ **Brandability score (0-100)**: length, pronounceability, real dictionary words, hyphen/digit penalties, TLD strength.
- 🏁 **One clear verdict per domain**: `STRONG_PICK`, `AVAILABLE`, `WATCH_DROP`, `AVOID_TRADEMARK`, `TAKEN`, `CHECK_MANUALLY`.

Plus a second mode for brand owners:

- 🚨 **New-registration brand watch** (`nrdWatch`): scans **yesterday's newly registered domains** (full daily zone feed) for your brand keywords and flags likely phishing/squatting registrations — with registrar and trademark-risk notes. Run it on a daily schedule and get alerts the morning after someone registers `your-brand-login.com`.

### Who uses this

- **Domain investors / flippers**: filter auction and drop lists down to clean, brandable, UDRP-safe picks.
- **SEO agencies**: find aged domains with long archive history for authority projects.
- **Brand protection / in-house legal**: daily watch on new registrations that touch your marks.
- **Startups**: sanity-check a naming shortlist (availability + trademark landmines) in seconds.

### Input example (screen mode)

```json
{
    "mode": "screen",
    "domains": ["greenleafbakerystudio.com", "spotifi.com", "google-cloud-support.net"],
    "includeHistory": true
}
```

### Output example

```json
{
    "domain": "spotifi.com",
    "verdict": "AVOID_TRADEMARK",
    "availability": "AVAILABLE",
    "trademarkRisk": "REVIEW",
    "trademarkNote": "one edit away from famous mark \"spotify\" (typosquat signal)",
    "brandabilityScore": 68,
    "historyFirstYear": 2011,
    "historyYearsArchived": 7,
    "reasons": "Trademark caution: one edit away from famous mark \"spotify\" (typosquat signal). | Strong brandable (68/100). | Web history since 2011 (7+ snapshots, last seen 2019)."
}
```

### Why this one (honest comparison)

Most "expired domain" actors scrape a single third-party website (fragile, breaks often — check their reviews). This screener talks to the **authoritative public sources directly** (registry RDAP, Wayback Machine CDX, daily zone-file feed) — no login, no API keys, no scraping war — and adds the **trademark pre-check nobody else does**.

### Notes & fair use

- Results are screening signals, **not legal advice**. Before paying real money for a domain, confirm trademarks with a professional search (USPTO/EUIPO/WIPO).
- Default input runs a demo list that shows every verdict type in ~30 seconds.
- Pay per result — you only pay for domains actually screened (failed lookups are marked and still count as screened results; zero matches in watch mode = zero result charges).

# Actor input Schema

## `mode` (type: `string`):

"screen" analyses a list of domains you provide (availability, drop stage, history, brandability, trademark risk). "nrdWatch" scans yesterday's newly registered domains for your brand keywords (brand-abuse watch).

## `domains` (type: `array`):

Domain names to screen (one per line), e.g. from an expired-domain list, an auction export or your own shortlist. Used in "screen" mode. Leave the default to see a demo of every verdict type.

## `watchKeywords` (type: `array`):

Your brand/product names (min 3 letters each). In "nrdWatch" mode the actor flags every domain registered yesterday that contains one of them — catches phishing and squatting early. Example: \["acme", "acmepay"].

## `includeHistory` (type: `boolean`):

Look up each domain's archived history (first/last year seen, years archived) in the Wayback Machine. Adds ~1s per domain; useful for valuing aged domains.

## `maxDomains` (type: `integer`):

Safety cap for "screen" mode (1-1000).

## `maxWatchResults` (type: `integer`):

Safety cap for "nrdWatch" mode results (1-500).

## Actor input object example

```json
{
  "mode": "screen",
  "domains": [
    "greenleafbakerystudio.com",
    "quantumleapanalytics.io",
    "oldcityphotoarchive.org",
    "nimbusdatatools.com",
    "google-cloud-support.net",
    "spotifi.com",
    "freshmintlabs.dev",
    "harborlightconsulting.com"
  ],
  "watchKeywords": [],
  "includeHistory": true,
  "maxDomains": 100,
  "maxWatchResults": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "domains": [
        "greenleafbakerystudio.com",
        "quantumleapanalytics.io",
        "oldcityphotoarchive.org",
        "nimbusdatatools.com",
        "google-cloud-support.net",
        "spotifi.com",
        "freshmintlabs.dev",
        "harborlightconsulting.com"
    ],
    "watchKeywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("prometheusagency/expired-domain-screener").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "domains": [
        "greenleafbakerystudio.com",
        "quantumleapanalytics.io",
        "oldcityphotoarchive.org",
        "nimbusdatatools.com",
        "google-cloud-support.net",
        "spotifi.com",
        "freshmintlabs.dev",
        "harborlightconsulting.com",
    ],
    "watchKeywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("prometheusagency/expired-domain-screener").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "domains": [
    "greenleafbakerystudio.com",
    "quantumleapanalytics.io",
    "oldcityphotoarchive.org",
    "nimbusdatatools.com",
    "google-cloud-support.net",
    "spotifi.com",
    "freshmintlabs.dev",
    "harborlightconsulting.com"
  ],
  "watchKeywords": []
}' |
apify call prometheusagency/expired-domain-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=prometheusagency/expired-domain-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/U9qTcBFCB3cyd68sf/builds/DVfX6HBL6y1dxIvem/openapi.json
