# Moz Scraper (`maximedupre/moz-scraper`) Actor

Scrape public Moz domain analysis for domains and URLs. Get Domain Authority, Page Authority, spam score, linking root domains, ranking keywords, competitors, and questions.

- **URL**: https://apify.com/maximedupre/moz-scraper.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Marketing, Developer tools
- **Stats:** 7 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 checked 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Scraper for domain authority data

Moz Scraper extracts public [Moz domain analysis](https://moz.com/domain-analysis/example.com) metrics for the domains you submit. Paste domains, website URLs, or Moz domain analysis URLs, and the Actor saves one clean result per domain with Domain Authority, Page Authority, spam score, linking root domains, ranking keywords, top pages, linking domains, keyword tables, competitors, questions, and public trend data when Moz shows it.

Use this Moz scraper for SEO audits, competitor research, lead scoring, link-building prospect checks, website due diligence, dashboards, and repeat monitoring. The dataset works with Apify exports, API workflows, schedules, webhooks, and integrations.

No Moz login, cookies, API key, or Moz Pro account is required from you. For a small first run, keep the prefilled targets and inspect the output before adding a larger domain list.

### ✅ What this Actor does

- Accepts domains such as `wikipedia.org`, full URLs such as `https://github.com/features`, and Moz domain analysis URLs.
- Normalizes each accepted target to a canonical domain.
- Scrapes public Moz domain analysis pages.
- Saves one dataset item per successfully analyzed domain.
- Returns Domain Authority, Page Authority, spam score, linking root domains, ranking keyword counts, top pages, top linking domains, keyword groups, search competitors, questions, and public chart data when Moz exposes it.
- Pushes accepted rows as they are scraped, so results appear during the run.
- Skips domains that do not expose public Moz metrics and continues with the rest of your list.

This Actor is focused on public Moz domain analysis data. It does not scrape logged-in Moz dashboards, Moz Pro reports, private projects, paid API data, full backlink URL lists, SERP result pages, or keyword search-volume databases.

### 📊 Data you can extract

Each dataset item is one successful Moz domain analysis result. Rows can include:

- `domain` - canonical domain analyzed on Moz
- `matchedTargets` - submitted targets that resolved to this domain
- `domainAuthority` - Moz Domain Authority when visible
- `pageAuthority` - Page Authority from the strongest visible page
- `spamScore` - Moz spam score percentage when visible
- `linkingRootDomains` - unique linking root domains shown by Moz
- `rankingKeywords` - ranking keyword count shown by Moz
- `topPages` - visible pages with Page Authority values
- `topLinkingDomains` - linking domains with Domain Authority values
- `keywordsByEstimatedClicks` - visible keywords sorted by estimated clicks
- `topRankingKeywords` - visible keywords where the domain ranks highly
- `brandedKeywords` - visible branded keywords and volumes
- `topSearchCompetitors` - competing domains and Moz visibility values
- `topQuestions` - related questions and relevance values
- `linkingDomainHistory` - discovered and lost linking-domain trend points
- `keywordRankingDistribution` - ranking keyword buckets
- `missingFields` - metric groups Moz did not expose for this domain

Some metrics can be `null` or missing because Moz does not show every public field for every domain.

### 🚀 How to run it

1. Open the Input tab.
2. Add one domain, website URL, or Moz domain analysis URL per line in `Websites or domains`.
3. Run the Actor.
4. Open the dataset to view the Moz SEO metrics.

You can export the dataset as JSON, CSV, Excel, XML, RSS, or HTML. You can also consume the same rows through the Apify API, schedule repeat runs, or connect the Actor to webhooks and integrations.

### ✍️ Input example

```json
{
	"targets": [
		"openai.com",
		"https://github.com",
		"microsoft.com"
	]
}
````

Use domains when you have a clean list. Use full URLs when your source data already contains website links. Use Moz domain analysis URLs when you copied targets from Moz.

### 🧾 Output example

```json
{
	"domain": "example.com",
	"matchedTargets": [
		"example.com"
	],
	"domainAuthority": 93,
	"pageAuthority": 85,
	"spamScore": 47,
	"linkingRootDomains": 771500,
	"rankingKeywords": 2800,
	"topPages": [
		{
			"pageUrl": "example.com/",
			"pageAuthority": 85
		}
	],
	"topLinkingDomains": [
		{
			"domain": "www.google.com",
			"domainAuthority": 100
		}
	],
	"topSearchCompetitors": [
		{
			"domain": "www.facebook.com",
			"domainAuthority": 96,
			"visibility": 4.26
		}
	],
	"topQuestions": [
		{
			"question": "What is example.com used for?",
			"relevance": 15.04
		}
	],
	"linkingDomainHistory": [
		{
			"label": "04/12",
			"discovered": 4157,
			"lost": -550
		}
	],
	"keywordRankingDistribution": [
		{
			"range": "#1-3",
			"keywords": 19
		}
	],
	"missingFields": []
}
```

The exact nested arrays depend on what Moz exposes publicly for each domain.

### 💳 Pricing

This Actor uses pay-per-event pricing. You are charged once for each saved domain analysis result. Domains that cannot be analyzed publicly are skipped and do not create a result row.

### ⚠️ Limits and caveats

- Moz may not show public domain analysis data for every submitted domain.
- Metrics are only as fresh and complete as the public Moz page shown during the run.
- Page Authority comes from the strongest visible page row when Moz exposes it.
- The Actor does not use your Moz account, cookies, Moz Pro access, or a user-provided API key.
- The Actor does not promise full backlink lists, private campaign data, paid keyword reports, exact freshness, or historical coverage for every domain.

### ❓ FAQ

#### 🔐 Do I need a Moz account?

No. The Actor uses public Moz domain analysis pages and does not ask for Moz credentials, cookies, or API keys.

#### 🌐 Can I submit full URLs?

Yes. You can submit domains, website URLs, or Moz domain analysis URLs. The Actor normalizes each accepted target to a domain before checking Moz.

#### ⚠️ Why did a domain not appear in the dataset?

Some domains do not expose public Moz domain analysis metrics. The Actor logs the skip and continues with the remaining targets, so your dataset stays focused on usable results.

#### 🔌 Is this the official Moz API?

No. This is an Apify Actor that extracts public Moz domain analysis pages. It does not use or replace the official Moz API.

### 📝 Changelog

- 1.0: Updated output to focused Moz domain metrics, lowered per-domain pricing, and refreshed default examples.
- 0.1: Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~moz-scraper/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Other actors

- [Ahrefs Free Website Stats Scraper ↗](https://apify.com/maximedupre/ahrefs-free-website-stats-scraper) - Check public Ahrefs website stats for domains and URLs.
- [SEMrush Free Website Stats Scraper ↗](https://apify.com/maximedupre/semrush-free-website-stats-scraper) - Export public SEMrush authority, traffic, and backlink metrics.
- [Seobility SEO Checker ↗](https://apify.com/maximedupre/seobility-seo-checker) - Run public SEO checks for websites and page URLs.
- [Website URL Crawler ↗](https://apify.com/maximedupre/website-url-crawler) - Build rendered website link maps for SEO audits and migrations.
- [Sitemap Sniffer ↗](https://apify.com/maximedupre/sitemap-sniffer) - Find sitemap files from domains, robots.txt, and direct sitemap URLs.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

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

Enter one domain, website URL, or Moz domain analysis URL per line, such as wikipedia.org, https://github.com, or https://moz.com/domain-analysis/openai.com.

## Actor input object example

```json
{
  "targets": [
    "https://moz.com/domain-analysis/reuters.com",
    "nytimes.com",
    "kubernetes.io",
    "theguardian.com"
  ]
}
```

# Actor output Schema

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

Public Moz authority, linking domain, keyword, competitor, and question metrics by domain.

# 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 = {
    "targets": [
        "https://moz.com/domain-analysis/reuters.com",
        "nytimes.com",
        "kubernetes.io",
        "theguardian.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/moz-scraper").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 = { "targets": [
        "https://moz.com/domain-analysis/reuters.com",
        "nytimes.com",
        "kubernetes.io",
        "theguardian.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/moz-scraper").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 '{
  "targets": [
    "https://moz.com/domain-analysis/reuters.com",
    "nytimes.com",
    "kubernetes.io",
    "theguardian.com"
  ]
}' |
apify call maximedupre/moz-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Moz Scraper",
        "description": "Scrape public Moz domain analysis for domains and URLs. Get Domain Authority, Page Authority, spam score, linking root domains, ranking keywords, competitors, and questions.",
        "version": "1.0",
        "x-build-id": "8hu0ufX3sYk1etPle"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maximedupre~moz-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maximedupre-moz-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/maximedupre~moz-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maximedupre-moz-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/maximedupre~moz-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maximedupre-moz-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "targets"
                ],
                "properties": {
                    "targets": {
                        "title": "Websites or domains",
                        "type": "array",
                        "description": "Enter one domain, website URL, or Moz domain analysis URL per line, such as wikipedia.org, https://github.com, or https://moz.com/domain-analysis/openai.com.",
                        "items": {
                            "type": "string",
                            "minLength": 1
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
