Ahrefs Free Website Stats Scraper
Pricing
from $0.03 / 1,000 item extracteds
Ahrefs Free Website Stats Scraper
Scrape public AhrefsTop domain stats: traffic, Domain Rating, backlinks, countries, keywords, and competitors for SEO monitoring.
Pricing
from $0.03 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
3
Monthly active users
8 days ago
Last modified
Categories
Share
Scrape public AhrefsTop website stats for any list of domains. The actor returns domain-level SEO signals such as organic traffic, traffic value, Domain Rating, referring domains, backlink-related data, top countries, top keywords, competitors, and similarly ranked websites.
What does Ahrefs Free Website Stats Scraper do?
Ahrefs Free Website Stats Scraper turns public website stats pages into structured datasets.
It accepts domains such as apify.com, shopify.com, or https://ahrefstop.com/websites/stripe.com.
For every input domain it follows the public Ahrefs redirect and extracts visible metrics from the free AhrefsTop page.
Use it when you need repeatable SEO snapshots without manually opening each domain page.
Who is it for?
SEO agencies use it to monitor client and competitor domains.
Link builders use it to qualify outreach prospects.
Affiliate teams use it to benchmark niche competitors.
Content teams use it to find domains with growing organic visibility.
Competitive-intelligence operators use it to enrich company lists with traffic and backlink signals.
Why use this actor?
- Bulk scrape public domain stats from AhrefsTop.
- Normalize domains and URLs automatically.
- Export data as JSON, CSV, Excel, XML, or HTML through Apify datasets.
- Run on a schedule for recurring monitoring.
- Integrate results into Google Sheets, CRMs, dashboards, and lead-scoring workflows.
Data you can extract
| Field | Description |
|---|---|
domain | Normalized input domain |
sourceUrl | Final AhrefsTop page URL |
organicTraffic | Latest visible organic traffic number |
trafficValue | Latest visible traffic value number |
domainRating | Visible Domain Rating value |
referringDomains | Latest linking websites / referring-domain trend value when exposed |
backlinks | Visible backlink value when exposed |
topCountries | Country traffic split objects |
topKeywords | Keyword, volume, traffic, and position rows |
topCompetitors | Competing websites shown on the page |
similarlyRankedWebsites | Similar traffic-rank domains |
trafficHistory | Dated organic-traffic and traffic-value points exposed by the public chart |
referringDomainsHistory | Dated referring-domain points exposed by the public chart |
scrapedAt | ISO timestamp for the scrape |
Every run also writes an OUTPUT key-value-store record with requested, processed, succeeded, and failed counts plus structured details for each failed input. Failed inputs are not added to the paid dataset and are not charged as items.
How much does it cost to scrape Ahrefs website stats?
This actor uses pay-per-event pricing.
There is a small start charge for each run and a per-domain charge for every saved dataset item.
The final price shown in Apify billing depends on the live pricing tier on the actor page.
Use a small maxItems value for your first run, then scale after checking the output.
How to use Ahrefs Free Website Stats Scraper
- Open the actor on Apify.
- Add domains or AhrefsTop URLs to
domains. - Keep
maxConcurrencymodest for stable scraping. - Click Start.
- Download the dataset or connect it to your automation.
Input example
{"domains": ["apify.com","stripe.com","https://ahrefstop.com/websites/shopify.com"],"maxItems": 3,"maxConcurrency": 3,"proxyConfiguration": { "useApifyProxy": false }}
Output example
{"domain": "apify.com","sourceUrl": "https://ahrefstop.com/websites/apify.com","organicTraffic": 355203,"trafficValue": 169333,"domainRating": 80,"topCountries": [{ "countryCode": "US", "traffic": 79721, "trafficShare": 0.224 }],"trafficHistory": [{ "date": "2026-06-01", "organicTraffic": 342000, "trafficValue": 164200 },{ "date": "2026-07-01", "organicTraffic": 355203, "trafficValue": 169333 }],"referringDomainsHistory": [{ "date": "2026-06-01", "referringDomains": 12800 },{ "date": "2026-07-01", "referringDomains": 13120 }],"scrapedAt": "2026-07-04T00:00:00.000Z"}
Input fields
Domains
Add domains, hostnames, Ahrefs URLs, or AhrefsTop URLs.
The actor removes www. and normalizes URLs to the public website stats endpoint.
Maximum domains to process
maxItems is a safety cap. It prevents accidental large runs.
Maximum concurrency
maxConcurrency controls how many pages are requested at once.
Use a lower value for very large batches or repeated monitoring jobs.
Include raw HTML
Turn this on only when debugging. Raw HTML increases dataset size.
Proxy configuration
The public pages usually work without a proxy. If your run is blocked, enable Apify Proxy.
Output fields explained
organicTraffic and trafficValue come from the latest visible chart values embedded in the page.
domainRating is parsed from the backlink profile section.
topCountries comes from embedded page data.
topKeywords, topCompetitors, and similarlyRankedWebsites are parsed from visible tables. Competitor rows use pages, while similarly ranked rows use rank; the other field is null.
trafficHistory aligns each public chart date with organic traffic and traffic value. referringDomainsHistory contains the public referring-domain trend. Arrays are empty when a chart is unavailable.
Some locked Ahrefs metrics may be unavailable on certain pages; those fields are returned as null.
Tips for reliable runs
- Start with 3-10 domains.
- Use exact domains, not full paths, unless you are pasting AhrefsTop URLs.
- Keep concurrency between 3 and 5 for regular monitoring.
- Schedule separate runs for very large client lists.
- Use the included history arrays or store previous datasets for recurring comparisons.
- Temporary network errors, HTTP 429 responses, and server errors are retried automatically with bounded backoff.
- Inspect the
OUTPUTrecord after mixed batches to handle invalid domains and terminal HTTP failures programmatically.
SEO agency workflow
Upload a list of prospect or competitor domains.
Export the dataset to Google Sheets.
Filter by Domain Rating, traffic, and country share.
Prioritize targets with meaningful traffic and relevant keyword overlap.
Link-building workflow
Add outreach prospects to the actor.
Use Domain Rating and linking-website signals to remove weak targets.
Use top keywords to understand topical relevance before outreach.
Send qualified domains to your CRM or outreach tool.
Competitive monitoring workflow
Create a scheduled Apify task.
Run it weekly or monthly against the same competitor list.
Compare exported datasets over time.
Trigger alerts when traffic, rank, or referring-domain signals change.
Integrations
Connect the dataset to Google Sheets for analyst review.
Send results to Make or Zapier for lead scoring.
Store snapshots in BigQuery, Snowflake, or a warehouse.
Feed domains into other automation-lab SEO actors for enrichment.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/ahrefs-free-website-stats-scraper').call({domains: ['apify.com', 'stripe.com'],maxItems: 2,});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/ahrefs-free-website-stats-scraper').call(run_input={'domains': ['apify.com', 'stripe.com'],'maxItems': 2,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~ahrefs-free-website-stats-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"domains":["apify.com","stripe.com"],"maxItems":2}'
Use with AI agents via MCP
Ahrefs Free Website Stats Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Use the Actor-scoped MCP endpoint https://mcp.apify.com/?tools=automation-lab/ahrefs-free-website-stats-scraper.
Add it to Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/ahrefs-free-website-stats-scraper"
For Claude Desktop, Cursor, or VS Code, add this JSON config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/ahrefs-free-website-stats-scraper"}}}
Your assistant can then call automation-lab/ahrefs-free-website-stats-scraper.
Example prompts:
- "Use automation-lab/ahrefs-free-website-stats-scraper to scrape AhrefsTop stats for these competitor domains and summarize the strongest domains."
- "Monitor this prospect list and identify domains with high traffic and strong DR."
- "Compare traffic countries for these SaaS competitors."
Legality and ethical notes
This actor extracts publicly available page data. It is an independent tool and is not affiliated with, endorsed by, or sponsored by Ahrefs.
The actor uses deterministic HTTP extraction and does not send inputs or results to an AI provider. It keeps no external copy or cache; Apify datasets, key-value stores, and logs follow your account retention settings, and you can delete them with Apify storage controls.
You are responsible for using the output lawfully and respecting applicable terms, privacy rules, and rate limits.
Do not use the data for spam, deception, or abusive automation.
FAQ
Why are some fields null?
AhrefsTop exposes different data on different pages. Locked or unavailable metrics are returned as null.
Why did a domain fail?
The public stats page may not exist for the domain, or the target may return an error. Temporary network, rate-limit, and server failures are retried. Check the OUTPUT record for a structured validation, HTTP, network, or parsing failure and the run log for retry details.
Should I enable proxy?
Leave proxy disabled first. Enable Apify Proxy only if your environment receives blocking or repeated network errors.
How fast is the scraper?
The actor uses HTTP requests rather than a browser. Runtime depends on batch size, concurrency, target response time, and whether temporary failures require retries.
How is this different from private Ahrefs API access?
This actor extracts public AhrefsTop page data. It does not access private Ahrefs account data or paid-only API features.
Related scrapers
Limitations
The actor works with public AhrefsTop pages, not private Ahrefs account data.
It does not bypass paid Ahrefs features.
Large batches should use moderate concurrency. Public markup can change, and fields unavailable on a page remain null or use empty arrays.
A run with at least one successful domain completes and reports any partial failures in OUTPUT. A run where every selected input fails is marked failed after writing that summary.
Changelog
The latest release adds bounded retries, safe per-entry validation, traffic/value and referring-domain histories, corrected competitor/similar table mapping, and an OUTPUT run summary. See the Actor changelog for release history.
Support
If a run fails, share the run URL and the input domains so the issue can be reproduced.