# Websites Traffic Generator (`m3web/websites-traffic-generator`) Actor

Boost your website’s visibility with realistic visits from different countries and devices. This Actor simulates natural browsing behavior using smart routing and customizable traffic patterns - no coding required.

- **URL**: https://apify.com/m3web/websites-traffic-generator.md
- **Developed by:** [M3Web](https://apify.com/m3web) (community)
- **Categories:** SEO tools, Automation, Lead generation
- **Stats:** 412 total users, 3 monthly users, 95.6% runs succeeded, 7 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$15.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Websites Traffic Generator

Boost your website’s visibility with realistic visits from different countries and devices. This Actor mimics natural browsing behavior using smart routing, customizable traffic patterns, and device diversity - no coding required.

### Overview

Search engines reward websites that show signs of real user activity. This Actor helps simulate that activity with visits that scroll, hover, and (when time allows) click through to other pages on the same site.

Each visit reflects real-world diversity in device type, screen resolution, operating system, and browser-based on market share data from [StatCounter](https://gs.statcounter.com/) for the selected country.

***

### 🛠️ How to Use It

This Actor lets you customize traffic behavior, duration, and device mix - all through simple input fields. No technical setup required.

***

#### 🔹 1.1 Start URLs

Add the full list of webpages you want to boost-not just the homepage or domain. Include product pages, blog posts, landing pages, or any URL you want search engines to notice. The Actor will simulate steady, organic visits to each one.

#### 🔹 1.2 Country

Choose the country you want the visits to appear from.

- `Datacenter proxies (DCP)` are a cheaper option, but they don’t guarantee accurate geolocation.
- For better results, select a specific country or `Worldwide (WW)` to use residential proxies, which offer more realistic IP targeting.

#### 🔹 Run duration

This sets how long the Actor will run. The actual visit time will be randomly selected from one of these ranges: `5-10`, `10-15`, `15-20`, ... `90-105`, `105-120` minutes.\
If you want to run longer than 60 minutes, scroll to the bottom of the input panel and increase `Run options > Timeout` to more than `3600` seconds (default).

There’s also a **built-in kill switch** inside the Actor (no setup required). It activates automatically a few minutes after the selected run duration to ensure safe shutdown and prevent overrun.

***

#### ⚙️ Advanced Options

| 🔹 Input Field | 💬 Description |
|----------------|----------------|
| **Max Concurrency** | Set how many visits should run at the same time. The default is `2`, but you can go as low as `2` or as high as `12`. Higher values generate more traffic. |
| **Create traffic spike** | If enabled, the Actor will ramp up traffic gradually, peak in the middle, and taper off toward the end-mimicking how real traffic behaves during trending moments. |
| **Minimum & Maximum single visit duration** | These two fields work together to define how long each simulated visit will last. The Actor will randomly choose a duration between the minimum and maximum values for every visit. <br><br>• Shorter visits (e.g. 30–60 seconds) will result in more unique visits during the run time. <br>• Longer visits (e.g. 180 seconds) will simulate deeper engagement, with each visitor spending more time and clicking through multiple pages on the same site. <br><br>Default values are `30` seconds minimum and `75` seconds maximum, but feel free to adjust them to match your goals. |
| **Randomly select only one URL from the same domain** | If enabled, the Actor will randomly pick just one URL per domain. Useful if you’ve added multiple pages from the same site and want to avoid overloading it. |
| **Mobile vs Desktop** | Choose what percentage of visits should come from mobile devices. The rest will be desktop. Default is `90%` mobile, which reflects modern traffic trends. Feel free to experiment-these settings are safe to test! |

***

#### 🗺️ Visits from Other Countries

You can define up to **five separate country-based traffic streams**. Each stream has its own Start URLs and Country selection. This is perfect if you're working with multiple websites or want to simulate global traffic.

For example:

- `**2.1 Start URLs for second country**` - Add pages you want visited from a second region.
- `**2.2 Country**` - Choose the country for those visits.
- Repeat for third, fourth, and fifth countries as needed.

This setup gives you full control over how traffic is distributed across regions and websites.

***

### 💡 Tips for Better Results

- **Lower cost per visit**\
  The Actor is most efficient when used for many URLs at once. Whether you're boosting multiple websites or several pages from the same site, the computing cost per visit goes down as the number of visits goes up.

- **Simulate UTM Campaigns from private apps**\
  This Actor doesn’t send any traceable source info with visits, which makes it perfect for simulating traffic from apps like **WhatsApp** or **Viber**. These platforms protect user privacy and don’t pass tracking data-just like this Actor. So if you're testing UTM campaigns from private messaging apps, this tool behaves just like real users would.

***

### 🤖 Supporting Actor: WTG Random Scheduler

If you want to automate traffic scheduling across multiple days and time windows, use the **WTG Random Scheduler** — a no-code companion Actor designed to work with Websites Traffic Generator.

Instead of manually launching runs, this Actor creates randomized schedules for you. It passes all required inputs directly to Websites Traffic Generator, so you don’t need to fill anything in there.

> ✅ There are **five identical versions** of the scheduler to help you save different configurations and reuse them easily:
>
> - [WTG Random Scheduler 1](https://apify.com/m3web/wtg-random-scheduler-1)
> - [WTG Random Scheduler 2](https://apify.com/m3web/wtg-random-scheduler-2)
> - [WTG Random Scheduler 3](https://apify.com/m3web/wtg-random-scheduler-3)
> - [WTG Random Scheduler 4](https://apify.com/m3web/wtg-random-scheduler-4)
> - [WTG Random Scheduler 5](https://apify.com/m3web/wtg-random-scheduler-5)

Each version can store a unique set of inputs — such as different countries, time ranges, or traffic styles — making it easy to launch multiple campaigns without reconfiguring settings.

***

### 🔗 Related Actors

If you're looking to simulate social media-driven traffic or extend visibility after a viral moment, check out these complementary tools:

- [**Web Traffic Spike Simulator X**](https://apify.com/m3web/web-traffic-spike-simulator-x)\
  Simulates realistic traffic spikes triggered by viral posts on X (Twitter).

- [**Organic Visit Simulator X**](https://apify.com/m3web/organic-visit-simulator-x)\
  Follows up viral spikes with steady, organic traffic patterns that search engines recognize.

These Actors work beautifully together to create momentum, sustain visibility, and test how your site responds to different traffic scenarios.

# Actor input Schema

## `startUrl` (type: `array`):

List of URLs to simulate steady, organic web traffic.

## `countryCode` (type: `string`):

Select a country to generate visits from.

## `runTime` (type: `string`):

Select run duration in minutes.

## `advancedOptions` (type: `string`):

Additional settings options.

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

Set the maximum number of visits that will be processed simultaneously.

## `createSpike` (type: `boolean`):

If ON, traffic ramps up at the beginning, peaks during the core window, and tapers off toward the end. Most of the time, concurrency stays close to your selected Max Concurrency value.

## `minSession` (type: `integer`):

Each individual visit cannot be shorter than the time you specify.

## `maxSession` (type: `integer`):

Each individual visit cannot be longer than the time you specify.

## `deduplicateDomains` (type: `boolean`):

If enabled, the Actor will randomly pick one URL per domain.

## `mobileVSdesktop` (type: `integer`):

Select a percentage of Mobile devices (Smartphone and tablet), and the remaining amount will be Desktop devices (PC and Laptop)

## `otherCountries` (type: `string`):

Set up URLs for visits from other countries

## `startUrl2` (type: `array`):

List of URLs to simulate steady, organic web traffic.

## `countryCode2` (type: `string`):

Select a country to generate visits from.

## `startUrl3` (type: `array`):

List of URLs to simulate steady, organic web traffic.

## `countryCode3` (type: `string`):

Select a country to generate visits from.

## `startUrl4` (type: `array`):

List of URLs to simulate steady, organic web traffic.

## `countryCode4` (type: `string`):

Select a country to generate visits from.

## `startUrl5` (type: `array`):

List of URLs to simulate steady, organic web traffic.

## `countryCode5` (type: `string`):

Select a country to generate visits from.

## Actor input object example

```json
{
  "startUrl": [
    {
      "url": "https://apify.com/m3web/websites-traffic-generator"
    }
  ],
  "countryCode": "WW",
  "runTime": "2",
  "maxConcurrency": 2,
  "createSpike": true,
  "minSession": 30,
  "maxSession": 75,
  "deduplicateDomains": false,
  "mobileVSdesktop": 90,
  "startUrl2": [],
  "countryCode2": "US",
  "startUrl3": [],
  "countryCode3": "DE",
  "startUrl4": [],
  "countryCode4": "GB",
  "startUrl5": [],
  "countryCode5": "FR"
}
```

# 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 = {
    "startUrl": [
        {
            "url": "https://apify.com/m3web/websites-traffic-generator"
        }
    ],
    "startUrl2": [],
    "startUrl3": [],
    "startUrl4": [],
    "startUrl5": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("m3web/websites-traffic-generator").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 = {
    "startUrl": [{ "url": "https://apify.com/m3web/websites-traffic-generator" }],
    "startUrl2": [],
    "startUrl3": [],
    "startUrl4": [],
    "startUrl5": [],
}

# Run the Actor and wait for it to finish
run = client.actor("m3web/websites-traffic-generator").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 '{
  "startUrl": [
    {
      "url": "https://apify.com/m3web/websites-traffic-generator"
    }
  ],
  "startUrl2": [],
  "startUrl3": [],
  "startUrl4": [],
  "startUrl5": []
}' |
apify call m3web/websites-traffic-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,m3web/websites-traffic-generator"
        }
    }
}

```

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/2c2kftwH6EDXARSzZ/builds/w0ENP0GYFloxn69hZ/openapi.json
