Wikipedia Revision History Scraper β€” Page Edit History by Date avatar

Wikipedia Revision History Scraper β€” Page Edit History by Date

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Wikipedia Revision History Scraper β€” Page Edit History by Date

Wikipedia Revision History Scraper β€” Page Edit History by Date

Scrape the complete edit / revision history of any Wikipedia page. Every edit: who, when, summary, byte size + delta, tags, minor flag, revision IDs. Any language, any MediaWiki project, category expansion, date & user filters. No API key, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Wikipedia Revision History Scraper β€” Full Page Edit History by Date (No API Key)

Apify Actor No API key Pay per result Developer Tools Export

Extract the complete revision (edit) history of any Wikipedia page β€” or any page on Wiktionary, Wikibooks, Wikiquote, Wikinews, Wikisource, Wikiversity or Wikivoyage. This Wikipedia revision history scraper returns every edit ever made to a page as clean, flat rows: who edited, when, the edit summary, the byte size and byte delta, change tags, the minor-edit flag, revision and parent IDs, the content SHA-1 and a permanent link to view each revision. It works for any language edition, can expand an entire category into hundreds of pages, and filters by date window or editor. Fast, no browser, no Wikipedia account, no API key, no login β€” powered directly by the keyless MediaWiki Action API.

πŸ† Why this Wikipedia revision history scraper?

Every edit as a flat row Β· thousands of revisions per run Β· byte-level sizeDelta per edit Β· date-bounded windows going back to a page's first edit Β· filter by editor Β· expand a whole category Β· any language, any MediaWiki project Β· export to JSON / CSV / Excel. The unofficial Wikipedia edit-history / MediaWiki API alternative for research, contributor analytics, vandalism detection and AI training corpora.


What does this Actor do?

The Actor queries the official, keyless MediaWiki Action API (/w/api.php) with action=query&prop=revisions against the wiki host you choose (for example https://en.wikipedia.org/w/api.php). For each page it pages through the entire history using the API's rvcontinue token — fetching up to 500 revisions per request — until it has the depth you asked for or the page runs out of edits. It requests ids | timestamp | user | userid | comment | size | tags | flags | sha1 for each revision, sorts them oldest→newest, and computes the byte sizeDelta of every edit against the immediately preceding version. Date bounds map to the API's rvstart / rvend parameters, an editor filter maps to rvuser, and an optional category is expanded into member pages via list=categorymembers. Every request carries a descriptive User-Agent and honours the API's maxlag politeness signal with exponential backoff. Optionally it can attach the full wikitext of each revision.

Who is it for?

  • Misinformation & edit-war researchers studying how contentious articles change over time and who is driving those changes.
  • Academics & computational social scientists building longitudinal datasets of article evolution, contributor behaviour and content growth.
  • Data journalists reconstructing exactly when and how a claim entered (or left) a Wikipedia page around a news event.
  • AI / NLP & ML teams assembling revision-level corpora, diff datasets and edit-summary training data.
  • Trust & safety / community analysts detecting vandalism spikes, anonymous-IP surges and coordinated editing on watched pages.

Use cases

  • Brand & reputation monitoring β€” track every edit to your company's or product's Wikipedia page: who changed what, when, and by how many bytes.
  • Edit-war & controversy analysis β€” pull the full history of a disputed article and see the back-and-forth revert pattern in the comment, sizeDelta and tags fields.
  • Contributor auditing β€” filter to a single editor or bot and export every revision they ever made to a page.
  • Content-growth studies β€” chart an article's size over years to see how coverage of a topic expanded or was trimmed.
  • AI training corpora β€” with includeContent on, capture the full wikitext of thousands of historical versions for diff and rewrite datasets.

Why use this Actor?

  • πŸ”‘ 100% keyless β€” no Wikipedia login, no OAuth, no API key, no client secret. It reads the public MediaWiki Action API directly.
  • 🧾 18 fields per revision β€” editor, user ID, anonymity, timestamp, edit summary, minor flag, size, byte delta, tags, SHA-1, revision & parent IDs, and a direct permalink to each version.
  • πŸ“š Bulk & category expansion β€” pass many page titles at once, or point it at a category and it fans out to hundreds of member pages, each with its full history β€” thousands of rows per run.
  • 🎯 Precise filters β€” narrow by afterDate / beforeDate (ISO), by a specific userFilter editor, and cap depth with maxRevisionsPerPage.
  • 🌍 Any language, any project β€” set language (en, de, fr, es, tr, ja, zh…) and project (Wikipedia, Wiktionary, Wikibooks, Wikiquote, Wikinews, Wikisource, Wikiversity, Wikivoyage).
  • πŸ“€ Clean, flat export & pay-per-result β€” every edit is one tidy row, exportable to JSON, CSV, Excel, HTML, XML or JSONL, with simple pay-per-result pricing.

What data can you extract?

Each row is a single revision of a single page. Numbers and booleans are shown as numeric / boolean columns in the dataset view and exported cleanly to CSV, JSON and Excel.

FieldTypeDescription
pagestringPage title the revision belongs to.
pageIdnumberMediaWiki numeric page ID.
languagestringWiki language code (e.g. en).
projectstringMediaWiki project (e.g. wikipedia).
revIdnumberThis revision's unique ID.
parentIdnumberThe previous revision's ID (0 for the first edit).
timestampstringWhen the edit was made (ISO 8601 UTC).
userstringUsername or IP address that made the edit.
userIdnumberNumeric user ID (0 for anonymous / IP edits).
isAnonymousbooleantrue when the edit was made by an IP (not a registered account).
isMinorbooleanWhether the editor flagged the edit as minor.
commentstringThe edit summary left by the editor.
sizenumberPage size in bytes after this revision.
sizeDeltanumberByte change vs the parent revision (+ added, βˆ’ removed).
tagsstringChange tags, comma-joined (e.g. mobile edit, visualeditor).
sha1stringSHA-1 hash of the revision content.
revisionUrlstringPermanent link to view this exact revision.
contentstringFull wikitext at this revision (only when includeContent is enabled).

Example output object

{
"page": "Bitcoin",
"pageId": 28249265,
"language": "en",
"project": "wikipedia",
"revId": 1363572085,
"parentId": 1363571325,
"timestamp": "2026-07-11T01:38:40Z",
"user": "Idacticus",
"userId": 54142316,
"isAnonymous": false,
"isMinor": true,
"comment": "link added",
"size": 113434,
"sizeDelta": 44,
"tags": "visualeditor",
"sha1": "bd9a2e11915de7e4491e313dbefaa7683957aaeb",
"revisionUrl": "https://en.wikipedia.org/w/index.php?title=Bitcoin&oldid=1363572085"
}

How to use

You can target pages two ways β€” list titles directly, or expand a category.

Option A β€” by page title (or URL)

  1. Open the Actor and add one or more titles to Page titles or URLs (full Wikipedia URLs are accepted and stripped to the title automatically).
  2. Set language (default en) and project (default wikipedia).
  3. Optionally add a date window, an editor filter, or a max revisions per page cap.
  4. Click Start. Each page is paged to full depth and every edit is saved as one row.
{
"pages": ["Bitcoin", "ChatGPT", "https://en.wikipedia.org/wiki/Artificial_intelligence"],
"language": "en",
"project": "wikipedia",
"maxRevisionsPerPage": 2000
}

Option B β€” by category (huge volume)

  1. Put a category name (without the Category: prefix) in the Category field.
  2. Set Max pages from category to bound how many member pages are expanded.
  3. Click Start. The Actor discovers member pages and scrapes each one's full revision history.
{
"category": "Cryptocurrencies",
"maxPagesFromCategory": 30,
"language": "en",
"project": "wikipedia",
"afterDate": "2022-01-01",
"maxRevisionsPerPage": 500
}

Input parameters

ParameterTypeDefaultDescription
pagesarray["Bitcoin","ChatGPT"]Page titles or full wiki URLs to scrape.
languagestringenWiki language / edition code (en, de, fr, es, tr, ja, zh…).
projectstring (select)wikipediaMediaWiki project (wikipedia, wiktionary, wikibooks, wikiquote, wikinews, wikisource, wikiversity, wikivoyage).
categorystring""Optional category name (no Category: prefix) to expand into member pages.
maxPagesFromCategoryinteger50Max member pages to expand when category is set.
afterDatestringnullOnly revisions made after this ISO date (older bound).
beforeDatestringnullOnly revisions made before this ISO date (newer bound).
userFilterstring""Only revisions by this exact editor (username or IP).
maxRevisionsPerPageinteger2000Cap on revisions per page (newest-first). 0 = full history.
includeContentbooleanfalseInclude the full wikitext of each revision (heavy, slow).
maxItemsinteger0Global cap on rows across all pages. 0 = unlimited.
proxyConfigurationobjectApify Proxy onDatacenter proxy by default; used mainly for fresh IPs on retry.

Full input example

{
"pages": ["Climate change"],
"language": "en",
"project": "wikipedia",
"afterDate": "2020-01-01",
"beforeDate": "2021-12-31",
"userFilter": "",
"maxRevisionsPerPage": 1000,
"includeContent": false,
"maxItems": 5000,
"proxyConfiguration": { "useApifyProxy": true }
}

Output example

{
"page": "ChatGPT",
"pageId": 72287769,
"language": "en",
"project": "wikipedia",
"revId": 1189998877,
"parentId": 1189998001,
"timestamp": "2023-12-14T18:22:05Z",
"user": "203.0.113.42",
"userId": 0,
"isAnonymous": true,
"isMinor": false,
"comment": "/* History */ added release detail",
"size": 208764,
"sizeDelta": 512,
"tags": "mobile edit, mobile web edit",
"sha1": "a1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
"revisionUrl": "https://en.wikipedia.org/w/index.php?title=ChatGPT&oldid=1189998877"
}

Tips for best results

  • Set a maxRevisionsPerPage cap on very active articles β€” high-traffic pages can have 20,000+ edits. The cap keeps the newest N revisions and controls cost.
  • Use date windows for eras. afterDate is the older bound and beforeDate is the newer bound; combine them to slice a specific year or event window.
  • Audit one editor by setting userFilter to a username or IP β€” you get only their edits to each page.
  • Expand categories for scale. One category can fan out to hundreds of pages; raise maxPagesFromCategory deliberately and watch the row count.
  • Leave includeContent off unless you truly need wikitext β€” it multiplies data size and runtime dramatically.
  • Pass full URLs freely β€” https://de.wikipedia.org/wiki/Berlin is accepted; just remember to also set language: "de" so the API host matches.
  • Sister projects work the same β€” set project to wiktionary, wikisource, etc., and the identical engine applies.
  • The oldest emitted row's sizeDelta is anchored by fetching one extra older revision, so deltas are accurate even at your cap boundary.
  • isAnonymous / userId: 0 marks IP edits β€” a useful signal for vandalism and unregistered-contributor analysis.
  • Use maxItems as a global budget ceiling across all pages in a single run.

Integrations

Wire this Actor into your stack with Apify's built-in connectors:

  • Google Sheets β€” push each run's revisions straight into a spreadsheet for pivot tables and charts.
  • Slack β€” get notified when a monitored page crosses an edit-volume threshold.
  • Zapier & Make β€” trigger downstream workflows (alerts, tickets, dashboards) on new revisions.
  • Webhooks β€” POST the dataset to your own API or data warehouse when a run finishes.
  • Schedule β€” run daily or hourly to keep a rolling archive of a page's or category's edit history.

API usage

Run the Actor programmatically with the Apify API or clients.

cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~wikipedia-revision-history-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"pages":["Bitcoin"],"language":"en","maxRevisionsPerPage":500}'

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/wikipedia-revision-history-scraper').call({
pages: ['Bitcoin', 'ChatGPT'],
language: 'en',
project: 'wikipedia',
maxRevisionsPerPage: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("logiover/wikipedia-revision-history-scraper").call(run_input={
"pages": ["Bitcoin"],
"language": "en",
"project": "wikipedia",
"maxRevisionsPerPage": 1000,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Use with AI agents (MCP)

This Actor is a clean, structured data source for LLM agents and MCP-based tools. Point your agent at it to fetch the edit history of any Wikipedia page on demand β€” for example to answer "when was this claim added to the article and by whom?" or to feed revision-level context into a RAG pipeline. An example agent prompt: "Use the Wikipedia Revision History Scraper to pull every 2024 edit to the 'ChatGPT' article, then summarize who made the largest byte additions and what their edit summaries said." The flat, typed rows drop straight into tool-calling and retrieval workflows.

FAQ

Do I need a Wikipedia account or API key?

No. The Actor uses the public, keyless MediaWiki Action API. There is no login, OAuth, API key or client secret β€” you just provide page titles.

How far back does the history go?

To the page's very first edit. MediaWiki keeps the complete revision history of every page, and the Actor pages through all of it (bounded only by your maxRevisionsPerPage and date filters).

How many revisions can I get per run?

Thousands, easily. A single busy article can hold 20,000+ edits, and a category expands to many pages. Use maxRevisionsPerPage, maxPagesFromCategory and maxItems to control depth, breadth and total volume.

What does sizeDelta mean?

It is the byte change of a revision compared with the immediately preceding version β€” positive when content was added, negative when removed. The oldest emitted row is anchored with an extra fetched revision so its delta is accurate too.

A run returned zero rows β€” why?

Usually the filters excluded everything (a date window with no edits, or a userFilter editor who never touched the page), or the page title was misspelled / doesn't exist on that language edition. Missing pages are logged and skipped. Check the log and loosen the filters.

Why are some fields empty or 0?

userId is 0 and isAnonymous is true for IP (unregistered) edits. comment is empty when the editor left no summary. tags is empty when no change tags apply. parentId is 0 on the first-ever edit. These are faithful to the source data.

Can I export to CSV, JSON or Excel?

Yes. Open the Output/Dataset tab and download as CSV, JSON, Excel, HTML, XML or JSONL, or pull the data via the Apify API and webhooks. Every revision is a flat row, so it imports cleanly into spreadsheets and databases.

Does it work for non-English Wikipedia and sister projects?

Yes. Set language to any edition code (de, fr, es, tr, ja, zh…) and project to Wikipedia or any sister project (Wiktionary, Wikibooks, Wikiquote, Wikinews, Wikisource, Wikiversity, Wikivoyage). The same engine applies.

How do I get only one editor's edits to a page?

Set userFilter to that exact username or IP address. The Actor returns only that contributor's revisions on each page β€” ideal for auditing a bot or a single user.

Can I include the full text of each revision?

Yes β€” enable includeContent and each row will carry the full wikitext at that revision. This is heavy (megabytes per page) and much slower, so leave it off unless you need it for diffs or corpora.

How do I monitor a page for new edits?

Schedule the Actor to run on an interval with a recent afterDate (or just re-run and diff by revId). Wire the finish webhook into Slack or your database to alert on new revisions.

Is this an official Wikipedia product?

No. It is an independent Actor that reads Wikipedia's own public MediaWiki API. It is not affiliated with or endorsed by the Wikimedia Foundation.

This Actor collects publicly available revision metadata (and, optionally, wikitext) that Wikipedia and its sister projects already publish openly through their own MediaWiki API. Wikimedia content is released under free licenses (predominantly CC BY-SA and, for text, the GFDL); when you reuse the content you are responsible for complying with those licenses and with the Wikimedia Terms of Use. The Actor identifies itself with a descriptive User-Agent and honours the API's maxlag politeness signal. You are responsible for using the extracted data lawfully, including under GDPR and any applicable local regulations, particularly where usernames or IP addresses are involved.

Building a wider knowledge-base or research dataset? Pair this with other logiover Actors:


Changelog

2026-07-22

  • πŸŽ‰ Initial release: full page revision-history extraction via the keyless MediaWiki Action API β€” 18 fields per edit, byte-level sizeDelta, category expansion, date & editor filters, any language and any MediaWiki project, with optional full-wikitext capture.