# Backlinks Scraper (`radeance/backlinks-scraper`) Actor

Check for up to 15,000 backlinks per domain or URL with source & target URLs, anchor text, Moz DA/PA, Spam Score and more. Access backlink profiles, referring domains, dofollow/nofollow links & 6-month new/lost link history at scale with bulk support. Export to JSON, CSV, Excel & more.

- **URL**: https://apify.com/radeance/backlinks-scraper.md
- **Developed by:** [Radeance](https://apify.com/radeance) (community)
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.06 / 1,000 backlinks

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

## 💎 Backlinks Scraper

The **Backlinks Scraper** turns domains and page URLs into structured, export-ready backlink data. Collect **up to 15,000 backlinks per target**, inspect **source and target URLs**, **anchor text**, and **last-seen dates**, and evaluate linking domains with **Moz Domain Authority** and **Moz Spam Score** where available. Choose a **Backlinks Overview** to analyze backlink totals, referring domains, and historical trends across multiple websites in one run.

Built for backlink audits, competitor research, and SEO reporting, results are ready to use in JSON, CSV, XLSX, and other Apify-supported formats.

### ❶ Key Features

- **🔍 Comprehensive Backlink Data:**<br>
  - ✅ Find backlinks to an **entire domain** or a **specific page URL**
  - ✅ Retrieve **up to 15,000 backlinks per target**, subject to your plan and available data
  - ✅ Capture **source and target domains**, **page URLs**, **anchor text**, and **last-seen dates**

- **🖇️ Backlink & Authority Intelligence:**<br>
  - ✅ Evaluate linking domains with **Moz Domain Authority** and **Moz Spam Score** where available
  - ✅ Inspect linking-domain **backlink counts** and **referring-domain metrics** when available
  - ✅ Retrieve the target's **Moz Domain Authority** and **Moz Page Authority** in overview searches where available

- **📈 Backlink Overview & History:**<br>
  - ✅ Review **total backlinks**, **referring domains**, **referring IPs**, and **C-blocks**
  - ✅ Compare **dofollow and nofollow backlink counts** and their shares of the backlink profile
  - ✅ Track daily trends for the last 6 months with **live backlinks**, **new and lost links**, and **referring-domain changes**

- **⚡ Bulk Search & Deduplication:**<br>
  - ✅ Analyze **multiple domains or page URLs** in a single run
  - ✅ Fetch backlink sources **concurrently** and stream results as they become ready
  - ✅ Automatically removes duplicate backlinks from dataset, or use **unique modes** to keep the first accepted link per referring hostname

- **📊 Flexible Data Output:**<br>
  - ✅ Receive structured records for **individual backlinks** or a **backlink overview** per target
  - ✅ Select specific **output fields** to match your reports and integrations
  - ✅ Export results in **JSON**, **CSV**, **XLSX**, and other Apify-supported formats

### ❷ Input

#### Search Parameters

| Parameter       | Default     | Description                                                                                                                                                                                                     |
| --------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `urls`          | Required    | Bulk domains or page URLs. Duplicate normalized targets are removed.                                                                                                                                            |
| `search_type`   | `backlinks` | `backlinks` returns individual backlinks. `overview` returns one backlink profile including 6 months daily history per target.                                                                                  |
| `mode`          | `domain`    | `domain`, `unique_domain`, `page`, or `unique_page`. <br>Unique modes keep the first accepted link per referring hostname within the selected domain or page scope.                                             |
| `max_backlinks` | `5000`      | Combined maximum per target, from 1 to **15000**. Ignored for overview search.                                                                                                                                  |
| `output_fields` | `[]`        | Optional data columns. Empty returns all fields for the selected search type. Metadata (`data_captured_at`, `data_type`, `input_url`, `mode`) is always included. Fields for the other search type are omitted. |

##### For a search with individual backlinks:

```json
{
    "urls": ["zarahome.com"],
    "search_type": "backlinks",
    "mode": "domain",
    "max_backlinks": 15000
}
```

##### For an overview with backlinks history:

```json
{
    "urls": ["zarahome.com"],
    "search_type": "overview",
    "mode": "domain"
}
```

### ❸ Output

#### Backlinks Search

###### Requires: `urls` , `search_type` set to `backlinks`

###### ℹ️ This base-output sample shows selected fields from one backlink sample. The dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/backlinks-scraper/output-schema)

```json
{
    "data_captured_at": "2026-10-03T12:34:56.123456Z",
    "data_type": "backlink",
    "input_url": "zarahome.com",
    "mode": "domain",
    "source_domain": "heren.rmdplay.nl",
    "source_url": "https://heren.rmdplay.nl/",
    "target_domain": "www.zarahome.com",
    "anchor_text": "Zarahome.com",
    "target_url": "https://www.zarahome.com/",
    "last_seen": "2026-09-22",
    "metrics_available": true,
    "source_moz_domain_authority": 77,
    "source_moz_spam_score": 4
}
```

#### Overview Search

###### Requires: `urls` , `search_type` set to `overview`

###### ℹ️ This sample shows selected fields from one backlink profile. Long histories are shortened. The dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/backlinks-scraper/output-schema)

```json
{
    "data_captured_at": "2026-10-03T12:34:56.123456Z",
    "data_type": "overview",
    "input_url": "zarahome.com",
    "mode": "domain",
    "target_domain": "zarahome.com",
    "history_interval": "6m",
    "total_backlinks": 188243,
    "total_referring_domains": 16694,
    "referring_c_blocks": 4949,
    "referring_ips": 9816,
    "target_moz_domain_authority": 42,
    "target_moz_page_authority": 34,
    "dofollow_backlinks": 154793,
    "nofollow_backlinks": 33450,
    "dofollow_percent": 0.822,
    "nofollow_percent": 0.178,
    "backlinks_history": [
        {
            "date": "2026-10-03",
            "live_backlinks": 188243,
            "live_referring_domains": 16694,
            "new_dofollow_backlinks": 149,
            "new_nofollow_or_redirect_backlinks": 50,
            "lost_dofollow_backlinks": 86,
            "lost_nofollow_or_redirect_backlinks": 16,
            "new_referring_domains": 3,
            "lost_referring_domains": 5
        }
    ]
}
```

### ❹ Usage Limits

The Actor's default limits depend on your Apify plan:

| User Type | Run allowance | Unique URLs per run | Max Backlinks per target | Available search types  | Reset Period |
| --------- | ------------- | ------------------- | ------------------------ | ----------------------- | ------------ |
| **Free**  | 15 trial runs | 1                   | 5.000                    | `overview`, `backlinks` | No reset     |
| **Paid**  | Not limited   | 100                 | 15.000                   | `overview`, `backlinks` | N/A          |

#### How Limits Work

- **Free users**: The 50-run trial does not reset. Only the first unique URL(s) are processed per run.
- **Paid users**: Can process up to 100 unique URLs and request up to 15.000 backlinks per URL per run. The Actor will stop processing once the limit is reached.
- **All users**: Duplicate identifiers are removed before limits are applied. Apify usage charges and any external verification costs are separate.

### ❺ Use Cases

Use the ready-made tasks below to start with a preconfigured Backlinks Scraper workflow:

### ❻ FAQ

#### How do I get started?

Click **"Try for free"** at the top of the page and sign in to Apify. Add your domains or page URLs, choose **Backlinks** or **Overview**, as search type and start the run. You can view results in the Apify Console as they arrive and download them from the dataset as CSV, JSON and various others.

#### What is the difference between Backlinks and Overview search?

**Backlinks** returns individual links with source and target URLs, anchor text, last-seen dates, and linking-domain metrics where available. **Overview** returns one backlink profile per target, including totals, referring domains, dofollow and nofollow shares, and daily history. Choose Backlinks to inspect linking pages, or Overview to compare profiles and track trends.

#### Can I check a whole website or just one page?

Yes! Use **domain** mode to find backlinks to a domain, or **page** mode to focus on a specific URL. The **unique_domain** and **unique_page** modes use the same scopes but keep only the first accepted backlink per referring hostname. All modes remove duplicate backlinks, and results arrive as they become ready.

#### Why did I receive fewer backlinks than requested?

The **max_backlinks** setting is a maximum, so a target may return fewer records. Results depend on the links available from the sources, your selected scope, duplicate removal, source filtering, and your plan or run budget. Overview totals describe the source's broader backlink profile and may exceed the number of individual links returned.

#### What format are the results in?

Results are stored as **JSON records** in the Apify dataset. You can view them as a table and export them as **CSV**, **XLSX**, or other supported formats from the Apify Console. Use **output_fields** to select the data columns you need for your SEO reports, dashboards, or integrations. The capture timestamp, record type, input URL, and mode are always included.

### ❼ While the scraper is running

During the run, the actor will output log messages letting you know what is going on at any point. Each message always contains specific information about the process including which url / page the actor is working on.

If you provide invalid inputs to the actor, it will immediately stop with a failure state and output log messages explaining what is wrong. If you are unsure what went wrong feel free to open up an issue in the issue tab.

### ❽ Disclaimer

The **Backlinks Scraper** is not affiliated with or endorsed by any registered company or individual. The Backlinks Scraper is a third-party tool that uses publicly available data from various sources to provide insights and analysis. We are not responsible for any actions taken by users of the Backlinks Scraper, including any violations of to the terms of service of the sources.

The **Backlinks Scraper** is designed to ethically extract **only publicly available backlinks data**, and it **does not** scrape private user data such as personal email addresses or personal identifiers.

Our services are ethical and **do not extract any private user data**. They only extract **what individuals or companies chose to share publicly**. We therefore believe that our services, when used for ethical purposes by our users, are safe to use. However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. For more information you can read this [Apify blog post](https://blog.apify.com/is-web-scraping-legal/) on the legality of web scraping.

### ❾ Feedback and Support

**Your satisfaction** is **important** to us! Therefore we are constantly striving to enhance the performance of our Actors.

If you have any technical feedback or encounter any bugs with the Backlinks Scraper, please create an issue in the Actor’s Issues tab on the Apify Console.

You can also contact us directly for custom integrations or project use cases at business@radeance.com.

# Changelog

This Actor's version history is a separate document: https://apify.com/radeance/backlinks-scraper/changelog.md

# Actor input Schema

## `search_type` (type: `string`):

Backlinks retrieves individual backlinks and enriches source domains with MOZ metrics. Backlinks overview returns one target profile including backlink history and target MOZ authority metrics.

## `urls` (type: `array`):

Bulk list of domains or page URLs with a recognized public suffix. Domain modes use the hostname only. Page modes use the full validated URL.

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

**Domain**: All backlinks to a domain, including subdomains. **Unique domain**: One backlink per referring hostname to that domain, keeping the first accepted record. **Page**: Backlinks to the exact page URL. **Unique page**: One backlink per referring hostname to that exact page, keeping the first accepted record. Sources are queried concurrently and deduplicated as responses arrive. Output is not sorted by last_seen. Overview uses the corresponding domain or page scope.

## `max_backlinks` (type: `integer`):

Maximum combined, deduplicated backlinks per target, from 1 to 15,000 (default 5,000). Fewer may be available or affordable. Ignored for overview searches.

## `output_fields` (type: `array`):

Optional selection of data fields for individual backlinks or overview records. Leave empty to include every field for the selected search type. Metadata (data_captured_at, data_type, input_url, mode) is always included. Fields belonging to the other search type are omitted.

## Actor input object example

```json
{
  "search_type": "backlinks",
  "urls": [
    "openai.com"
  ],
  "mode": "domain",
  "max_backlinks": 15000,
  "output_fields": []
}
```

# Actor output Schema

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

Backlinks, or target backlink profiles including daily history, according to the selected search type.

## `run_state` (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 = {
    "urls": [
        "openai.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("radeance/backlinks-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 = { "urls": ["openai.com"] }

# Run the Actor and wait for it to finish
run = client.actor("radeance/backlinks-scraper").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 '{
  "urls": [
    "openai.com"
  ]
}' |
apify call radeance/backlinks-scraper --silent --output-dataset

```

## MCP server setup

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

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/laW9Rl7RErHQbyNNT/builds/yjflIF8mSr5WmkYPS/openapi.json
