# Expired & Dropped Domain Finder: SEO Drops & Auctions (`bossless/expired-domain-finder`) Actor

Find expired, dropping and auction domains from official public registry drop calendars and marketplace feeds with SEO metrics (Majestic TF, Semrush AS, backlinks), DNS and Wayback history. No login required.

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

## Pricing

from $2.50 / 1,000 domain delivereds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Expired & Dropped Domain Finder: SEO Drops & Auctions

Find expired, dropping, pending-delete, and auction domains from official public registry drop calendars and marketplace feeds enriched with SEO authority metrics (Majestic Trust Flow, Semrush Authority Score, referring domains, backlinks), live DNS resolution, and Wayback Machine archive history.

No login, accounts, or private API keys required.

***

### What data can you get?

This Actor aggregates official public feeds and extracts structured metadata for each domain:

| Field | Type | Description |
|---|---|---|
| `domain` | String | Full domain name (e.g., `techcloud.com`) |
| `tld` | String | Top-level domain extension (`com`, `net`, `org`, `se`, `nu`, etc.) |
| `source` | String | Origin feed (`godaddy_auctions` or `registry_drop_calendar`) |
| `status` | String | Domain status (`auction`, `pending_release`, or `dropped`) |
| `priceUsd` | Number | Current auction price or opening bid in USD |
| `valuationUsd` | Number | Automated appraisal valuation in USD |
| `bids` | Integer | Total number of active bids |
| `majesticTf` | Integer | Majestic Trust Flow score (0-100) |
| `majesticCf` | Integer | Majestic Citation Flow score (0-100) |
| `semrushAs` | Integer | Semrush Authority Score (0-100) |
| `backlinks` | Integer | Total backlinks count |
| `referringDomains` | Integer | Unique referring domains count |
| `auctionEndTime` | String | ISO 8601 timestamp when auction concludes |
| `releaseDate` | String | Scheduled release date from the national registry |
| `wayback` | Object | Historical snapshot count, first snapshot date, and last snapshot date |
| `dnsActive` | Boolean | Whether domain currently resolves to an A-record |
| `scrapedAt` | String | Timestamp when record was extracted |

***

### Why use this Actor?

- **100% Terms-of-Service Compliant**: Zero unauthorized web scraping or reverse-engineering of login-walled sites. Uses official public open registry calendars (Internetstiftelsen CC BY 4.0 open data) and official public marketplace inventory feeds.
- **Fast Execution**: Ingests and filters tens of thousands of domains in seconds directly in-memory.
- **Rich Authority Metrics**: Every auction domain includes pre-computed Majestic and Semrush authority metrics to identify high-value SEO redirection and domain flipping opportunities.
- **Optional Deep Verification**: Automatically checks live DNS status and queries the Internet Archive Wayback Machine CDX API to inspect historical site age and content history.

***

### How much does it cost?

This Actor uses Apify's transparent **Pay-Per-Event (PPE)** pricing model. You pay only for matching domains delivered to your dataset.

| Plan Tier | Event (`domain`) Price | Price per 1,000 Domains |
|---|---|---|
| **Free / Bronze** | $0.0035 | $3.50 |
| **Silver** | $0.0030 | $3.00 |
| **Gold / Platinum / Diamond** | $0.0025 | $2.50 |

*Note: A nominal start fee of $0.00005 applies per run, after which Apify covers the first 5 seconds of compute.*

***

### Ready-made tasks

Save time by using pre-configured task presets:

- [Auctions Ending Today with Backlinks](https://apify.com/bossless/expired-domain-finder/examples/auctions-ending-today)
- [Nordic Registry Drop Calendar (.se / .nu)](https://apify.com/bossless/expired-domain-finder/examples/registry-drops-nordic)
- [High Authority SEO Expired Domains](https://apify.com/bossless/expired-domain-finder/examples/high-authority-seo)

***

### How to use from code

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "source": "godaddy_auctions",
    "keywords": ["tech", "ai", "cloud"],
    "tlds": ["com", "net"],
    "minMajesticTf": 10,
    "maxResults": 25,
    "checkWayback": True
}

run = client.actor("bossless/expired-domain-finder").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["domain"], item.get("priceUsd"), item.get("majesticTf"))
```

#### Node.js / TypeScript (`apify-client`)

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const input = {
    source: 'all',
    keywords: ['shop', 'store'],
    maxResults: 50
};

const run = await client.actor('bossless/expired-domain-finder').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/bossless~expired-domain-finder/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "all",
    "keywords": ["ai"],
    "maxResults": 20
  }'
```

***

### Use with AI Agents (Apify MCP)

This Actor integrates with the Apify Model Context Protocol (MCP) server. AI agents can call it via:

```
Tool: apify/expired-domain-finder
Arguments: {"keywords": ["cloud", "saas"], "minMajesticTf": 10, "maxResults": 15}
```

***

### Frequently Asked Questions (FAQ)

#### Is this Actor affiliated with GoDaddy or Internetstiftelsen?

No. This Actor is an independent software tool developed by bossless. It is not affiliated with, sponsored by, or endorsed by GoDaddy Inc., Internetstiftelsen, or any domain registry. It accesses only publicly available open data and bulk export protocols made available for general public use.

#### Are these domains guaranteed to be registerable?

Auctions are open listings that can be bid on or purchased directly through the originating marketplace. Registry drop calendar domains represent domains that have entered deactivation and are scheduled to be released by the registry on the specified date unless renewed by the current owner prior to that timestamp.

#### Can I filter by domain length or exclude hyphens?

Yes. Use the `maxDomainLength`, `noHyphens`, and `noDigits` input parameters to isolate clean, brandable domain names.

# Actor input Schema

## `source` (type: `string`):

Where to source domains from: 'all', 'godaddy_auctions' (ending today/tomorrow), or 'registry_drops' (official .se/.nu ccTLD drop calendars).

## `keywords` (type: `array`):

Filter domains containing any of these keywords (case-insensitive substring match). Leave empty for all.

## `tlds` (type: `array`):

Filter by extension (e.g., 'com', 'net', 'org', 'info', 'se', 'nu'). Leave empty for all available.

## `minMajesticTf` (type: `integer`):

Minimum Majestic Trust Flow score (0-100). Available on auction domains.

## `minSemrushAs` (type: `integer`):

Minimum Semrush Authority Score (0-100). Available on auction domains.

## `maxPrice` (type: `number`):

Filter out auction domains with current price or starting bid above this amount.

## `maxDomainLength` (type: `integer`):

Maximum character length of the base domain name (excluding TLD).

## `noHyphens` (type: `boolean`):

Only return domains that do not contain hyphens ('-').

## `noDigits` (type: `boolean`):

Only return domains that do not contain numbers (0-9).

## `maxResults` (type: `integer`):

Maximum number of domains to return in this run.

## `checkWayback` (type: `boolean`):

Check Wayback Machine CDX API for historical snapshot counts and first/last active dates.

## `checkDns` (type: `boolean`):

Check if the domain currently has active DNS A-records (resolving or parked).

## `godaddyFeed` (type: `string`):

Which GoDaddy bulk feed to inspect when source is auctions or all.

## Actor input object example

```json
{
  "source": "godaddy_auctions",
  "keywords": [
    "tech",
    "app",
    "cloud",
    "shop"
  ],
  "tlds": [
    "com",
    "net",
    "org"
  ],
  "noHyphens": false,
  "noDigits": false,
  "maxResults": 10,
  "checkWayback": false,
  "checkDns": false,
  "godaddyFeed": "ending_today"
}
```

# 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 = {
    "source": "godaddy_auctions",
    "keywords": [
        "tech",
        "app",
        "cloud",
        "shop"
    ],
    "tlds": [
        "com",
        "net",
        "org"
    ],
    "maxResults": 10,
    "checkWayback": false,
    "checkDns": false,
    "godaddyFeed": "ending_today"
};

// Run the Actor and wait for it to finish
const run = await client.actor("bossless/expired-domain-finder").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 = {
    "source": "godaddy_auctions",
    "keywords": [
        "tech",
        "app",
        "cloud",
        "shop",
    ],
    "tlds": [
        "com",
        "net",
        "org",
    ],
    "maxResults": 10,
    "checkWayback": False,
    "checkDns": False,
    "godaddyFeed": "ending_today",
}

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

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

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

```

## CLI example

```bash
echo '{
  "source": "godaddy_auctions",
  "keywords": [
    "tech",
    "app",
    "cloud",
    "shop"
  ],
  "tlds": [
    "com",
    "net",
    "org"
  ],
  "maxResults": 10,
  "checkWayback": false,
  "checkDns": false,
  "godaddyFeed": "ending_today"
}' |
apify call bossless/expired-domain-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bossless/expired-domain-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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