Semrush Website Traffic Stats Scraper
Pricing
Pay per event
Semrush Website Traffic Stats Scraper
Extract public Semrush traffic stats for bulk domain lists: visits, engagement, organic and paid traffic, countries, keywords, and competitors.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract public Semrush website traffic stats for a bulk list of domains. This actor reads anonymous Semrush /website/{domain}/overview/ pages and turns visible overview metrics into structured dataset records.
Use it to compare competitors, qualify SEO prospects, enrich lead lists, and monitor market traffic signals without copying numbers by hand.
What does Semrush Website Traffic Stats Scraper do?
It fetches public Semrush website overview pages and extracts the metrics that are visible in the page HTML.
- 🌐 Total website visits
- 📈 Visit history
- 🔎 Organic and paid traffic estimates
- 🌍 Top countries and traffic share
- 🧭 Engagement metrics such as pages per visit and bounce rate
- 🏁 Similar competitors shown by Semrush
- 🔑 Top organic keywords when visible
- 🤖 AI traffic sources when Semrush exposes them publicly
Who is it for?
This scraper is designed for practical SEO and growth workflows.
- SEO agencies auditing prospect lists
- Growth teams comparing competitors
- Demand generation teams enriching accounts
- Competitive intelligence analysts building market snapshots
- Content teams prioritizing websites by search potential
- Investors and operators checking public traffic trends
Why use this actor?
Manual Semrush checks are slow when you have dozens or hundreds of domains. This actor accepts a list of domains and returns one clean record per website.
You can export the dataset to JSON, CSV, Excel, Google Sheets, or consume it through the Apify API.
What data can you extract?
| Field | Description |
|---|---|
domain | Domain that was checked |
semrushUrl | Public Semrush overview URL |
totalVisits | Estimated visits from the public overview |
pagesPerVisit | Estimated pages per visit |
averageVisitDurationSeconds | Average visit duration in seconds |
bounceRate | Estimated bounce rate |
organicVisits | Estimated organic search visits |
paidVisits | Estimated paid search visits |
topCountries | Country traffic and share breakdown |
topOrganicKeywords | Visible top keyword metrics |
competitors | Similar domains from Semrush |
aiTrafficSources | Visible AI-source traffic signals |
visitsHistory | Historical visit estimates |
searchTrafficHistory | Organic and paid trend points |
dataFound | Whether public metrics were found |
error | Extraction warning or request error |
How much does it cost to extract Semrush website traffic stats?
The actor uses pay-per-event pricing.
- A small start event is charged once per run.
- One item event is charged for each domain record saved.
- You control spend with
maxItemsand the number of domains in the input.
Start with 5-10 domains, inspect the output, then scale to larger batches.
Input
You can provide domains directly:
{"domains": ["google.com", "microsoft.com", "apple.com"],"maxItems": 10}
You can also provide Semrush overview URLs:
{"startUrls": [{ "url": "https://www.semrush.com/website/google.com/overview/" }],"maxItems": 10}
Input fields
domains
A list of domains such as example.com. Do not include login-only Semrush project URLs.
startUrls
Optional request-list input for Semrush overview URLs or normal website URLs. The actor extracts the domain from each URL.
maxItems
Maximum unique domains to process. This is a safety cap for first runs and scheduled jobs.
Output example
{"domain": "google.com","semrushUrl": "https://www.semrush.com/website/google.com/overview/","totalVisits": 101172727926,"organicVisits": 5235637014,"paidVisits": 21228492,"pagesPerVisit": 5.6419,"bounceRate": 0.3669,"topCountries": [{ "countryCode": "US", "countryName": "United States" }],"dataFound": true,"scrapedAt": "2026-07-02T00:00:00.000Z"}
How to run it
- Open the actor on Apify.
- Paste your domains into the
Domainsinput. - Set
Maximum domainsfor the run. - Start the actor.
- Download results from the dataset tab.
Tips for best results
- Use root domains like
example.cominstead of long URLs. - Keep the first run small to verify the exact fields visible for your domains.
- Some domains may have limited public Semrush data; check
dataFoundanderror. - Schedule repeat runs if you need periodic competitive snapshots.
Integrations
Use the output in common SEO workflows:
- Push high-traffic competitors into a BI dashboard.
- Enrich CRM accounts with public traffic estimates.
- Join
topCountrieswith market priority lists. - Send domains with rising organic traffic to a content research queue.
- Compare paid and organic traffic mix for acquisition planning.
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/semrush-website-traffic-stats-scraper').call({domains: ['google.com', 'microsoft.com'],maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/semrush-website-traffic-stats-scraper').call(run_input={'domains': ['google.com', 'microsoft.com'],'maxItems': 2,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~semrush-website-traffic-stats-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"domains":["google.com","microsoft.com"],"maxItems":2}'
MCP usage
Connect through Apify MCP with this tool URL:
https://mcp.apify.com/?tools=automation-lab/semrush-website-traffic-stats-scraper
Add it to Claude Code:
$claude mcp add apify-semrush-traffic "https://mcp.apify.com/?tools=automation-lab/semrush-website-traffic-stats-scraper"
Or add an MCP server JSON config:
{"mcpServers": {"apify-semrush-traffic": {"url": "https://mcp.apify.com/?tools=automation-lab/semrush-website-traffic-stats-scraper"}}}
Example prompts:
- "Use the Apify Semrush traffic scraper to analyze google.com, microsoft.com, and apple.com, then summarize organic vs paid traffic."
- "Run the MCP Semrush Website Traffic Stats Scraper for this prospect list and rank the domains by visits."
- "Compare top countries for these SaaS competitors using the Apify actor output."
Scheduling
Create a scheduled task to monitor the same domain set weekly or monthly. Export each dataset to your warehouse or spreadsheet to track trend changes over time.
Data freshness
Semrush public overview pages display Semrush's current public estimates. The actor records the dates visible in the page, such as trafficDate and organicTrafficDate, so you can understand the period behind the metrics.
Reliability notes
The actor uses HTTP requests rather than a browser. This keeps runs fast and inexpensive. If Semrush changes the public page structure, records may return dataFound: false with an explanatory error field instead of failing the whole run.
FAQ
Why is dataFound false?
The domain may not have public metrics, Semrush may have changed the page, or the request may have returned a limited page. Check httpStatus, pageTitle, and error.
Can I use Semrush account-only data?
No. This actor is for public anonymous Semrush overview pages only. It does not log in and does not use private Semrush projects.
Legality
This actor extracts public web page data. Make sure your use case complies with applicable laws, Semrush terms, and privacy requirements. Do not use the output for unlawful profiling or spam.
Related scrapers
Other automation-lab actors can complement this workflow:
- Google Search Results Scraper for SERP visibility checks
- Website Contact Finder for lead enrichment
- Website Technology Lookup actors for account qualification
- SEO audit and metadata scrapers for on-page checks
Changelog
- Initial version: public Semrush overview extraction for traffic, engagement, geography, keywords, competitors, and trend fields.
Limitations
- Metrics are Semrush estimates, not first-party analytics.
- Public pages can expose different fields for different domains.
- The actor cannot bypass private account walls.
- Very large runs should be tested gradually.
Support
If a field stops appearing, include a sample domain and run ID when requesting support. The dataFound, httpStatus, and error fields help diagnose page changes quickly.