# Similarweb Scraper: Website Traffic, Rank & Traffic Sources (`scrape-lads/similarweb-scraper`) Actor

Get Similarweb data for any list of websites: monthly visits, ranks, bounce rate, visit duration, traffic sources, top countries, top keywords and AI chatbot traffic (ChatGPT, Claude, Gemini). Bulk and fast. Pay only for domains with data.

- **URL**: https://apify.com/scrape-lads/similarweb-scraper.md
- **Developed by:** [Scrape Lads](https://apify.com/scrape-lads) (community)
- **Categories:** SEO tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.64 / 1,000 domain with data

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

### What does Similarweb Scraper do?

**Similarweb Scraper gets website traffic data for any list of domains: monthly visits, global, country and category rank, bounce rate, pages per visit, visit duration, traffic sources, top countries, top keywords and AI chatbot traffic.** Paste domains or URLs and get one clean row per website, ready for a spreadsheet, a database or an AI agent.

It works like a **Similarweb API without a Similarweb account**. There's no login and no API key to manage. You get fast bulk runs (25 domains in about 15 seconds) and you **pay only for domains that have data**.

Run it in Apify Console, call it from the **API**, **schedule** it, or connect it to Make, Zapier, n8n, Google Sheets or your own code.

### What data can you extract from Similarweb?

| 🌐 Domain | 🏆 Global rank | 🗺️ Country rank |
|---|---|---|
| 🗂️ Category rank | 👀 Monthly visits | 📈 Visits change |
| ↩️ Bounce rate | 📄 Pages per visit | ⏱️ Time on site |
| 🚪 Direct traffic | 🔍 Organic and paid search | 📱 Social traffic |
| 🔗 Referrals | 🤖 AI traffic (ChatGPT, Gemini, Claude, Perplexity, Copilot) | 💬 Top AI prompts |
| 🌍 Top countries | 🔑 Top keywords | 🆚 Similar sites |

### Why use this Similarweb scraper as a website traffic checker?

- **AI traffic, broken down by assistant.** See how much of a site's traffic comes from AI chatbots, with named columns for ChatGPT, Claude, Gemini, Perplexity and Copilot plus a monthly AI-share history.
- **3 months of visit history** as both a list and a date map, with month-over-month and 3-month growth already calculated.
- **Every traffic channel:** direct, organic search, paid search, organic social, paid social, referrals, email, display, affiliate and generative AI.
- **Free comparison row.** Look up several domains and get one extra row ranking them by visits and growth, with the leader and the fastest grower.
- **Cheap add-ons:** WHOIS (registrar, creation and expiry dates, domain age, nameservers) and contact details (emails, phones, social profiles) from the site itself.
- **Fair billing.** Small sites with no Similarweb estimate, invalid entries and failures are listed but never charged.

Common uses:

- **Competitive intelligence:** benchmark your site against rivals on visits, rank and engagement.
- **SEO and content:** see each competitor's top organic keywords with volume, CPC and estimated value.
- **GEO / AI search:** track how much traffic ChatGPT, Claude and Perplexity send to you and your competitors.
- **Lead generation and sales:** qualify prospects by traffic size, then pull their contact emails in the same run.
- **Investing and M\&A:** screen startups and websites by traffic growth.
- **Media buying and partnerships:** check a publisher's real audience size and countries before you buy.

### How to scrape Similarweb data

1. Click **Try for free** and open the **Input** tab.
2. Paste domains or URLs into **Domains or website URLs**, one per line.
3. Optionally turn on the **WHOIS** or **contact details** add-ons.
4. Click **Start**.
5. Download the results as **JSON, CSV, Excel or HTML**, or read them through the API.

Any address format works: `stripe.com`, `www.stripe.com`, `https://stripe.com/pricing?ref=nav` and `https://www.similarweb.com/website/stripe.com/` all become `stripe.com`. Duplicates are looked up and charged once. Subdomains such as `docs.python.org` are kept as they are.

### Input

```json
{
    "domains": ["stripe.com", "notion.so", "https://www.canva.com/"],
    "includeWhois": false,
    "includeContacts": false,
    "compareDomains": true,
    "includeNoDataRows": true,
    "maxConcurrency": 20
}
```

| Field | What it does |
|---|---|
| `domains` | Websites to look up. Domains, URLs or Similarweb links. |
| `maxItems` | Process at most this many domains. 0 = no limit. |
| `includeWhois` | Add-on: registrar, dates, domain age, nameservers, status (official RDAP). |
| `includeContacts` | Add-on: public emails, phones and social profiles from the homepage and contact page. |
| `compareDomains` | Free summary row ranking all domains by visits and growth. |
| `includeNoDataRows` | Keep a free `no_data` row for sites Similarweb has no estimate for. |
| `includeAiPrompts` | Include example AI chatbot prompts Similarweb shows for the site. |
| `maxConcurrency`, `maxRequestRetries` | Speed and retry settings. Each retry uses a new proxy IP. |

### Output

One row per domain. A shortened example:

```json
{
    "domain": "stripe.com",
    "status": "ok",
    "title": "Stripe Checkout | Checkout Pages for Your Website",
    "category": "Finance",
    "globalRank": 305,
    "countryRank": 237,
    "countryRankCountryCode": "US",
    "categoryRank": 16,
    "totalVisits": 130128790,
    "dataMonth": "2026-09",
    "monthlyVisitsHistory": [
        { "month": "2026-07", "visits": 129949921 },
        { "month": "2026-08", "visits": 133172721 },
        { "month": "2026-09", "visits": 130128790 }
    ],
    "visitsChangePct": -2.29,
    "visitsChange3mPct": 0.14,
    "bounceRate": 0.559,
    "pagesPerVisit": 3.16,
    "timeOnSite": "00:02:40",
    "trafficSources": {
        "direct": 0.4158, "searchOrganic": 0.0602, "searchPaid": 0.0116,
        "socialOrganic": 0.046, "socialPaid": 0.0014, "referrals": 0.3818,
        "email": 0.026, "display": 0.015, "affiliate": 0.0007, "genAi": 0.0415
    },
    "topCountries": [{ "countryCode": "US", "share": 0.2952, "visits": 38415851 }],
    "topKeywords": [{ "keyword": "stripe", "volume": 2896420, "cpc": 2.2 }],
    "aiTrafficVisits": 1573997,
    "aiTrafficShareChatgpt": 0.1037,
    "aiTrafficShareClaude": 0.049,
    "aiTrafficSources": [{ "source": "chatgpt.com", "share": 0.1037 }]
}
```

With two or more domains you also get one row with `rowType: "comparison"`: a ranking by visits with growth, share of total visits, AI traffic share and bounce rate, plus `leaderByVisits`, `fastestGrowingMoM` and `fastestGrowing3m`.

The run also saves an `OUTPUT` summary and a `FAILED_DOMAINS` list in the key-value store, so you can re-run only the failures.

### Data fields

| Group | Fields |
|---|---|
| Identity | domain, title, description, category, Similarweb URL |
| Ranks | global rank, country rank + country, category rank + category |
| Traffic | total visits, data month, 3-month history (list + map), MoM and 3-month growth % |
| Engagement | bounce rate, pages per visit, time on site (seconds and hh:mm:ss) |
| Traffic sources | direct, organic/paid search, organic/paid social, referrals, email, display, affiliate, generative AI |
| Audience | top countries with share and visits |
| SEO | top organic keywords with volume, CPC and estimated value |
| AI traffic | AI-referred visits, AI referral share, ChatGPT / Claude / Gemini / Perplexity / Copilot shares, all AI sources, monthly AI history, top AI prompts |
| WHOIS (add-on) | registrar, created / updated / expires, domain age, nameservers, status |
| Contacts (add-on) | emails, phones, Facebook, Instagram, X, LinkedIn, YouTube, TikTok, GitHub, Pinterest |

### How much does it cost to scrape Similarweb?

Pay per event, with no monthly fee:

- A small fee when a run starts.
- One charge per **domain with data**. Domains without data, invalid entries and failures are free.
- WHOIS and contact add-ons are charged per domain only when a record or a contact is found.

See the **Pricing** tab for current prices. Apify's free monthly credit covers thousands of domains, and higher Apify plans get a discount.

### Track competitor website traffic every month (schedule + Google Sheets)

Create a task with your competitor list, add a monthly **schedule**, and connect the **Google Sheets** integration to get a traffic report that updates itself. Use a webhook to send each run's results to Slack, Make, Zapier or n8n.

### Use it from AI agents (MCP)

This actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (`https://mcp.apify.com`). An agent can call it with a list of domains and get structured traffic data back, for example: "Compare the traffic of stripe.com, adyen.com and paddle.com and tell me who grew fastest."

### FAQ

**Do I need a Similarweb account or API key?** No. The actor reads Similarweb's public website data.

**How fresh is the data?** Similarweb updates its estimates monthly. `dataMonth` tells you which month the numbers are for.

**Why does a small site return `no_data`?** Similarweb only estimates sites with enough traffic. These rows are free.

**Are the numbers exact?** They're Similarweb's estimates, the same numbers you'd see on similarweb.com. Use them for comparison and trends, not as exact analytics.

**Can I get more than the top 5 countries or keywords?** The public data includes the top 5 of each.

**Is there an official Similarweb API? How is this different?** Similarweb sells an official API on its paid enterprise plans, usually thousands of dollars a year with a sales call. This actor gives you the public website data (visits, ranks, traffic sources, countries, keywords, AI traffic) per domain, pay as you go, with no contract.

**What are the alternatives to this Similarweb scraper?** Similarweb's own Pro plans and API, Semrush Traffic Analytics, Ahrefs, and other Similarweb scrapers on Apify. This one is built for bulk runs, gives AI-traffic columns per assistant, and charges nothing for domains without data.

Missing a field or found a bug? Open an issue on the **Issues** tab and it's usually fixed within a few days.

### Related actors

| Actor | What it does |
| --- | --- |
| [Website Content Crawler](https://apify.com/apify/website-content-crawler) | Crawl a site and get clean text/markdown for AI |
| [Google Ads Transparency Scraper](https://apify.com/scrape-lads/google-ads-transparency-scraper) | See the Google ads a competitor runs |
| [Facebook Pages Scraper](https://apify.com/scrape-lads/facebook-pages-scraper) | Page details, followers and contacts |
| [Reddit Scraper](https://apify.com/scrape-lads/reddit-scraper) | What people say about a brand on Reddit |
| [Ahrefs SEO Tools](https://apify.com/pro100chok/ahrefs-seo-tools) | Domain rating, backlinks and keywords |

### Is it legal to scrape Similarweb?

This actor only collects publicly available, aggregated website statistics. It collects no personal data except contact details that websites publish themselves, and only if you turn that add-on on. Check that your use follows applicable laws and terms of service.

# Actor input Schema

## `domains` (type: `array`):

Websites to look up on Similarweb, one per line. Bare domains (stripe.com), www hosts, full URLs (https://www.stripe.com/pricing) and Similarweb links (similarweb.com/website/stripe.com/) all work. www. is removed, duplicates are looked up and charged once, and invalid entries are skipped with a warning. Subdomains such as docs.python.org are kept.

## `maxItems` (type: `integer`):

Process at most this many domains from the list (after removing duplicates). 0 means no limit.

## `includeWhois` (type: `boolean`):

Registrar, creation, update and expiry dates, domain age, nameservers and status from the registry's official RDAP service. Charged per domain only when a record comes back.

## `includeContacts` (type: `boolean`):

Public emails, phone links and social profiles (Facebook, Instagram, X, LinkedIn, YouTube, TikTok, GitHub, Pinterest) from the site's homepage and contact page. Charged per domain only when at least one contact is found.

## `compareDomains` (type: `boolean`):

When two or more domains have data, add one free summary row (rowType "comparison") ranking them by monthly visits with month-over-month and 3-month growth.

## `includeNoDataRows` (type: `boolean`):

Write a row with status "no_data" (noData: true) for small sites Similarweb has no estimate for. These rows are never charged. Turn off to get only domains with data.

## `includeAiPrompts` (type: `boolean`):

Add the example AI chatbot prompts Similarweb shows for the site (aiTopPrompts).

## `maxConcurrency` (type: `integer`):

How many domains are fetched at the same time.

## `maxRequestRetries` (type: `integer`):

How many times a blocked or failed lookup is retried. Every retry uses a new proxy IP.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "notion.so",
    "https://www.canva.com/"
  ],
  "maxItems": 0,
  "includeWhois": false,
  "includeContacts": false,
  "compareDomains": true,
  "includeNoDataRows": true,
  "includeAiPrompts": true,
  "maxConcurrency": 20,
  "maxRequestRetries": 5
}
```

# Actor output Schema

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

No description

## `fullResults` (type: `string`):

No description

## `runSummary` (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 = {
    "domains": [
        "stripe.com",
        "notion.so",
        "https://www.canva.com/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrape-lads/similarweb-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 = { "domains": [
        "stripe.com",
        "notion.so",
        "https://www.canva.com/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrape-lads/similarweb-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 '{
  "domains": [
    "stripe.com",
    "notion.so",
    "https://www.canva.com/"
  ]
}' |
apify call scrape-lads/similarweb-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrape-lads/similarweb-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/8D4mZwpmFmWPLRSTD/builds/aGmGJgbexmpJwYFdN/openapi.json
