# Domain Authority Checker: Backlinks, Website Traffic (`adyg/domain-authority-traffic-checker`) Actor

Bulk domain authority, backlinks and organic traffic for thousands of domains. Licensed DataForSEO data (not Ahrefs/Semrush/Similarweb scraping). Flat rows + optional deep report.

- **URL**: https://apify.com/adyg/domain-authority-traffic-checker.md
- **Developed by:** [Adyanth Ganesh](https://apify.com/adyg) (community)
- **Categories:** SEO tools, Marketing, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 domain results

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

## Domain Authority, Backlinks & Traffic Checker (Ahrefs / Semrush / Similarweb alternative)

**Bulk website authority, backlinks and organic traffic metrics** for thousands of domains in one run. Flat, agent-friendly rows powered by **licensed DataForSEO data** — not fragile scrapers of Ahrefs, Semrush or Similarweb.

### What you get (per domain)

| Field | Source |
| --- | --- |
| Domain rank / authority score (0–1000 or 0–100) | Backlinks API `bulk_ranks` |
| Backlinks count | `bulk_backlinks` |
| Referring domains (+ nofollow split, main domains) | `bulk_referring_domains` |
| Spam score | `bulk_spam_score` |
| New / lost backlinks & referring domains | `bulk_new_lost_*` |
| Estimated organic & paid traffic (ETV) + keyword counts | Labs `bulk_traffic_estimation` |
| Estimated traffic value (USD) | Labs `domain_rank_overview` (optional; per-domain) |
| Referring IPs / subnets, dofollow split, top countries, first seen | Backlinks `summary` (**deep report**) |
| Top backlinks, referring domains, organic keywords, competitors | Deep report mode |

**Honest caveat:** DataForSEO Rank ≠ Ahrefs Domain Rating, and traffic is a **search-based estimate** (not Similarweb total visits). Buyers who need "real DR" may still prefer scrapers; everyone else gets stable licensed bulk data.

### Modes

1. **Bulk** (default) – up to 100,000 domains, batches of 1,000. Pick metric groups.
2. **Deep report** – one domain with summary + top backlinks / referring domains / keywords / competitors.

### Metric groups (Labs-only vs Backlinks)

| Group | Needs Backlinks API? | Notes |
| --- | --- | --- |
| `traffic` | No | Labs only – works even if Backlinks is disabled on the provider account |
| `authority`, `backlinks`, `spamScore`, `newLost` | Yes | Pay-as-you-go since **1 Jul 2026** (former $100/mo Backlinks commitment removed) |
| `trafficValue` | No | Labs per-domain call – avoid on huge lists |

The Actor's daily Console prefill uses **2 domains + `traffic` only** so the smoke test stays cheap (~$0.01–0.02 DataForSEO).

### Input example

```json
{
    "domains": ["stripe.com", "shopify.com", "example.com"],
    "mode": "bulk",
    "metrics": ["traffic", "authority", "backlinks", "spamScore"],
    "location": "United States",
    "language": "English"
}
```

### Output example

```json
{
    "domain": "stripe.com",
    "mode": "bulk",
    "found": true,
    "domain_rank": 620,
    "rank_scale": "0-1000",
    "backlinks": 1250000,
    "referring_domains": 85000,
    "referring_domains_nofollow": 9200,
    "spam_score": 2,
    "organic_traffic": 1250000.5,
    "organic_keywords": 85000,
    "paid_traffic": 12000.0,
    "paid_keywords": 420,
    "traffic_value_usd": null,
    "location": "United States",
    "language": "English",
    "metrics_available": ["authority", "backlinks", "referring_domains", "spam_score", "traffic"],
    "scraped_at": "2026-10-08T15:00:00Z"
}
```

### Pricing

This Actor uses **pay-per-event** pricing.

| Event | Price |
| --- | --- |
| Domain result (`domain-result`) | **$0.005** per domain with data ($5 / 1,000) |
| Domain report (`domain-report`) | **$0.05** per deep report |
| Actor start (`actor-start`) | **$0.001** per run |

Domains with no data (`found: false`) are listed but **not charged**. Cap spend with **Maximum cost per run**; the Actor also respects `ACTOR_MAX_PAID_DATASET_ITEMS`.

### DataForSEO costs (Oct 2026)

- **Backlinks API:** $0.024 / request + $0.000036 / row. Bulk endpoints accept up to 1,000 targets. **No monthly minimum** (removed Jul 1, 2026). Account still needs a funded balance ($50 min top-up).
- **Labs (most endpoints incl. `bulk_traffic_estimation`):** $0.012 / task + $0.00012 / item.
- Docs: https://docs.dataforseo.com

### Related tools

SEO toolkit: keyword demand, AI search visibility and site technology for the same domains.

- [Keyword Search Volume (Google Keyword Planner)](https://apify.com/adyg/keyword-search-volume): search volume, CPC and keyword ideas in bulk
- [AI Search Visibility Tracker](https://apify.com/adyg/ai-search-visibility-tracker): check if ChatGPT, Perplexity, Gemini and AI Overviews mention your brand
- [Tech Stack Detector](https://apify.com/adyg/website-tech-stack-detector): see which CMS, ecommerce, analytics and CRM tools a site uses
- [Company Name to Domain](https://apify.com/adyg/company-name-to-domain): turn a list of company names into official website domains

All of these are maintained by the same developer and export flat JSON, CSV or Excel, so you can feed one tool's dataset into the next.

### FAQ

**Is this scraping Ahrefs / Semrush / Similarweb?**\
No. It uses DataForSEO's licensed Backlinks and Labs APIs.

**Do I need a Backlinks API subscription?**\
No monthly commitment. You need Backlinks endpoints enabled on a funded DataForSEO account. If only Labs traffic is selected, Backlinks is not called.

**Why don't ranks match Ahrefs DR?**\
Different indexes and formulas. Use the score relatively across domains in this dataset.

**Free Apify plan**\
Limited to 10 domains per run.

### Acceptable use

- This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Google, DataForSEO, Ahrefs, Semrush or Similarweb.
- Don't use the data to build a competing search engine, or otherwise to compete with or harm the search engines the data comes from.
- The Actor may not be used from, or for people or organizations in, Russia, Belarus, Cuba, Iran, Syria, Myanmar, North Korea, Crimea or the Russian-occupied territories of Ukraine.
- You are responsible for using the results lawfully, including privacy laws such as GDPR for any personal data they contain.

### Changelog

- **1.0** – Initial private release: bulk metrics + deep report, PPE events `domain-result` / `domain-report`.

# Actor input Schema

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

One domain or URL per line (e.g. <code>stripe.com</code>, <code>https://www.shopify.com/</code>). Domains are normalized (scheme and <code>www.</code> stripped). Page URLs are kept when they include a path. Up to 100,000; processed in batches of 1,000. Duplicates are removed.

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

<b>Bulk</b>: one flat metrics row per domain (thousands supported). <b>Deep report</b>: one domain with top backlinks, referring domains, organic keywords and competitors (charged as a report).

## `metrics` (type: `array`):

Which metrics to fetch. <b>traffic</b> uses DataForSEO Labs only (works without the Backlinks API). Authority, backlinks, spam and new/lost need the Backlinks API (pay-as-you-go, no monthly commitment as of Jul 2026). <b>trafficValue</b> is a per-domain Labs call and costs more at scale.

## `location` (type: `string`):

Country for organic/paid traffic estimates. Name or code: <code>United States</code>, <code>US</code>, <code>2840</code>.

## `language` (type: `string`):

Language name or code (<code>English</code>, <code>en</code>).

## `rankScale` (type: `string`):

Authority score scale from the Backlinks API: 0–1000 (default, closer to classic PageRank-style metrics) or 0–100.

## `topBacklinks` (type: `integer`):

How many top backlinks to include in a deep report. 0 to skip.

## `topReferringDomains` (type: `integer`):

How many top referring domains to include in a deep report. 0 to skip.

## `topKeywords` (type: `integer`):

How many top organic keywords to include in a deep report. 0 to skip.

## `topCompetitors` (type: `integer`):

How many SEO competitor domains to include in a deep report. 0 to skip.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "shopify.com"
  ],
  "mode": "bulk",
  "metrics": [
    "traffic"
  ],
  "location": "United States",
  "language": "English",
  "rankScale": "one_thousand",
  "topBacklinks": 20,
  "topReferringDomains": 20,
  "topKeywords": 20,
  "topCompetitors": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `backlinks` (type: `string`):

No description

## `traffic` (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": [
        "stripe.com",
        "shopify.com"
    ],
    "mode": "bulk",
    "metrics": [
        "traffic"
    ],
    "location": "United States",
    "language": "English"
};

// Run the Actor and wait for it to finish
const run = await client.actor("adyg/domain-authority-traffic-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": [
        "stripe.com",
        "shopify.com",
    ],
    "mode": "bulk",
    "metrics": ["traffic"],
    "location": "United States",
    "language": "English",
}

# Run the Actor and wait for it to finish
run = client.actor("adyg/domain-authority-traffic-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": [
    "stripe.com",
    "shopify.com"
  ],
  "mode": "bulk",
  "metrics": [
    "traffic"
  ],
  "location": "United States",
  "language": "English"
}' |
apify call adyg/domain-authority-traffic-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,adyg/domain-authority-traffic-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/KIHAlNYymvPA8HhIQ/builds/DLTWiM2mUwf4RcsAg/openapi.json
