# Bulk Domain Authority Checker & API: DA, DR & Spam Score (`plainrows/domain-authority-checker`) Actor

SEO domain authority checker and API, bulk DA checker MCP tool: ≤ 10,000 domains/run: domain rank 0-100, SEO spam score, backlinks, referring domains, nofollow. Moz domain authority alternative, Ahrefs DR alternative, website authority checker, domain rating checker. Pay per domain plus lookup fees.

- **URL**: https://apify.com/plainrows/domain-authority-checker.md
- **Developed by:** [PlainRows](https://apify.com/plainrows) (community)
- **Categories:** SEO tools, AI, MCP servers
- **Features:** Limited permissions
- **Stats:** 4 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 domains

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

## Bulk Domain Authority Checker & API: DA, Spam Score & Backlinks

Check the **domain authority** of up to **10,000 domains per run**: domain rank (0-100), spam score, backlinks count, referring domains and nofollow counts, one clean row per domain. A fast bulk DA checker and backlink checker for link building, SEO audits and domain research.

It reads a commercial backlink index through an API instead of scraping Moz or Ahrefs pages: **results in seconds, no login, no captchas, no blocked runs.** **You pay per domain with data, plus small lookup fees**: duplicates and input mistakes are free, and unknown domains only cost the $0.0002 domain lookup fee.

### Typical uses

- **Link building and outreach**: sort a prospect list by authority and drop spammy sites before you pitch them ([free n8n template](https://nadaho.github.io/plainrows/templates/link-prospects-authority-sheets.json): Google Sheets list in, keep / check / skip verdict out).
- **Guest post and PR vetting**: check the referring domains and spam score of sites selling links or placements.
- **Expired domain and domain investing research**: screen thousands of domains in one run.
- **Competitor and market mapping**: compare the backlink strength of every site in a niche.
- **Automations and AI agents**: enrich a Google Sheet, CRM or agent workflow with authority metrics.

### What you get for each domain

| Field | Description |
|---|---|
| `domain`, `input` | The domain checked (lowercase, without `https://`, path or `www.`) and the value you entered |
| `domainRank` | DataForSEO domain rank on a 0-100 scale, computed from the domain's backlink profile |
| `spamScore` | DataForSEO spam score, 0-100 (higher = more spam signals in the link profile) |
| `backlinks` | Number of live backlinks pointing to the domain |
| `referringDomains`, `referringDomainsNofollow` | Domains linking to it, and how many of them link with nofollow |
| `referringMainDomains`, `referringMainDomainsNofollow` | Same, with subdomains grouped under their main domain |
| `found` | `false` when the index has no data for the domain (all metrics empty or 0; only the domain lookup fee applies) |
| `observedAt` | When the data was retrieved (UTC) |

**About "domain authority":** `domainRank` is DataForSEO's own rank, built in the same spirit as Moz Domain Authority (DA) or Ahrefs Domain Rating (DR), but it is a **different metric**: values will not match Moz DA or Ahrefs DR exactly. Use it to compare and sort domains, not to quote a Moz or Ahrefs score.

Missing values are `null`, never guessed. A metric group you turned off is `null` too.

### Input

```json
{
  "domains": ["apify.com", "https://www.forbes.com/sites/", "blog.hubspot.com"],
  "includeSpamScore": true,
  "includeBacklinks": true,
  "includeReferringDomains": true
}
```

- **domains**: up to 10,000 per run. Domains, subdomains or full URLs (reduced to the host, `www.` removed). Duplicates are removed; invalid lines are listed in the run summary.
- Domains are checked in **batches of 1,000**.
- **Metric groups**: domain rank is always included. `includeSpamScore` is on by default; `includeBacklinks` and `includeReferringDomains` are off by default: turn them on to add backlink and referring-domain counts (each group adds one batch fee per 1,000 domains, see Pricing).
- In each batch, the rows with data are stored first, then the free `found: false` rows.

### Output example

Real row from a run on 2026-10-07 (input `https://www.semrush.com/blog/`, all four metric groups on):

```json
{
  "domain": "semrush.com",
  "input": "https://www.semrush.com/blog/",
  "found": true,
  "domainRank": 82,
  "spamScore": 9,
  "backlinks": 20567322,
  "referringDomains": 136233,
  "referringDomainsNofollow": 25209,
  "referringMainDomains": 125776,
  "referringMainDomainsNofollow": 20857,
  "observedAt": "2026-10-07T13:14:19.787Z",
  "schemaVersion": "1.0"
}
```

### Pricing

Pay per use, no subscription. **Example on the Starter plan: 1,000 domains with the default metrics (rank and spam score) cost $1.77** ($1.50 for 1,000 domains with data at $0.0015, plus 2 batch lookups at $0.037 and 1,000 domain lookups at $0.0002); 100 domains cost $0.24; turning on backlinks and referring domains adds $0.074 per 1,000 domains. Domains without data only pay the $0.0002 lookup fee. See the **Pricing** tab for the other plans. Three events:

- **Domain with data** (`domain-result`): one per domain returned with data.
- **Batch lookup** (`batch-lookup`): one per metric group for each batch of up to 1,000 domains: $0.04 (FREE) / $0.037 (BRONZE) / $0.036 (SILVER) / $0.035 (GOLD+). The data source charges a fixed fee per request, so this fee is shown openly instead of being hidden in the per-domain price. With the default groups (rank and spam score), a run of 1 to 1,000 domains has 2 batch lookups; with all four groups it has 4, and 8 for 1,001 to 2,000 domains, and so on.
- **Domain lookup** (`domain-lookup`): $0.0002 per domain sent to the backlink index, with or without data.

The more domains per run, the cheaper each domain: on large lists the batch fee is spread over up to 1,000 domains. For a handful of domains, turn off the metric groups you do not need.

Duplicates and input mistakes are not billed; domains with no data only pay the domain lookup fee. The run checks the batch fees and rows against the maximum cost you set before each request, and never spends more.

**Free Apify plan:** up to 50 domains per run, so you can check the output. A paid Apify plan removes this limit.

### Track your domains every month

Keep an eye on your own site, your competitors or your link prospects:

1. Run the Actor once with your list, then click **Save as a new task** (your input is kept).
2. In the task, click **Schedule** and pick the same day each month.
3. Send each run to your tool: the task's **Integrations** tab (Google Sheets, Slack, a webhook…), or the n8n / Make Apify nodes.
   Compare `domainRank` and `spamScore` (and `referringDomains`, if you turn it on) from one month to the next to see who gains or loses authority (see **Pricing** for the cost of each run).

### Use it from code, automations or AI agents

**API (one call, results returned directly):**

```bash
curl -X POST "https://api.apify.com/v2/acts/plainrows~domain-authority-checker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["apify.com", "forbes.com", "bbc.co.uk"]}'
```

**n8n, Make, Zapier:** use the Apify integration, pick `plainrows/domain-authority-checker`, and map the dataset items to Google Sheets, Airtable, HubSpot or your database.

**AI agents (MCP):** add `https://mcp.apify.com?tools=plainrows/domain-authority-checker` to Claude, Cursor or any MCP client. The agent gets a typed tool and pays per result.

### What this is not

- **Not Moz DA, Ahrefs DR or Semrush Authority Score.** It is DataForSEO's domain rank and spam score, from DataForSEO's own backlink index. Not affiliated with Moz, Ahrefs, Semrush or Google.
- No list of individual backlinks or anchors: it returns totals per domain.
- No traffic or keyword data.
- Page-level (URL) authority is not supported: every input is reduced to its domain.

### Run summary

Each run stores a summary in the key-value store (`OUTPUT`): domains submitted and checked, domains with and without data, batch lookups charged, duplicates and invalid inputs, and anything skipped because of the free-plan or budget limit.

### FAQ

**How do I check the domain authority of many websites at once?**
Paste up to 10,000 domains or URLs, one per line, and run: one row per domain with domain rank (0-100), spam score, backlinks and referring domains.

**Is this Moz DA or Ahrefs DR?**
No. It is DataForSEO's domain rank and spam score, from its own backlink index, on a 0-100 scale. Values will not match Moz DA or Ahrefs DR; use them to compare and sort domains.

**Can I lower the price for a large list?**
Yes: turn off the metric groups you do not need (`includeSpamScore`, `includeBacklinks`, `includeReferringDomains`) to save their batch fees. Domain rank is always included.

**Does it check the authority of a single page?**
No: every input is reduced to its domain. For links to a specific page, use [Backlink Checker](https://apify.com/plainrows/backlink-checker).

**Do I need an Ahrefs, Moz or Semrush account?**
No: you pay per domain with data, with no subscription.

### For AI agents

- **Use when:** You need an authority score (domain rank 0-100), spam score or backlink and referring-domain counts for a list of domains, for example to sort link-building prospects or audit a list of sites.
- **Do not use for:** Listing the individual backlinks or referring domains of a site (use plainrows/backlink-checker), or traffic and ranked keywords of a domain (use plainrows/domain-seo-overview). The score is a DataForSEO domain rank, not Moz DA or Ahrefs DR themselves.
- **Input JSON (minimal):** `{"domains": ["apify.com"]}`
- **Output fields:** `domain`, `input`, `found`, `domainRank`, `spamScore`, `backlinks`, `referringDomains`, `referringDomainsNofollow`, `referringMainDomains`, `referringMainDomainsNofollow`, `observedAt`, `schemaVersion`
- **Price per result:** $0.0015 per `domain-result` on the Starter plan (other plans: see the pricing table)
- **Median run time:** 5 s (successful runs of the last 30 days)
- **Success rate (30 days):** 100% of 28 public runs

### More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

- **SEO and keywords:** [Keyword Search Volume, CPC & Difficulty](https://apify.com/plainrows/keyword-search-volume) · [Keyword Planner Alternative (Bulk Search Volume & CPC)](https://apify.com/plainrows/keyword-planner-alternative) · [Google Keyword Planner API (Google Ads Search Volume & CPC)](https://apify.com/plainrows/google-keyword-planner-api) · [Google Autocomplete & People Also Ask](https://apify.com/plainrows/google-autocomplete-questions) · [Google Trends Explorer](https://apify.com/plainrows/google-trends-explorer) · [Google Trends Keyword Discovery (Rising & Related)](https://apify.com/plainrows/google-trends-keyword-discovery) · [Website Organic Traffic & Top Keywords](https://apify.com/plainrows/domain-seo-overview) · [Competitor Keywords API (Ranked Keywords)](https://apify.com/plainrows/competitor-keywords-api) · [Bulk Website Traffic Checker](https://apify.com/plainrows/website-traffic-checker) · [PPC Competitor Keywords (SpyFu Alternative)](https://apify.com/plainrows/ppc-competitor-keywords) · [Backlink Checker](https://apify.com/plainrows/backlink-checker) · [Backlink API (Referring Domains & Backlinks Data)](https://apify.com/plainrows/backlink-api) · [Broken Link Checker](https://apify.com/plainrows/broken-link-checker) · [SEO Audit API (On-Page SEO Checker)](https://apify.com/plainrows/seo-audit-api) · [AI Search Visibility Tracker (ChatGPT, Gemini, AI Mode)](https://apify.com/plainrows/ai-search-brand-visibility) · [AI Overview Tracker (Google AI Overview Citations)](https://apify.com/plainrows/ai-overview-tracker) · [Perplexity Search API (Answers & Citations)](https://apify.com/plainrows/perplexity-search-api) · [ChatGPT Search Scraper (Answers & Citations)](https://apify.com/plainrows/chatgpt-search-scraper) · [Google AI Mode API (Answers & Citations)](https://apify.com/plainrows/google-ai-mode-api) · [Gemini Search Scraper (Answers & Citations)](https://apify.com/plainrows/gemini-search-scraper) · [AI Citations Finder (LLM Mentions in ChatGPT & AI Overviews)](https://apify.com/plainrows/ai-citations-finder) · [Keyword Rank Checker (Google SERP Position)](https://apify.com/plainrows/keyword-rank-checker) · [Google Search API (SERP Scraper & Web Results)](https://apify.com/plainrows/google-search-api) · [Bing Search API (Bing SERP & Web Results)](https://apify.com/plainrows/bing-search-api)
- **Leads and companies:** [Google Maps Scraper](https://apify.com/plainrows/google-maps-businesses) · [Google Maps Email Extractor](https://apify.com/plainrows/google-maps-email-extractor) · [Google Maps Businesses Without Website](https://apify.com/plainrows/google-maps-no-website-leads) · [Yellow Pages Australia Scraper](https://apify.com/plainrows/yellowpages-au-scraper) · [Website Technology Checker](https://apify.com/plainrows/website-tech-stack) · [Website Email Extractor](https://apify.com/plainrows/website-email-extractor) · [Contact Details Scraper (Emails, Phones, Socials)](https://apify.com/plainrows/contact-details-scraper) · [ATS Jobs Scraper (Workday, Greenhouse, Lever, Ashby)](https://apify.com/plainrows/ats-job-postings) · [Workday Jobs Scraper](https://apify.com/plainrows/workday-jobs-scraper) · [Greenhouse Jobs Scraper](https://apify.com/plainrows/greenhouse-jobs-scraper) · [Lever Jobs Scraper](https://apify.com/plainrows/lever-jobs-scraper) · [Ashby Jobs Scraper](https://apify.com/plainrows/ashby-jobs-scraper) · [Google Jobs Scraper](https://apify.com/plainrows/google-jobs-scraper) · [Reed.co.uk Jobs Scraper (UK)](https://apify.com/plainrows/reed-jobs-scraper) · [jobs.ch & jobup.ch Jobs Scraper (Switzerland)](https://apify.com/plainrows/jobs-ch-scraper) · [Arbeitsagentur Jobs Scraper (Germany)](https://apify.com/plainrows/arbeitsagentur-jobs-scraper) · [Gupy Jobs Scraper (Brazil)](https://apify.com/plainrows/gupy-jobs-scraper) · [Catho Jobs Scraper (Brazil)](https://apify.com/plainrows/catho-jobs-scraper) · [Vagas.com.br Jobs Scraper (Brazil)](https://apify.com/plainrows/vagas-jobs-scraper) · [Jobs.cz Scraper (Czech Republic)](https://apify.com/plainrows/jobs-cz-scraper) · [Remote Jobs Scraper (Himalayas, RemoteOK, Jobicy)](https://apify.com/plainrows/remote-jobs-aggregator) · [Google Ads Scraper (Transparency Center)](https://apify.com/plainrows/google-ads-transparency) · [Company Registry Lookup (SIRENE, LEI, Brreg)](https://apify.com/plainrows/company-registry-lookup) · [Public Tenders Search (EU TED & UK)](https://apify.com/plainrows/public-tenders-search)
- **E-commerce and travel:** [Amazon Product Search Scraper](https://apify.com/plainrows/amazon-product-search) · [Amazon Keyword Research (Search Volume & Reverse ASIN)](https://apify.com/plainrows/amazon-keyword-research) · [Google Shopping Prices Scraper](https://apify.com/plainrows/google-shopping-prices) · [Google Hotels Prices Scraper](https://apify.com/plainrows/google-hotels-prices) · [Google Hotels Scraper](https://apify.com/plainrows/google-hotels-scraper) · [Tripadvisor Reviews Scraper](https://apify.com/plainrows/tripadvisor-reviews) · [Trustpilot Reviews Scraper](https://apify.com/plainrows/trustpilot-reviews)
- **Marketplaces and classifieds:** [Property Finder Scraper (UAE)](https://apify.com/plainrows/propertyfinder-scraper) · [Redfin Scraper (US Homes for Sale)](https://apify.com/plainrows/redfin-scraper) · [Otomoto Scraper (Polish Car Listings)](https://apify.com/plainrows/otomoto-scraper) · [Otodom Scraper (Poland Property)](https://apify.com/plainrows/otodom-scraper) · [Imovirtual Scraper (Portugal Property)](https://apify.com/plainrows/imovirtual-scraper) · [Standvirtual Scraper (Portugal Cars)](https://apify.com/plainrows/standvirtual-scraper) · [Immoweb Scraper (Belgium Property)](https://apify.com/plainrows/immoweb-scraper) · [Blocket Scraper (Sweden)](https://apify.com/plainrows/blocket-scraper) · [FINN.no Scraper (Norway)](https://apify.com/plainrows/finn-scraper) · [coches.net Scraper (Spain Cars)](https://apify.com/plainrows/coches-net-scraper) · [2dehands Scraper (Belgium)](https://apify.com/plainrows/2dehands-scraper) · [Storia Scraper (Romania Property)](https://apify.com/plainrows/storia-scraper) · [Autovit Scraper (Romania Cars)](https://apify.com/plainrows/autovit-scraper) · [FINN.no Car Scraper (Norway Cars)](https://apify.com/plainrows/finn-cars-scraper) · [DBA Scraper (Denmark)](https://apify.com/plainrows/dba-scraper) · [Tori.fi Scraper (Finland)](https://apify.com/plainrows/tori-scraper)
- **Content and media:** [Google News Scraper](https://apify.com/plainrows/google-news-scraper) · [YouTube Search Scraper](https://apify.com/plainrows/youtube-search-scraper) · [YouTube Search API (JSON)](https://apify.com/plainrows/youtube-search-api) · [YouTube Comments Scraper](https://apify.com/plainrows/youtube-comments-scraper) · [Google Images Scraper](https://apify.com/plainrows/google-images-scraper) · [Website Screenshot API](https://apify.com/plainrows/website-screenshot) · [PDF to Markdown Converter (PDF to Text for AI & RAG)](https://apify.com/plainrows/pdf-to-markdown) · [Google Maps Reviews Scraper](https://apify.com/plainrows/google-maps-reviews) · [Google Reviews Scraper](https://apify.com/plainrows/google-reviews-scraper) · [App Store & Google Play Reviews Scraper](https://apify.com/plainrows/app-reviews-scraper) · [App Store & Google Play App Details Scraper](https://apify.com/plainrows/app-details-scraper) · [Google Play Reviews Scraper](https://apify.com/plainrows/google-play-reviews-scraper) · [App Store Reviews Scraper](https://apify.com/plainrows/app-store-reviews-scraper)

**Compared with other APIs:** [Ahrefs API alternative](https://nadaho.github.io/plainrows/ahrefs-api-alternative/) · [Moz API alternative](https://nadaho.github.io/plainrows/moz-api-alternative/)

### Support

Missing a metric or found a bug? Open an issue on this page. Issues are read and answered.

# Actor input Schema

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

Domains to check, one per line: "example.com", "blog.example.com" or a full URL (it is reduced to its domain; "www." is removed). Duplicates are removed. Up to 10,000 domains per run, checked in batches of 1,000. Free Apify plan: only the first 50 domains of each run are checked (paid plans: no limit). Example: \["apify.com", "bbc.co.uk"].

## `includeSpamScore` (type: `boolean`):

Add the spam score (0-100). Each metric group adds one batch lookup per 1,000 domains; see Pricing. Example: true.

## `includeBacklinks` (type: `boolean`):

Add the total number of live backlinks (off by default). Adds one batch lookup per 1,000 domains. Example: true to get the backlinks count.

## `includeReferringDomains` (type: `boolean`):

Add referring domains, referring main domains and their nofollow counts (off by default). Adds one batch lookup per 1,000 domains. Example: true to get referring domains.

## Actor input object example

```json
{
  "domains": [
    "apify.com",
    "forbes.com",
    "bbc.co.uk",
    "github.com",
    "wikipedia.org"
  ],
  "includeSpamScore": true,
  "includeBacklinks": false,
  "includeReferringDomains": false
}
```

# Actor output Schema

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

No description

## `summary` (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": [
        "apify.com",
        "forbes.com",
        "bbc.co.uk",
        "github.com",
        "wikipedia.org"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("plainrows/domain-authority-checker").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": [
        "apify.com",
        "forbes.com",
        "bbc.co.uk",
        "github.com",
        "wikipedia.org",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("plainrows/domain-authority-checker").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 '{
  "domains": [
    "apify.com",
    "forbes.com",
    "bbc.co.uk",
    "github.com",
    "wikipedia.org"
  ]
}' |
apify call plainrows/domain-authority-checker --silent --output-dataset

```

## MCP server setup

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

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/BjPPrFFL7ILmaNUAV/builds/kblEvTbSgI1Npyhvg/openapi.json
