# Moz Alternative — Domain Authority, Spam Score & Backlinks (`khadinakbar/moz-alternative`) Actor

Return Moz-style domain authority, spam score, linking domains, backlinks, anchors, and top pages. Use for link-profile research without a Moz login. Not for keyword volume. One row per domain, backlink, referring domain, anchor, or page. Charged $0.01/row plus $0.04/API request.

- **URL**: https://apify.com/khadinakbar/moz-alternative.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** SEO tools, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 authority records

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/actors/running/actors-in-store.md#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

## Moz Alternative — Domain Authority, Spam Score & Backlinks

Turn a domain or a page URL into Moz-style **domain authority**, **spam score**, linking root domains, backlinks, anchors, and top pages. You do not need a Moz login or cookie. Built for SEO teams and agents that want structured link-profile research on Apify with API, schedule, and MCP access.

### Best fit for this Actor

- Score a competitor domain's authority rank, spam score, backlink count, and referring domains in one row.
- Bulk-check a short list of domains when you need comparable 0–100 ranks before outreach.
- Export linking root domains, anchor text, or top pages after the overview looks worth a deeper look.

When you already have phrases and only need search volume plus CPC, start with [Keyword Search Volume API](https://apify.com/khadinakbar/keyword-search-volume-api) after this Actor is public in your workflow. After you pick linking pages to inspect on the live SERP, continue with [Google SERP All-in-One Scraper](https://apify.com/khadinakbar/google-serp-all-in-one-scraper).

### Practical scenario

An SEO lead pastes `moz.com`, keeps `mode` on `domain_authority`, and runs the Actor. The dataset returns one row with `domainRank`, `spamScore`, `backlinks`, and `referringDomains`. They then switch `mode` to `referring_domains` with `maxResults` 5 to inspect the strongest linking hosts before outreach. Unknown or empty matches finish `SUCCEEDED` with `VALID_EMPTY` and no `authority-record` charge.

### Quick start input

```json
{
  "mode": "domain_authority",
  "target": "moz.com",
  "maxResults": 5
}
```

`target` accepts a bare domain or a full URL. `bulk_authority` uses `targets` for several hostnames in one request.

### Input reference

| Field | Type | What it controls |
|---|---|---|
| `mode` | enum | `domain_authority`, `bulk_authority`, `backlinks`, `referring_domains`, `anchors`, or `top_pages`. Default `domain_authority`. |
| `target` | string | Domain or URL for single-target modes. Example: `moz.com`. |
| `targets` | array | Domain list for `bulk_authority`. Example: `["moz.com", "ahrefs.com"]`. |
| `maxResults` | integer | Row cap 1–100. Default 5. Domain authority still writes at most one row. |
| `includeSubdomains` | boolean | Include subdomain link data. Default true. |
| `excludeInternalBacklinks` | boolean | Drop internal subdomain links from summaries. Default true. |

Owner API credentials are already configured for Store runs. This Actor does not accept user API keys.

### What data you receive

One dataset item is one domain, backlink, referring domain, anchor, or top-page row.

```json
{
  "mode": "domain_authority",
  "target": "moz.com",
  "domain": "moz.com",
  "domainRank": 72,
  "spamScore": 4,
  "backlinks": 41000,
  "referringDomains": 8900,
  "source": "moz_alternative/domain_authority",
  "status": "OK",
  "fetchedAt": "2026-08-22T00:00:00.000Z"
}
```

| Field | Meaning |
|---|---|
| `domainRank` / `pageRank` | 0–100 Moz-style authority scores from the upstream index, not Moz Domain Authority |
| `spamScore` | Spam-risk score for the target or linking host |
| `backlinks` / `referringDomains` | Live backlink and linking-root-domain counts |
| `source` | Mode provenance label for the row |

`OUTPUT` and `RUN_SUMMARY` in the default key-value store hold `outcome`, `itemsPushed`, `chargedEventCounts`, and `providerCostUsd`. Download the dataset as JSON, CSV, Excel, or HTML.

### Use through the API

```bash
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~moz-alternative/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"domain_authority","target":"moz.com","maxResults":5}'
```

### Use with AI agents through Apify MCP

> Run a Moz-style domain authority report for moz.com. Return domainRank, spamScore, backlinks, referringDomains, source, and fetchedAt. Read OUTPUT.outcome and itemsPushed. Do not treat domainRank as Moz Domain Authority.

Connect via <https://mcp.apify.com>. Cost signal: about `$0.05` per successful SEO API request plus `$0.01` per saved row.

### Connect the workflow

- After you score a domain, then use [Google SERP All-in-One Scraper](https://apify.com/khadinakbar/google-serp-all-in-one-scraper) to inspect how that host appears in live search results.
- When a referring URL looks broken, continue with [Broken Link Checker](https://apify.com/khadinakbar/broken-link-checker) to verify the source page.
- For AI-overview citations after the link profile is clear, continue with [Google AI Overviews Scraper](https://apify.com/khadinakbar/google-ai-overviews-scraper).

### Pricing

This Actor uses Pay per event plus Apify platform usage. The live Pricing tab is the current source of truth for billing details.

- `apify-actor-start`: $0.00005 per run
- `seo-api-request`: **$0.05** per successful upstream SEO API task
- `authority-record`: **$0.012** per persisted row

A domain-authority prefill is one API task plus one row. Empty matches have no `authority-record` charge. Provider cost is recorded in `RUN_SUMMARY.providerCostUsd`.

### Best results

- Use a real hostname such as `moz.com` rather than a Moz app URL.
- Keep `maxResults` at 5 while you confirm the output shape, then raise it for exports.
- Treat rank and spam as independent index scores, not licensed Moz DA/PA.
- A valid query with no match finishes `SUCCEEDED` with `VALID_EMPTY`.

### Builder's note

I found that Store Moz scrapers depend on public Moz pages that change and often ask buyers to bring a Moz Pro seat. Routing this SKU through owner-managed upstream SEO APIs keeps the Moz-shaped modes (authority, bulk DA-style checks, linking domains, anchors, top pages) without claiming Moz Domain Authority, scraping Moz, or asking buyers for API keys. Domain authority is one provider task into one billed row so a first run stays forecastable.

### Legal and responsible use

Use this Actor with public SEO research you are authorized to run. Metrics are independent of Moz, Inc. Follow applicable law and the upstream data provider terms, and keep the output in your own compliance workflow.

Issues and feature requests: use the Actor Issues tab on Apify.

# Actor input Schema

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

Which Moz-style report to run. domain\_authority returns one domain or page row with rank, spam score, backlinks, and linking domains. bulk\_authority scores many domains in one call. backlinks lists referring URLs. referring\_domains lists linking root domains. anchors groups by anchor text. top\_pages lists pages with the most backlinks. Default domain\_authority. This is NOT a Moz login or API key field.

## `target` (type: `string`):

Website to analyze for every mode except bulk lists. Accepts moz.com or https://www.moz.com. Protocol and www are stripped. A path keeps page-level rank. Prefill moz.com. Not a keyword and not a Moz app URL.

## `targets` (type: `array`):

Domain list for bulk\_authority. Example: \["moz.com", "ahrefs.com"]. Duplicates collapse. Capped by maxResults. If omitted, the single target field is used. Ignored in other modes. This is NOT a keyword list.

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

Maximum dataset rows to write (1-100). Defaults to 5 so quality tests and agent calls stay cheap. domain\_authority still writes at most one row. Caps bulk domain lists and backlink, referring-domain, anchor, and top-page exports.

## `includeSubdomains` (type: `boolean`):

When true, authority and link reports include subdomain data. Defaults to true. Does not crawl the live website.

## `excludeInternalBacklinks` (type: `boolean`):

When true, summary and referring-domain reports drop internal subdomain links. Defaults to true. Ignored by top\_pages mode.

## Actor input object example

```json
{
  "mode": "domain_authority",
  "target": "moz.com",
  "targets": [
    "moz.com",
    "ahrefs.com"
  ],
  "maxResults": 5,
  "includeSubdomains": true,
  "excludeInternalBacklinks": true
}
```

# Actor output Schema

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

Domain-authority, backlink, referring-domain, anchor, or top-page rows.

## `summary` (type: `string`):

Compact OUTPUT record with outcome, itemsPushed, charges, and warnings.

## `runSummary` (type: `string`):

Detailed RUN\_SUMMARY including providerCostUsd and request counts.

# 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 = {
    "mode": "domain_authority",
    "target": "moz.com",
    "targets": [
        "moz.com",
        "ahrefs.com"
    ],
    "maxResults": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/moz-alternative").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 = {
    "mode": "domain_authority",
    "target": "moz.com",
    "targets": [
        "moz.com",
        "ahrefs.com",
    ],
    "maxResults": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/moz-alternative").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 '{
  "mode": "domain_authority",
  "target": "moz.com",
  "targets": [
    "moz.com",
    "ahrefs.com"
  ],
  "maxResults": 5
}' |
apify call khadinakbar/moz-alternative --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,khadinakbar/moz-alternative"
        }
    }
}

```

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/JEjzN8jxNq3yxCAdr/builds/9beUlIezFHu2viuae/openapi.json
