# Ahrefs Traffic Checker & API: Bulk Website & Page Traffic (`s_actors/ahrefs-traffic-checker`) Actor

Check Ahrefs organic traffic for many websites, folders or single pages: traffic value, top pages, top countries, top keywords and history, by country. Adds DR and competitors for domains and tracks traffic changes between runs. Works on the free Apify plan.

- **URL**: https://apify.com/s_actors/ahrefs-traffic-checker.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** SEO tools, Marketing, AI
- **Stats:** 3 total users, 2 monthly users, 50.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 targets

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

### Ahrefs Traffic Checker & API: Bulk Website & Page Traffic

Check **Ahrefs organic traffic** for **many websites, folders or single pages in one run**: monthly search visits, **traffic value**, **top pages**, **top countries**, **top keywords** with positions and a monthly history. Pick the **country** to see the top pages and keywords there. Whole websites also get **Domain Rating, keyword count, competitors and 12 months of traffic**. Turn on the **tracker** to see **how traffic changed since the last run** and which new pages and keywords appeared.

```json
{ "targets": ["ahrefs.com", "https://ahrefs.com/blog/", "https://backlinko.com/seo-checklist"] }
```

No Ahrefs account, no API key, no captcha tokens, no browser setup on your side. **Works on the free Apify plan.** Use it as a bulk **Ahrefs website traffic checker**, a **page traffic checker** for content audits, or an **Ahrefs API** alternative for competitor research, link prospecting and SEO reports.

#### What you get

Real example, 17 October 2026:

| target | mode | organic traffic | traffic value | top page or keyword | DR |
|---|---|---|---|---|---|
| ahrefs.com | whole website | 3,615,040 | $5,198,192 | /backlink-checker: 956,111 visits | 91 |
| https://ahrefs.com/blog/ | folder (prefix) | 140,218 | $301,309 | /blog/google-advanced-search-operators/: 10,932 | |
| https://ahrefs.com/blog/ | exact page | 11,377 | $41,431 | "ahrefs", position 1 | |
| https://backlinko.com/seo-checklist | exact page | 1,052 | $1,518 | "seo basics checklist", position 2 | |
| danluu.com | whole website | 916 | $385 | /keyboard-latency/: 215 | |

| Field | Description |
|---|---|
| `target`, `input`, `mode` | Checked domain or URL, what you entered, and how Ahrefs counted it: `subdomains`, `domain`, `prefix`, `exact` |
| `organicTraffic`, `organicTrafficChange` | Estimated monthly organic search visits (latest month) and change vs the previous month |
| `organicTrafficMonthlyAvg` | Average monthly traffic over the last 6 months |
| `trafficValueUsd` | What that traffic would cost in Google Ads per month, USD |
| `topPages` | Top 5 pages by traffic: URL, visits, share % (in the chosen country) |
| `topCountries` | Top 5 countries by share of traffic |
| `topKeywords` | Top 5 keywords: position, search volume (in the chosen country) |
| `trafficHistory` | Monthly organic traffic, last 6 months |
| `country` | Country of top pages and keywords, empty = worldwide |
| `domainRating`, `organicKeywords`, `trafficRank`, `siteTitle` | For whole websites in the Ahrefs Top index: DR, keyword count, rank by traffic, site name |
| `countryTraffic` | Exact monthly visits per country with the previous month (index) |
| `competitors` | Top competing websites: traffic, change, pages (index) |
| `trafficHistory12Months` | 12 months of traffic and traffic value (index) |
| `source` | `ahrefs_live` (live check), `ahrefs_live+top` (plus index data), `ahrefs_top` (index only) |
| `dataMonth`, `checkedAt` | Month of the Ahrefs data, time of the run |
| Tracker fields | `previousOrganicTraffic`, `organicTrafficChangeSinceLastRun`, `organicTrafficChangePercent`, `previousTrafficValueUsd`, `newTopPages`, `newTopKeywords`, `isNew`, `changed`, `lastCheckedAt` |

#### Website, folder or page

| Target mode | Checks | Example |
|---|---|---|
| Auto (default) | Domains and homepages as the whole website, URLs with a path as that exact page | `ahrefs.com`, `https://backlinko.com/seo-checklist` |
| Whole website with subdomains | Everything on the domain, like Ahrefs shows by default | `ahrefs.com` |
| Domain only | The domain without its subdomains | `ahrefs.com` without `docs.ahrefs.com` |
| URL prefix | A folder or section with all its pages | `https://ahrefs.com/blog/` |
| Exact URL | One page | `https://ahrefs.com/blog/seo-basics/` |

#### How it works

| Step | What happens |
|---|---|
| 1. Live check | Every target is checked **live in Ahrefs' own free Traffic Checker** with the target mode and country you chose. The Actor passes its human check itself, so you pay nothing extra for captcha solving |
| 2. Index data | Whole websites are also looked up in **Ahrefs Top**, Ahrefs' public index of websites: DR, keyword count, exact traffic per country, competitors and 12 months of history, at no extra charge |
| 3. Tracker | With **Track changes** on, every target's traffic, top pages and top keywords are remembered under the tracker name and compared on the next run |

For long lists of popular domains set **Live check** to *Only for websites missing from the free index*: indexed websites then come from the index alone (no top pages), with no live check charge, about 8 domains a second.

#### Why this Actor

| | This Actor |
|---|---|
| Page and folder traffic | Yes: exact URL, URL prefix, domain or whole website, per line |
| Top pages, countries, keywords | Yes, in one row, and by country |
| Free Apify plan | Yes: captcha solving is built in, not a paid third-party service |
| Bulk | Up to 5,000 targets a run; URLs, www. and duplicates cleaned |
| Changes since the last run | Yes: traffic change, new top pages and keywords, "only changed" mode |
| Failed checks | Free: you pay only for targets with data |

#### Track traffic every month

1. Put your sites, competitors' sites or your most important pages into **Websites, folders or pages**.
2. Turn on **Track changes between runs** and give the list a **Tracker name** (e.g. `competitors`).
3. Schedule the Actor (Console → Schedules) weekly or monthly. Turn on **Return only changed targets** to pay the target charge only for targets whose traffic, top pages or keywords moved.

The **Changes since last run** view shows the old and new traffic, the change in % and new top pages and keywords.

#### Pricing

Pay per event:

| Event | Free / Starter | Scale | Business |
|---|---|---|---|
| Target (one row with data) | $0.00499 | $0.00449 | $0.00399 |
| Live check (one per target; not charged for index-only websites) | $0.006 | $0.006 | $0.006 |
| Run start (per GB of memory) | $0.003 | $0.003 | $0.003 |

Examples on the Free plan, default 2 GB memory:

| Run | Cost |
|---|---|
| 100 websites or pages, live | 100 × ($0.00499 + $0.006) = ~$1.10 |
| 1,000 popular domains, index only | ~$5.00 |
| Monthly tracker, 20 pages | ~$0.23 a run |

Targets with no data, invalid entries and failed live checks are free. Set a maximum cost per run in Console and the Actor stops at it.

#### Speed and memory

Live checks run in a browser: 1 at a time with the default 2 GB (about 15-40 seconds each), 2 with 3 GB, 4 with 4 GB of memory (about 3x faster for long lists, same cost per check). Index lookups run 8 at a time.

#### Other Ahrefs tools

| Actor | What it does |
| --- | --- |
| [Ahrefs DR Checker & API](https://apify.com/s_actors/ahrefs-dr-checker) | Bulk Domain Rating, referring domains, organic traffic and traffic value for thousands of domains, 12-month history, DR and traffic change tracker |
| [Ahrefs Backlink Checker & API](https://apify.com/s_actors/ahrefs-backlink-checker) | Top backlinks with anchors and linking DR, total backlinks and referring domains for many domains or exact pages, new backlinks tracker |
| [Ahrefs Keyword Generator & API](https://apify.com/s_actors/ahrefs-keyword-generator) | Keyword ideas and questions with volume and difficulty for many seeds, exact KD, search volume and SERP for keyword lists, new ideas tracker |

#### FAQ

**How accurate is Ahrefs traffic?** It is Ahrefs' estimate of organic search visits from the keywords a site ranks for, the same number Ahrefs shows in its Traffic Checker and Site Explorer. It does not include direct, social or paid traffic. Use it to compare sites and pages and to follow trends.

**Why do the live and index numbers differ?** The live check shows the latest month from the Traffic Checker; the index shows the month's snapshot from Ahrefs Top. `trafficValueUsd` of a live check is the monthly average of the last 6 months.

**What does the country do?** Top pages and top keywords come from Google in that country and their traffic is the traffic from that country. Total traffic, history and the country split stay worldwide, as in Ahrefs' tool.

**Is this the official Ahrefs API?** No. The official Ahrefs API needs a paid Ahrefs plan with API units. This Actor reads the same public numbers Ahrefs shows on its free pages, for any number of targets, without an Ahrefs account.

**Why is a page empty?** Ahrefs counts a page by its exact URL: `semrush.com/blog/` has no data, `https://www.semrush.com/blog/` has. Such rows come back with a `note` and no target charge; paste the URL as it opens in your browser.

**What if a live check fails?** The target comes back with an `error` and is not charged. Run it again later.

#### Use with the API and AI agents

Call the Actor from the [Apify API](https://docs.apify.com/api/v2), Python or JavaScript clients, Make, Zapier, n8n, or as a tool for AI agents through the [Apify MCP server](https://mcp.apify.com). Input is one JSON object, output is one JSON row per target.

# Actor input Schema

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

One domain or URL per line. With "Target mode: auto" a domain or homepage is checked as the whole website, a URL with a path as that exact page. Duplicates are checked once. Up to 5,000 per run.

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

What Ahrefs counts for each line, like the mode switch in Ahrefs Site Explorer. "URL prefix" gives the traffic of a whole folder or section, "Exact URL" of one page.

## `country` (type: `string`):

Top pages and top keywords from Google in this country (their traffic is the traffic from that country). Total traffic, history and the country split stay worldwide.

## `liveCheck` (type: `string`):

Every target is checked live in Ahrefs' own free Traffic Checker (the "Live check" charge). With "Only for websites missing from the free index", popular whole websites come from the Ahrefs Top index instead: traffic, value, countries, keywords and history without top pages, and no "Live check" charge. Folders and pages are always checked live.

## `includeIndexData` (type: `boolean`):

Whole websites found in the Ahrefs Top index also get Domain Rating, keyword count, traffic rank, exact traffic per country, top competing websites and 12 months of traffic and traffic value. No extra charge.

## `trackChanges` (type: `boolean`):

Remember each target's traffic, top pages and top keywords and add the change since the previous run with the same tracker name, plus new top pages and keywords. Schedule the Actor weekly or monthly to watch your sites, competitors or content.

## `onlyChanged` (type: `boolean`):

With tracking on: return (and pay the target charge for) only targets whose traffic, top pages or top keywords changed since the previous run, plus new targets.

## `monitorName` (type: `string`):

Separate trackers for separate lists, e.g. "my-sites" and "competitors".

## `includeHistory` (type: `boolean`):

Monthly organic traffic for the last 6 months (live check) and 12 months with traffic value (index, whole websites).

## `debugLog` (type: `boolean`):

Log every request retry.

## Actor input object example

```json
{
  "targets": [
    "ahrefs.com",
    "https://ahrefs.com/blog/",
    "https://backlinko.com/seo-checklist"
  ],
  "mode": "auto",
  "country": "all",
  "liveCheck": "always",
  "includeIndexData": true,
  "trackChanges": false,
  "onlyChanged": false,
  "monitorName": "default",
  "includeHistory": true,
  "debugLog": false
}
```

# Actor output Schema

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

Organic traffic, traffic value, top pages, countries and keywords.

## `tracker` (type: `string`):

Traffic change, new top pages and keywords since the previous run (tracking on).

## `all` (type: `string`):

Every field: monthly history, exact traffic per country, competitors.

# 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": [
        "ahrefs.com",
        "https://ahrefs.com/blog/",
        "https://backlinko.com/seo-checklist"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/ahrefs-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 = { "targets": [
        "ahrefs.com",
        "https://ahrefs.com/blog/",
        "https://backlinko.com/seo-checklist",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("s_actors/ahrefs-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 '{
  "targets": [
    "ahrefs.com",
    "https://ahrefs.com/blog/",
    "https://backlinko.com/seo-checklist"
  ]
}' |
apify call s_actors/ahrefs-traffic-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/ahrefs-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/E1JBwJ2O7OZ8hV9de/builds/qlXXvNQ6ojyASXLdG/openapi.json
