Wmcloud APIpageviews.wmcloud.org ↗
Access Wikipedia pageview analytics via 8 endpoints: per-article counts, top-viewed pages, cross-language traffic, site aggregates, category mass analysis, and media requests.
What is the Wmcloud API?
The pageviews.wmcloud.org API exposes 8 endpoints for querying Wikipedia traffic data, from per-article daily view counts to site-wide aggregates across multiple Wikimedia projects. The get_pageviews endpoint accepts a pipe-separated list of page titles and returns a total_views, daily_average, and optional metadata fields including edit counts, editor counts, page size, and protection status. Coverage spans all major language editions and platforms.
curl -X GET 'https://api.parse.bot/scraper/4eaf5e1c-c6ac-422b-aa37-c07fdb5555ee/get_pageviews?end=2026-07-05&agent=all-agents&pages=Cat%7CDog&range=latest-30&start=2026-06-06&project=en.wikipedia.org&platform=all-access' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace pageviews-wmcloud-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Wikipedia Pageviews Analysis API - Usage Example
Demonstrates fetching top articles, language views, category analysis,
redirect breakdowns, and media request counts.
"""
from parse_apis.wikipedia_pageviews_analysis_api import (
Pageviews, Platform, DateRange, Source, PageNotFound
)
client = Pageviews()
# List today's most-viewed articles on English Wikipedia
for article in client.toparticles.list(platform=Platform.ALL_ACCESS, limit=5):
print(f"#{article.rank} {article.article}: {article.views} views")
# Check how a page performs across language editions
top_lang = client.languageviews.list(page="Cat", date_range=DateRange.LATEST_30, limit=1).first()
if top_lang:
print(f"Top language for 'Cat': {top_lang.language} ({top_lang.project}) with {top_lang.total_views} views")
# Analyze a category's pages by total views
for pv in client.categorypageviews.list(target="Presidents of the United States", source=Source.CATEGORY, limit=3):
print(f"{pv.title}: {pv.total_views} total, {pv.daily_average} daily avg")
# Get redirect traffic breakdown for a canonical page
for rv in client.redirectviews.list(page="Cat", limit=3):
print(f"{'[redirect]' if rv.is_redirect else '[canonical]'} {rv.title}: {rv.total_views}")
# Fetch a detailed pageview report (returns single report object)
try:
report = client.pageviewreports.fetch(pages="Cat|Dog")
for page_title, entry in report.results.items():
print(f"{page_title}: {entry.total_views} views, {entry.daily_average} daily avg, size={entry.size}")
except PageNotFound as exc:
print(f"Page not found: {exc.page}")
print("Exercised: toparticles.list, languageviews.list, categorypageviews.list, redirectviews.list, pageviewreports.fetch")
Fetch pageview counts for one or more Wikipedia pages over a date range, including daily breakdown, totals, and optional metadata (edits, editors, page size, protection status). Returns a map keyed by page title.
| Param | Type | Description |
|---|---|---|
| end | string | End date in YYYY-MM-DD format. Must be used together with start. |
| agent | string | Agent type filter. |
| pagesrequired | string | Pipe-separated list of page titles (e.g. 'Cat|Dog'). |
| range | string | Date range preset. Ignored if start and end are provided. |
| start | string | Start date in YYYY-MM-DD format. Must be used together with end. |
| project | string | Wikipedia project domain (e.g. en.wikipedia.org, de.wikipedia.org). |
| platform | string | Platform filter. |
{
"type": "object",
"fields": {
"results": "object mapping page titles to their pageview data including total_views, daily_average, and optional metadata"
},
"sample": {
"data": {
"results": {
"Cat": {
"size": 173177,
"edits": 17,
"editors": 13,
"watchers": 2161,
"pageviews": [
{
"agent": "user",
"views": 9635,
"access": "all-access",
"article": "Cat",
"project": "en.wikipedia",
"timestamp": "2026051200",
"granularity": "daily"
}
],
"assessment": null,
"protection": [
{
"type": "edit",
"level": "autoconfirmed",
"expiry": "infinity"
}
],
"total_views": 250331,
"daily_average": 8344.37
}
}
},
"status": "success"
}
}About the Wmcloud API
Per-Article and Top-Page Traffic
get_pageviews is the core endpoint. Pass one or more page titles via the pages parameter (pipe-separated, e.g. Cat|Dog), specify a project such as en.wikipedia.org or de.wikipedia.org, and optionally filter by platform (desktop, mobile-web, mobile-app, all-access) and agent (user, spider, automated, all-agents). Date ranges can be set with start/end pairs in YYYY-MM-DD format or with the range shorthand (latest-30, this-month, last-month). The response maps each page title to a pageviews array with daily breakdown, a total_views integer, and a daily_average. Optional metadata fields — edits, editors, page size, and protection status — are also available in the response when requested.
get_topviews returns up to 1000 articles ranked by traffic for a given project and date. Each item in the items array includes article, views, and rank. The date parameter accepts either a YYYY-MM-DD string or the literal yesterday.
Cross-Language and Site-Wide Analysis
get_langviews resolves a single page title to its Wikidata entity and returns total_views per language across the top 30 language editions by traffic. Results come back sorted by total_views descending, with each entry carrying language, project, title, and total_views fields. get_siteviews accepts a pipe-separated list of site domains via the sites parameter and returns a daily views array plus a total view count per domain — useful for comparing traffic across multiple Wikimedia projects simultaneously.
Bulk, Redirect, User, and Media Endpoints
get_massviews queries pages belonging to a Wikipedia category or linked from a given page (source can be category or wikilinks). Results are capped at 50 pages sorted by total_views descending, each with a daily_average. get_redirectviews breaks traffic down by every redirect pointing to a canonical article, returning up to 20 redirects with an is_redirect boolean and total_views per entry. get_userviews returns up to 30 articles created by a specific Wikipedia username (main namespace only), sorted by total views. get_mediaviews covers Wikimedia Commons files, accepting pipe-separated file names without the File: prefix and an optional referer filter (internal, external, search-engine, unknown, none), returning daily request data and total_requests per file.
The Wmcloud API is a managed, monitored endpoint for pageviews.wmcloud.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pageviews.wmcloud.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official pageviews.wmcloud.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track daily Wikipedia traffic for a set of competitor brand pages using
get_pageviewswith a customstart/endrange. - Identify the most-read Wikipedia articles in a given language on a specific date using
get_topviewswith aprojectanddate. - Compare how a topic (e.g. 'Climate change') performs across language editions using
get_langviewsto surfacetotal_viewsper language. - Benchmark traffic across multiple Wikimedia sites simultaneously using
get_siteviewswith a pipe-separatedsiteslist. - Analyze which pages in a Wikipedia category drive the most traffic using
get_massviewswithsource=category. - Attribute traffic arriving via redirect titles versus the canonical article title using
get_redirectviews. - Measure how often a Wikimedia Commons image is served, broken down by referer type, using
get_mediaviewswith therefererfilter.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does pageviews.wmcloud.org have an official developer API?+
What does `get_massviews` actually return, and how large can the result set be?+
get_massviews returns up to 50 pages sourced from either a Wikipedia category (source=category) or the outbound links of a given page (source=wikilinks). Each result includes title, total_views, and daily_average, sorted descending by total_views. Pages beyond the 50-item cap are not included in the response.How fresh is the pageview data returned by these endpoints?+
yesterday shorthand in get_topviews reflects this — real-time or same-day counts are not available through these endpoints.Can I retrieve pageview data broken down by individual hour rather than by day?+
get_pageviews endpoint returns a pageviews array with one entry per day. You can fork this API on Parse and revise it to add an hourly endpoint if the underlying data source supports it.Does `get_userviews` cover all articles a user has ever edited, or only articles they created?+
total_views descending. Edits to articles created by others are not reflected. You can fork this API on Parse and revise it to add an endpoint that queries by edit history rather than article creation.