# Similarweb Scraper - $1.50 / 1000 Websites (`scrapeunblocker/similarweb-scraper`) Actor

Get the Similarweb traffic overview of any website in bulk: global, country and category rank, monthly visits, engagement, traffic sources, top countries, demographics, competitors, keywords, referrals, technologies and company info. $1.50 per 1000 websites.

- **URL**: https://apify.com/scrapeunblocker/similarweb-scraper.md
- **Developed by:** [Scrapeunblocker](https://apify.com/scrapeunblocker) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 websites

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Similarweb Scraper

Get the **Similarweb traffic overview of any website** as clean structured JSON - ranks, monthly visits and trend, engagement, traffic sources, top countries, audience demographics, competitors, search keywords, referrals, social traffic, technologies and company info. Give it a list of domains and get one row per website. No Similarweb account, no login, no proxies or browsers to configure.

### Features

- **Ranks** - global rank, rank in the site's top country and in its category, each with the month-over-month change, plus the last 3 months of rank history.
- **Traffic** - total monthly visits with the change vs the previous month and the last 3 months of visits.
- **Engagement** - bounce rate, pages per visit and average visit duration (as `mm:ss` text and in seconds).
- **Traffic sources** - direct, organic search, referrals, social, mail, paid and more (the shares Similarweb's public page shows).
- **Top countries** by traffic share with their change.
- **Audience** - gender split and age groups, audience interests (topics, categories, other visited sites).
- **Competitors** - similar sites with category, category rank and affinity.
- **Search** - organic vs paid split, number of keywords and the top keywords with CPC.
- **Referrals, outgoing links, social networks and display ads** - totals, top categories and top sources.
- **Technologies** used by the site, grouped by category.
- **Company** - name, year founded, headquarters, employee and revenue range.
- Site description, category, icon and desktop/mobile preview images.

### Use cases

- Competitor research and market sizing.
- Lead qualification and enrichment (traffic, size, country, industry of a prospect's website).
- SEO and marketing research - traffic channels, keywords, referral sources.
- Tracking a list of websites month over month.
- Investment and M\&A screening of online businesses.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `domains` | array | `["github.com"]` | Domains, website URLs or Similarweb website URLs. One result per website. |
| `proxy_country` | string | `""` | Optional exit country (ISO-2). Leave empty. |
| `concurrency` | integer | `3` | Websites looked up at the same time (1-3). |

#### Example input

```json
{
  "domains": ["github.com", "https://www.stackoverflow.com/questions", "docs.python.org"]
}
```

### Output

One dataset item per website (shortened):

```json
{
  "domain": "github.com",
  "found": true,
  "hasTrafficData": true,
  "url": "https://www.similarweb.com/website/github.com/",
  "snapshotDate": "2026-08-01",
  "category": "computers_electronics_and_technology/programming_and_developer_software",
  "globalRank": 50,
  "globalRankChange": -1,
  "country": "US",
  "countryRank": 81,
  "categoryRank": 4,
  "totalVisits": 649321442,
  "visitsChangePercent": 1.79,
  "bounceRate": 0.3666,
  "pagesPerVisit": 5.77,
  "avgVisitDuration": "00:06:24",
  "avgVisitDurationSeconds": 384,
  "visitsHistory": [{ "month": "2026-08", "visits": 649321442, "changePercent": 1.79 }],
  "trafficSources": [{ "source": "direct", "share": 0.526, "rank": 1 }],
  "topCountries": [{ "countryCode": "US", "share": 0.1861, "shareChange": -0.0265 }],
  "demographics": { "male": 0.6981, "female": 0.3019, "ageGroups": [{ "minAge": 25, "maxAge": 34, "share": 0.3449 }] },
  "competitors": [{ "domain": "stackoverflow.com", "categoryRank": 81, "affinity": 1.0 }],
  "search": { "organicShare": 0.9997, "paidShare": 0.0003, "keywordsTotal": 2754220, "topKeywords": [{ "keyword": "github", "cpc": 1.63 }] },
  "socialNetworks": { "total": 68, "top": [{ "name": "Youtube", "share": 0.4302 }] },
  "technologies": { "total": 148, "categories": [{ "category": "conversion_and_analytics", "topTechnology": "Google Analytics" }] },
  "company": { "name": "GitHub", "yearFounded": 2008, "headquartersCountry": "US", "employeesMin": 501, "employeesMax": 1000 }
}
```

Every item has the same keys; a value Similarweb does not show for that site is `null` (or an empty list). A small site Similarweb knows but cannot estimate has `hasTrafficData: false`.

Domains Similarweb does not track, and domains that fail, are listed in the `ERRORS` record of the key-value store and are **not billed**.

### Pricing

**$1.50 per 1000 websites.** Every field above is included - no extra charge for competitors, keywords or technologies. Failed and untracked domains are not charged.

### Notes

- The data is Similarweb's public (signed-out) website overview; `snapshotDate` is the month it describes.
- Similarweb's free page reveals only some traffic-source and referral shares; the others are `null`.
- Visit history covers the last 3 months, as on Similarweb's public page.

# Actor input Schema

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

Domains (e.g. github.com), website URLs (e.g. https://www.github.com/about) or Similarweb website URLs. A leading 'www.' is dropped; other subdomains (e.g. docs.python.org) are looked up as their own site. One dataset item per website.

## `proxy_country` (type: `string`):

ISO-2 country to browse Similarweb from. Leave empty - the service picks the exit itself.

## `concurrency` (type: `integer`):

How many websites to look up at the same time (1-3).

## Actor input object example

```json
{
  "domains": [
    "github.com"
  ],
  "proxy_country": "",
  "concurrency": 3
}
```

# Actor output Schema

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

One item per website with ranks, traffic, audience, competitors and more

## `errors` (type: `string`):

Domains Similarweb does not track or that returned no data, with the reason (not billed)

# 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": [
        "github.com"
    ]
};

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

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

```

## MCP server setup

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