# Wikipedia Pageviews: Daily Views by Article | $1/1K (`one_dollar_store/wikipedia-pageviews-stats`) Actor

$1 per 1,000 results, platform usage included. Daily or monthly Wikipedia page views per article from the official Wikimedia API, or the most viewed articles of a day or month. Any language edition, device and visitor type filters. No key.

- **URL**: https://apify.com/one_dollar_store/wikipedia-pageviews-stats.md
- **Developed by:** [One Dollar Store](https://apify.com/one_dollar_store) (community)
- **Categories:** Other, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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

## Wikipedia Pageviews: daily and monthly views per article

**$1 per 1,000 rows. Platform usage included. No rental, no minimum.**

Read page view counts from the official Wikimedia pageviews API. Give a list of article titles (or article links) and get one row per article and day, or one row per article and month. Or switch to the most viewed articles of a day or month, ranked. It works for any language edition (en.wikipedia, de.wikipedia, fr.wikipedia and so on) and for Wikimedia Commons, and you can count all visits or only desktop, mobile web or the mobile app. No API key and no account with Wikimedia.

[Open it in Apify Console](https://console.apify.com/actors/HyxqMhn11KMT2B4sL/input)

### What it costs

| Rows | This actor |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |

Plus $0.001 per run. One flat price, platform usage included, so there is no separate compute or proxy bill. One row is one article on one day (or one month), or one ranked article in the most viewed list. A run returns at most 10,000 rows. A daily check of yesterday's views for 50 articles is 50 rows, about $0.051 a run, or about $1.53 a month. A year of daily views for one article is 365 rows, about $0.37.

### Why use it

- **Official numbers, no key.** The rows come straight from the Wikimedia pageviews API. Nothing to sign up for on the Wikimedia side.
- **Titles or links, any language.** Paste `Alan Turing`, or `https://de.wikipedia.org/wiki/Angela_Merkel`. A link sets the language edition for that line, so one list can mix editions.
- **Daily or monthly, by device.** Count everything, or only desktop, mobile web or the mobile app. The default counts people only. Crawlers and automated traffic can be counted separately.
- **A ranked top list too.** One switch gives the most viewed articles of a day or month, with the main page, search pages and other non article pages left out by default.
- **Safe for scheduled jobs.** A title that does not exist ends cleanly with zero rows and a line in the log that names it. A wrong date ends with a short message, not a crash.

### Quick start

1. Open the actor, keep the example values, press **Start**.
2. Or paste this input, which returns 30 days of daily views for three articles (90 rows):

```json
{
  "mode": "article-views",
  "articles": ["Albert Einstein", "Marie Curie", "Alan Turing"],
  "project": "en.wikipedia",
  "granularity": "daily",
  "days": 30,
  "maxItems": 100
}
```

3. Download the results as JSON, CSV or Excel, or read them through the API.

For the 50 most viewed English articles of yesterday, use `{ "mode": "top-articles", "maxItems": 50 }`.

### Use it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~wikipedia-pageviews-stats/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "article-views", "articles": ["Albert Einstein", "Marie Curie"], "days": 30, "maxItems": 100}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("one_dollar_store/wikipedia-pageviews-stats").call(
    run_input={"mode": "article-views", "articles": ["Albert Einstein", "Marie Curie"], "days": 30, "maxItems": 100}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["date"], item["title"], item["views"])
```

### Use it from an AI assistant

Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:

```
https://mcp.apify.com?tools=one_dollar_store/wikipedia-pageviews-stats
```

Then ask, for example: "How many people viewed the English Wikipedia articles on Albert Einstein and Marie Curie each day over the last 30 days?" or "What were the 20 most viewed English Wikipedia articles yesterday?"

### Switching from another Wikipedia pageviews actor

Articles go in `articles`, as titles or full links, one per line. The edition is `project` (for example `en.wikipedia`). The period is `days`, or `startDate` and `endDate` as YYYY-MM-DD. Day or month rows are `granularity`. Device is `access`, and visitor type is `agent`. The core output fields are `project`, `article`, `date`, `views`, `access` and `agent`. The most viewed list adds `rank`. One row is one article on one day or month.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `mode` | choice | article-views | `article-views` reads the articles you list. `top-articles` reads the most viewed articles of one day or month. |
| `articles` | list of text | none | Titles or full links, one per line. Needed for article-views. |
| `project` | text | en.wikipedia | Language edition and site, for example `de.wikipedia`, `fr.wikipedia`, `es.wikipedia` or `commons.wikimedia`. A pasted link overrides this for its own line. |
| `granularity` | choice | daily | One row per day, or one row per calendar month. |
| `days` | number | 30 | How many days back, counted from the end date. Ignored when a start date is set. From 1 to 3,650. |
| `startDate` | text | none | First day to include, YYYY-MM-DD. Earliest possible day is 2015-07-01. |
| `endDate` | text | yesterday | Last day to include, YYYY-MM-DD (UTC). For the top list this is the day or month to read. |
| `access` | choice | all-access | `all-access`, `desktop`, `mobile-web` or `mobile-app`. |
| `agent` | choice | user | `user` (people), `all-agents`, `spider` or `automated`. Used for article views. |
| `articlesOnly` | true or false | true | Top list only: leave out the main page, search pages and pages in other namespaces such as Special: or Wikipedia:. |
| `maxItems` | number | 100 | Most rows in the run. Minimum 10, maximum 10,000. |

Rows are articles times days. Three articles for 30 days is 90 rows. If the total is above `maxItems`, the last articles in your list may be cut off, and the log says which.

### Output fields

| Field | Meaning |
|---|---|
| `project` | The site the views belong to, for example `en.wikipedia`. |
| `article` | Article title as Wikimedia stores it, with underscores, for example `Albert_Einstein`. |
| `title` | The same title with spaces. |
| `date` | The day (YYYY-MM-DD), or the first day of the month for monthly rows. |
| `granularity` | `daily` or `monthly`. |
| `access` | The device filter used: `all-access`, `desktop`, `mobile-web` or `mobile-app`. |
| `agent` | `user`, `all-agents`, `spider` or `automated`. Not set on top list rows, which count people. |
| `views` | Page views for that day or month. |
| `rank` | Position in the most viewed list. Only on top list rows. |
| `partialMonth` | Monthly rows only. True when the month has not ended yet, so the total covers part of the month. |
| `url` | Link to the article on that Wikipedia edition. |

Fields that do not apply to a row are left out of it.

### Sample results

Real rows from test runs on 20 October 2026: daily views of two articles, two rows of the most viewed list, and a monthly row for the month that was still running (`partialMonth` is true).

```json
[
  {"project": "en.wikipedia", "article": "Albert_Einstein", "title": "Albert Einstein", "date": "2026-09-20", "granularity": "daily", "access": "all-access", "agent": "user", "views": 10582, "url": "https://en.wikipedia.org/wiki/Albert_Einstein"},
  {"project": "en.wikipedia", "article": "Albert_Einstein", "title": "Albert Einstein", "date": "2026-09-21", "granularity": "daily", "access": "all-access", "agent": "user", "views": 10815, "url": "https://en.wikipedia.org/wiki/Albert_Einstein"},
  {"project": "en.wikipedia", "article": "Marie_Curie", "title": "Marie Curie", "date": "2026-09-20", "granularity": "daily", "access": "all-access", "agent": "user", "views": 4773, "url": "https://en.wikipedia.org/wiki/Marie_Curie"},
  {"project": "en.wikipedia", "article": "Jailer_2", "title": "Jailer 2", "date": "2026-10-19", "granularity": "daily", "access": "all-access", "rank": 4, "views": 321853, "url": "https://en.wikipedia.org/wiki/Jailer_2"},
  {"project": "en.wikipedia", "article": "Elizabeth_Holmes", "title": "Elizabeth Holmes", "date": "2026-10-19", "granularity": "daily", "access": "all-access", "rank": 5, "views": 301284, "url": "https://en.wikipedia.org/wiki/Elizabeth_Holmes"},
  {"partialMonth": true, "project": "de.wikipedia", "article": "Angela_Merkel", "title": "Angela Merkel", "date": "2026-10-01", "granularity": "monthly", "access": "mobile-web", "agent": "user", "views": 948, "url": "https://de.wikipedia.org/wiki/Angela_Merkel"}
]
```

### Limits

- **10,000 rows per run.** For more, run again with a shorter date range or fewer articles.
- **Data runs from 1 July 2015 to yesterday (UTC).** That is the range the Wikimedia API holds. Dates outside it are moved to the nearest end.
- **Rate limit.** Wikimedia asks clients without a login to stay under 5 requests per second. The actor sends one request at a time, at most four per second, with a User-Agent that names the actor and its Apify page, and it tries a failed request up to three times with a pause between tries.
- **One request per article.** The whole period for one article comes back in one request, so a list of several hundred articles takes a few minutes because of the pacing. The default run timeout is 10 minutes, so raise it for very long lists.
- **Whole months only for monthly rows.** The start and end dates are rounded to their calendar months. The month that is still running is a partial total, and its row carries `partialMonth: true`.
- **Days without views have no row.** The API leaves out days with no data, so a very small article can have fewer rows than days.
- **Titles must match.** Use the title as it appears in the article's address. A title that does not exist, or that has no views in the period, gives no rows, and the run log names it.
- **Most viewed list.** The API lists at most 1,000 articles for a day or month. With `articlesOnly` on, pages such as the main page and search pages are dropped, and ranks keep their original numbers, so the first row can be rank 4.
- **Device and visitor type are Wikimedia's classification.** The `user` group is the visits Wikimedia classifies as people. Crawlers and automated traffic are counted in the other groups.

### FAQ

**How much does it cost to collect 10,000 rows?**
$10, plus $0.001 for each run.

**Do I pay for compute or proxy on top?**
No. Platform usage is included in the $1 per 1,000 price. No proxy is used.

**Do I need an API key or a Wikimedia account?**
No. The actor reads the public Wikimedia pageviews API.

**How do I get views for another language edition?**
Set `project`, for example `de.wikipedia` or `fr.wikipedia`, or paste article links. A link brings its own language edition, so you can mix several editions in one list.

**How do I get one number per month?**
Set `granularity` to `monthly`. You get one row per article and calendar month.

**How current is the data?**
The actor reads the API at the moment you run it and ends at yesterday (UTC). Today's views are not available yet.

**Is it legal?**
The actor reads statistics that Wikimedia publishes openly. The Wikimedia API access policy states that the data is available under the CC0 1.0 license. The actor sends a User-Agent that names itself and stays under the request rate Wikimedia asks for. How you use the data is up to you: follow Wikimedia's policies and the law where you live.

**Is this an official Wikimedia or Wikipedia product?**
No. It is an independent tool and is not affiliated with or endorsed by the Wikimedia Foundation.

**Do I need an Apify account?**
Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can [sign up here](https://www.apify.com?fpr=ymnoit). This is a referral link and it costs you nothing.

**Is there a limit on the free plan?**
Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.

### More from The One Dollar Store

Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store

**Open data and statistics**

- [Eurostat Scraper](https://apify.com/one_dollar_store/eurostat-statistics-scraper): EU statistics tables as rows.
- [Socrata Open Data Search](https://apify.com/one_dollar_store/socrata-open-data-search): Datasets and rows from city and state portals.
- [Internet Archive Scraper](https://apify.com/one_dollar_store/internet-archive-items-scraper): Books, media and web items from archive.org.
- [World Bank Indicators](https://apify.com/one_dollar_store/world-bank-indicators): Country indicators by year.
- [GDELT Scraper](https://apify.com/one_dollar_store/gdelt-news-events-scraper): Worldwide news articles by theme and tone.

### Changelog

- October 2026: first release.

# Actor input Schema

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

Views of the articles you list, one row per article and day (or month), or the most viewed articles of one day or month.

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

Article titles or full article links, one per line, for example Albert Einstein or https://en.wikipedia.org/wiki/Alan_Turing. Used when you pick Views of my articles.

## `project` (type: `string`):

The site to read, written as language code plus project, for example en.wikipedia, de.wikipedia, fr.wikipedia, es.wikipedia or commons.wikimedia. Links you paste in the article list override this.

## `granularity` (type: `string`):

One row per day, or one row per calendar month. The current month is a partial total and is marked partialMonth.

## `days` (type: `integer`):

How many days back to read, counting from the end date (yesterday if empty). Ignored when you fill in a start date. Data starts on 1 July 2015.

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

Optional, as YYYY-MM-DD. The first day to include. Earliest possible day is 2015-07-01.

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

Optional, as YYYY-MM-DD. The last day to include. Empty means yesterday (UTC). For Most viewed articles this is the day or month to read.

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

Count all visits, or only desktop, mobile web or the mobile app.

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

People only (the usual choice), all traffic, or only crawlers and automated traffic. Used when you pick Views of my articles.

## `articlesOnly` (type: `boolean`):

For Most viewed articles: leave out the main page, search pages and pages in other namespaces such as Special: or Wikipedia:. Ranks keep their original numbers.

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

Stop after this many rows. Rows are articles times days, so 3 articles for 30 days is 90 rows. Minimum 10, maximum 10,000.

## Actor input object example

```json
{
  "mode": "article-views",
  "articles": [
    "Albert Einstein",
    "Marie Curie",
    "Alan Turing"
  ],
  "project": "de.wikipedia",
  "granularity": "daily",
  "days": 30,
  "startDate": "2026-01-01",
  "endDate": "2026-01-31",
  "access": "all-access",
  "agent": "user",
  "articlesOnly": true,
  "maxItems": 100
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "mode": "article-views",
    "articles": [
        "Albert Einstein",
        "Marie Curie",
        "Alan Turing"
    ],
    "project": "en.wikipedia",
    "granularity": "daily",
    "days": 30,
    "access": "all-access",
    "agent": "user",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("one_dollar_store/wikipedia-pageviews-stats").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 = {
    "mode": "article-views",
    "articles": [
        "Albert Einstein",
        "Marie Curie",
        "Alan Turing",
    ],
    "project": "en.wikipedia",
    "granularity": "daily",
    "days": 30,
    "access": "all-access",
    "agent": "user",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("one_dollar_store/wikipedia-pageviews-stats").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 '{
  "mode": "article-views",
  "articles": [
    "Albert Einstein",
    "Marie Curie",
    "Alan Turing"
  ],
  "project": "en.wikipedia",
  "granularity": "daily",
  "days": 30,
  "access": "all-access",
  "agent": "user",
  "maxItems": 100
}' |
apify call one_dollar_store/wikipedia-pageviews-stats --silent --output-dataset

```

## MCP server setup

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

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/HyxqMhn11KMT2B4sL/builds/jncNLcLF40XgauJtK/openapi.json
