# Wikipedia Pageviews - Daily Top Articles & Trends (`loopchips/wikipedia-pageviews`) Actor

What the world is actually reading. Daily top-viewed Wikipedia articles for any language edition, or the view history of specific articles. Reads Wikimedia's official metrics API, so the numbers come from the source.

- **URL**: https://apify.com/loopchips/wikipedia-pageviews.md
- **Developed by:** [Loopchips](https://apify.com/loopchips) (community)
- **Categories:** News, SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 pageview rows

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/platform/actors/running/actors-in-store#pay-per-event

## 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

## Wikipedia Pageviews

What the world is actually reading, day by day.

Two modes:

- **Daily top articles** - the most-viewed articles in any Wikipedia edition, for
  each day in a date range
- **History of specific articles** - the daily view count of articles you name,
  so you can watch attention rise and fall

The numbers come from Wikimedia's own metrics API, not from a scraped page.

### Navigation pages are filtered

The raw ranking is topped by the main page and the search page in every
language. Those are navigation, not reading. They are removed by default.

Ranks are Wikimedia's own numbering, kept as-is for traceability, so after
filtering you will see gaps such as 2, 3, 5. That is the source rank preserved,
not missing data. Turn the filter off to see the unfiltered list.

### What you get

| Field | Description |
|---|---|
| `date` | The day the views were counted |
| `rank` | Wikimedia's rank for that day (top mode) |
| `article` | Readable title |
| `articleRaw` | Raw title, for linking and joins |
| `views` | View count |
| `project` | Which language edition |
| `access` | All devices, desktop, mobile web or mobile app |
| `agent` | Humans only, everything, or bots |
| `url` | Link to the article |

### Example input

```json
{
  "projects": ["ko.wikipedia", "en.wikipedia"],
  "mode": "top",
  "startDate": "2026-08-01",
  "endDate": "2026-08-11",
  "maxArticlesPerDay": 100
}
```

Watching specific subjects instead:

```json
{
  "projects": ["en.wikipedia"],
  "mode": "per-article",
  "articles": ["Artificial intelligence", "Seoul"],
  "startDate": "2026-07-01",
  "endDate": "2026-08-11",
  "agent": "user"
}
```

### What people use it for

- **Trend and attention research** - what a country was reading on a given day
- **Cross-language comparison** - the same subject in ko, en and ja side by side
- **Event impact** - what a launch, a film or a news story did to page traffic
- **Content planning** - subjects with rising attention before they peak

### Pricing

Pay per result. You are charged only for rows actually returned.

### Notes

- Wikimedia publishes with a short lag, so the default end date is yesterday.
- Days with no published data are reported and skipped rather than failing the run.
- Data is published by the Wikimedia Foundation under CC BY-SA.

# Actor input Schema

## `projects` (type: `array`):

Language editions, for example ko.wikipedia, en.wikipedia, ja.wikipedia, de.wikipedia.

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

"top" gives the most-viewed articles for each day. "per-article" gives the daily view history of articles you name.

## `articles` (type: `array`):

Only used with "History of specific articles". Write titles as they appear, for example "서울" or "Artificial intelligence".

## `startDate` (type: `string`):

YYYY-MM-DD. Defaults to eight days ago.

## `endDate` (type: `string`):

YYYY-MM-DD. Defaults to yesterday, because Wikimedia publishes with a short lag.

## `access` (type: `string`):

Which devices to count.

## `agent` (type: `string`):

Used with "History of specific articles". "user" filters out bots and crawlers.

## `maxArticlesPerDay` (type: `integer`):

How far down the daily ranking to go.

## `excludeSpecialPages` (type: `boolean`):

The raw ranking is topped by the main page and the search page in every language. Leave this on to see what people actually read.

## `requestDelayMs` (type: `integer`):

Pause between requests so the source is not hit too quickly.

## Actor input object example

```json
{
  "projects": [
    "ko.wikipedia",
    "en.wikipedia"
  ],
  "mode": "top",
  "articles": [],
  "access": "all-access",
  "agent": "user",
  "maxArticlesPerDay": 100,
  "excludeSpecialPages": true,
  "requestDelayMs": 300
}
```

# Actor output Schema

## `pageviews` (type: `string`):

Daily pageview rows with article, rank and view count.

# 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 = {
    "projects": [
        "ko.wikipedia",
        "en.wikipedia"
    ],
    "mode": "top"
};

// Run the Actor and wait for it to finish
const run = await client.actor("loopchips/wikipedia-pageviews").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 = {
    "projects": [
        "ko.wikipedia",
        "en.wikipedia",
    ],
    "mode": "top",
}

# Run the Actor and wait for it to finish
run = client.actor("loopchips/wikipedia-pageviews").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 '{
  "projects": [
    "ko.wikipedia",
    "en.wikipedia"
  ],
  "mode": "top"
}' |
apify call loopchips/wikipedia-pageviews --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,loopchips/wikipedia-pageviews"
        }
    }
}

```

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/vG2T6V3aBQneYnfvD/builds/Q6RrHshYa8vvyQPmp/openapi.json
