API:RecentChanges
MediaWiki Action API |
---|
Basics |
Authentication |
Accounts and Users |
Page Operations |
|
Search |
Developer Utilities |
Tutorials |
v · d · e |
GET request to list all the recent changes to the wiki, in the same manner as Special:RecentChanges lists them.
API documentation
[edit ]list=recentchanges (rc)
- This module requires read rights.
- This module can be used as a generator.
- Source: MediaWiki
- License: GPL-2.0-or-later
Enumerate recent changes.
- rcstart
The timestamp to start enumerating from.
- Type: timestamp (allowed formats)
- rcend
The timestamp to end enumerating.
- Type: timestamp (allowed formats)
- rcdir
In which direction to enumerate:
- newer
- List oldest first. Note: rcstart has to be before rcend.
- older
- List newest first (default). Note: rcstart has to be later than rcend.
- One of the following values: newer, older
- Default: older
- rcnamespace
Filter changes to only these namespaces.
- Values (separate with | or alternative): -1, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
- To specify all values, use *.
- rcuser
Only list changes by this user.
- Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
- rcexcludeuser
Don't list changes by this user.
- Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
- rctag
Only list changes tagged with this tag.
- rcprop
Include additional pieces of information:
- user
- Adds the user responsible for the edit and tags if they are an IP. If the user has been revision deleted, a userhidden property will be returned.
- userid
- Adds the user ID responsible for the edit. If the user has been revision deleted, a userhidden property will be returned.
- comment
- Adds the comment for the edit. If the comment has been revision deleted, a commenthidden property will be returned.
- parsedcomment
- Adds the parsed comment for the edit. If the comment has been revision deleted, a commenthidden property will be returned.
- flags
- Adds flags for the edit.
- timestamp
- Adds timestamp of the edit.
- title
- Adds the page title of the edit.
- ids
- Adds the page ID, recent changes ID and the new and old revision ID.
- sizes
- Adds the new and old page length in bytes.
- redirect
- Tags edit if page is a redirect.
- patrolled
- Tags patrollable edits as being patrolled or unpatrolled.
- loginfo
- Adds log information (log ID, log type, etc) to log entries.
- tags
- Lists tags for the entry.
- sha1
- Adds the content checksum for entries associated with a revision. If the content has been revision deleted, a sha1hidden property will be returned.
- Values (separate with | or alternative): comment, flags, ids, loginfo, parsedcomment, patrolled, redirect, sha1, sizes, tags, timestamp, title, user, userid
- Default: title|timestamp|ids
- rcshow
Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set rcshow=minor|!anon.
- Values (separate with | or alternative): !anon, !autopatrolled, !bot, !minor, !patrolled, !redirect, anon, autopatrolled, bot, minor, patrolled, redirect, unpatrolled
- rclimit
How many total changes to return.
- Type: integer or max
- The value must be between 1 and 500.
- Default: 10
- rctype
Which types of changes to show.
- Values (separate with | or alternative): categorize, edit, external, log, new
- Default: edit|new|log|categorize
- rctoponly
Only list changes which are the latest revision.
- Type: boolean (details)
- rctitle
Filter entries to those related to a page.
- rccontinue
When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.
- rcgeneraterevisions
When being used as a generator, generate revision IDs rather than titles. Recent change entries without associated revision IDs (e.g. most log entries) will generate nothing.
- Type: boolean (details)
- rcslot
Only list changes that touch the named slot.
- One of the following values: main
- List recent changes.
- api.php?action=query&list=recentchanges [open in sandbox]
- Get page info about recent unpatrolled changes.
- api.php?action=query&generator=recentchanges&grcshow=!patrolled&prop=info [open in sandbox]
Example
[edit ]GET request
[edit ]Response
[edit ]{ "batchcomplete":"", "continue":{ "rccontinue":"20180330090522|1041353210", "continue":"-||" }, "query":{ "recentchanges":[ { "type":"edit", "ns":0, "title":"Histology", "pageid":13570, "revid":833218500, "old_revid":833218201, "rcid":1041353213, "user":"Iztwoz", "oldlen":25718, "newlen":25749 } ... ] } }
Sample code
[edit ]Python
[edit ]#!/usr/bin/python3 """ get_recent_changes.py MediaWiki API Demos Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags MIT License """ import requests S = requests.Session() URL = "https://en.wikipedia.org/w/api.php" PARAMS = { "format": "json", "rcprop": "title|ids|sizes|flags|user", "list": "recentchanges", "action": "query", "rclimit": "3" } R = S.get(url=URL, params=PARAMS) DATA = R.json() RECENTCHANGES = DATA['query']['recentchanges'] for rc in RECENTCHANGES: print(str(rc['title']))
PHP
[edit ]<?php /* get_recent_changes.php MediaWiki API Demos Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags MIT License */ $endPoint = "https://en.wikipedia.org/w/api.php"; $params = [ "action" => "query", "list" => "recentchanges", "rcprop" => "title|ids|sizes|flags|user", "rclimit" => "3", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); foreach( $result["query"]["recentchanges"] as $rc ){ echo( $rc["title"] . "\n" ); }
JavaScript
[edit ]/* get_recent_changes.js MediaWiki API Demos Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags MIT License */ varurl="https://en.wikipedia.org/w/api.php"; varparams={ action:"query", list:"recentchanges", rcprop:"title|ids|sizes|flags|user", rclimit:"3", format:"json" }; url=url+"?origin=*"; Object.keys(params).forEach(function(key){url+="&"+key+"="+params[key];}); fetch(url) .then(function(response){returnresponse.json();}) .then(function(response){ varrecentchanges=response.query.recentchanges; for(varrcinrecentchanges){ console.log(recentchanges[rc].title); } }) .catch(function(error){console.log(error);});
MediaWiki JS
[edit ]/* get_recent_changes.js MediaWiki API Demos Demo of `RecentChanges` module: Get the three most recent changes with sizes and flags MIT License */ varparams={ action:'query', list:'recentchanges', rcprop:'title|ids|sizes|flags|user', rclimit:'3', format:'json' }, api=newmw.Api(); api.get(params).done(function(data){ varrecentchanges=data.query.recentchanges, rc; for(rcinrecentchanges){ console.log(recentchanges[rc].title); } });
Possible errors
[edit ]Code | Info |
---|---|
rcshow | Incorrect parameter - mutually exclusive values may not be supplied. |
rcpermissiondenied | You need the patrol or patrolmarks right to request the patrolled flag.
|
Parameter history
[edit ]- v1.24: Deprecated
rctoken
- v1.15: Removed
rctitles
- v1.14: Introduced
rctitles
- v1.13: Introduced
loginfo
Additional notes
[edit ]- Many log actions can be viewed using this module excluding patrol actions as they are not present in the recentchanges table.
- The Timestamp to start listing from may not be more than $wgRCMaxAge into the past, which on Wikimedia wikis is 30 days.
- New changes may be inserted to the
recentchanges
table slightly out of order with respect to their timestamp. Thus, when requesting the most recent changes twice in a row, the second response may contain new changes inserted a few seconds before the most recent one in the first response. If you repeatedly call this module to get a stream a recent change, consider adding some overlap between requests to not miss any changes. - This module can be used as a generator.
- This module is implemented by ApiQueryRecentChanges.php .