# Similarweb Traffic & Rank Scraper (`khadinakbar/similarweb-traffic-rank-scraper`) Actor

Get website traffic and rank for any domain — organic ETV, keyword counts, SERP position distribution, plus optional Similarweb-style visits and global rank when the engagement feed is available. One row per domain. MCP-ready.

- **URL**: https://apify.com/khadinakbar/similarweb-traffic-rank-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** SEO tools, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $80.00 / 1,000 domain traffic & rank overviews

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Traffic & Rank Scraper

Paste a domain list and export **website traffic and rank** in one structured row: organic estimated traffic (ETV), keyword counts, SERP position buckets, and — when the engagement feed is available — visits, bounce rate, and global/country rank.

Best fit for competitive-intel and SEO operators (and MCP agents) who need bulk domain overviews without a Similarweb seat. This Actor uses owner-managed traffic APIs; it uses owner-managed traffic APIs for structured domain overviews. When engagement metrics are present they appear on the row; search-traffic fields always drive the core overview.

Best-fit next step: when you also need top keywords and SEO competitors in the same domain report, continue with [khadinakbar/similarweb-alternative](https://apify.com/khadinakbar/similarweb-alternative) after this lean traffic+rank pass.

### Workflow story

A growth analyst compares three SaaS competitors before a pricing review. They paste `apify.com`, `stripe.com`, and `shopify.com`, keep the United States locale, and start one job. Each dataset row shows organic ETV and position-1 keyword counts so they can rank which brand owns more search demand. They compare organic ETV and position-1 keyword counts to see which brand owns more search demand.

### How to use

1. Open the Actor in Apify Console (or call it via API / Apify MCP).
2. Paste one or more domains or website URLs.
3. Optionally set country and language to match your market.
4. Start the Actor, then download the dataset as JSON, CSV, or Excel.

#### Example input

```json
{
  "domains": ["apify.com"],
  "mode": "free_tier",
  "countryName": "United States",
  "languageCode": "en",
  "includeSimilarweb": true
}
```

#### Example output

```json
{
  "domain": "apify.com",
  "organicEtv": 120000,
  "organicKeywordCount": 8000,
  "organicPos1": 90,
  "organicPos2to3": 200,
  "organicPos4to10": 1500,
  "visits": null,
  "globalRank": null,
  "similarwebAvailable": false,
  "status": "OK",
  "fetchedAt": "2026-01-15T12:00:00.000Z"
}
```

### Data fields

| Field | Description |
|-------|-------------|
| `organicEtv` | Estimated organic monthly traffic value |
| `organicKeywordCount` | Keywords the domain ranks for |
| `organicPos1` / `organicPos2to3` / `organicPos4to10` | SERP position buckets |
| `paidEtv` / `paidKeywordCount` | Paid-search estimates |
| `visits`, `bounceRate`, `pagesPerVisit`, `globalRank`, `countryRank` | Optional engagement metrics when the feed returns them |
| `status` | `OK` or `NO_DATA` |

### Pricing

This Actor uses **Pay per event** plus **platform usage** pass-through. Users pay the named events and the underlying Apify compute/storage shown on the run. Always treat the live Pricing tab in Console as the current source of truth.

- `apify-actor-start`: $0.00005
- `domain-overview` (primary): $0.08 per persisted row (`OK` or `NO_DATA`)

Invalid inputs do not receive the primary event.

### API example

```bash
curl "https://api.apify.com/v2/acts/khadinakbar~similarweb-traffic-rank-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains":["apify.com"],"mode":"free_tier","countryName":"United States","languageCode":"en"}'
```

JavaScript:

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/similarweb-traffic-rank-scraper').call({
  domains: ['apify.com'],
  mode: 'free_tier',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Agent / MCP prompt card

> For each domain in my list, return organic ETV, keyword counts, top SERP buckets, and global rank when available. Read the dataset rows plus OUTPUT.outcome for scope and cost. Prefer this Actor for lean traffic+rank; continue with similarweb-alternative when I also need top keywords and competitors.

Provenance: each row includes `sources` and `fetchedAt`. Cost is forecastable from domain count × $0.08 plus start and platform usage. Free tier keeps 5 unique domains; bulk paid keeps 25. Claude / ChatGPT / MCP agents can call this Actor directly on Apify.

### Best results

- Align `countryName` / `languageCode` with the market you care about
- Prefer bare hostnames over deep paths
- Keep engagement feed enabled when you want visits/global rank; leave it on even if those fields are sometimes empty

### Builder's note

I found during implementation that the engagement feed was intermittently unavailable while Labs domain rank overview consistently returned organic ETV and position buckets. The runtime therefore circuit-breaks the engagement call after the first unavailable response in a run, then continues the batch on search-traffic fields so analysts still receive usable rows.

### Scope & responsible use

- Best fit: public analytics estimates for competitor research and agent workflows
- Brand note: Similarweb appears only as category language for traffic analytics. This Actor is independent and unaffiliated with Similarweb Ltd.
- Follow applicable laws and target site terms
- Use the Issues tab for support

### Related Actors

- [Similarweb Alternative](https://apify.com/khadinakbar/similarweb-alternative) — use next when you need keywords and competitors after this traffic+rank overview

# Changelog

This Actor's version history is a separate document: https://apify.com/khadinakbar/similarweb-traffic-rank-scraper/changelog.md

# Actor input Schema

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

Websites to score for traffic and rank. Accepts hostnames or URLs such as apify.com or https://www.nytimes.com. Free tier keeps the first 5 unique domains; bulk\_paid keeps 25. This is not a keyword list.

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

How many unique domains this run may process. free\_tier caps at 5 domains. bulk\_paid raises the cap to 25. Default is free\_tier. Both modes use the same overview shape.

## `countryName` (type: `string`):

Location name used for search-traffic and rank context. Use full country names such as United States or United Kingdom. Defaults to United States.

## `languageCode` (type: `string`):

Language code for Labs endpoints, such as en, de, or es. Defaults to en. Keep it aligned with the selected country.

## `includeSimilarweb` (type: `boolean`):

Attempt the Similarweb-style visits, bounce rate, and global/country rank feed. Defaults to true. If that feed is unavailable, the run continues with Google search-traffic fields and leaves visits/globalRank empty.

## `onPartialFailure` (type: `string`):

return\_partial writes every successful domain and marks the run PARTIAL if others fail. fail\_if\_any\_batch\_fails stops on the first domain error. Default is return\_partial.

## Actor input object example

```json
{
  "domains": [
    "apify.com",
    "https://www.nytimes.com"
  ],
  "mode": "free_tier",
  "countryName": "United Kingdom",
  "languageCode": "en",
  "includeSimilarweb": true,
  "onPartialFailure": "return_partial"
}
```

# Actor output Schema

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

Dataset items with domain, organicEtv, keyword counts, visits, ranks, and status.

## `summary` (type: `string`):

Compact OUTPUT record with outcome, itemsPushed, charges, and warnings.

## `runSummary` (type: `string`):

Detailed RUN\_SUMMARY including providerCostUsd and similarwebUnavailable.

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

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,khadinakbar/similarweb-traffic-rank-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/tvDjWpBPQWhkckScI/builds/dxb0Rdf1LEHFDMqhC/openapi.json
