Jump to content

API:Allrevisions

From mediawiki.org
MediaWiki version:
1.27

GET request to list all revisions by a user or in a namespace.

API documentation

[edit]

list=allrevisions (arv)

(main | query | allrevisions)
  • This module requires read rights.
  • This module can be used as a generator.
  • Source: MediaWiki
  • License: GPL-2.0-or-later

List all revisions.

Specific parameters:
Other general parameters are available.
arvprop

Which properties to get for each revision:

ids
The ID of the revision.
flags
Revision flags (minor).
timestamp
The timestamp of the revision.
user
User that made the revision. If the user has been revision deleted, a userhidden property will be returned.
userid
User ID of the revision creator. If the user has been revision deleted, a userhidden property will be returned.
size
Length (bytes) of the revision.
slotsize
Length (bytes) of each revision slot.
sha1
SHA-1 (base 16) of the revision. If the content has been revision deleted, a sha1hidden property will be returned.
slotsha1
SHA-1 (base 16) of each revision slot. If the content has been revision deleted, a sha1hidden property will be returned.
contentmodel
Content model ID of each revision slot.
comment
Comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
parsedcomment
Parsed comment by the user for the revision. If the comment has been revision deleted, a commenthidden property will be returned.
content
Content of each revision slot. If the content has been revision deleted, a texthidden property will be returned. For performance reasons, if this option is used, arvlimit is enforced to 50.
tags
Tags for the revision.
roles
List content slot roles that exist in the revision.
parsetree
Deprecated. Use action=expandtemplates or action=parse instead. The XML parse tree of revision content (requires content model wikitext). For performance reasons, if this option is used, arvlimit is enforced to 50.
Values (separate with | or alternative): comment, content, contentmodel, flags, ids, parsedcomment, roles, sha1, size, slotsha1, slotsize, tags, timestamp, user, userid, parsetree
Default: ids|timestamp|flags|comment|user
arvslots

Which revision slots to return data for, when slot-related properties are included in arvprops. If omitted, data from the main slot will be returned in a backwards-compatible format.

Values (separate with | or alternative): main
To specify all values, use *.
arvcontentformat-{slot}

Content serialization format used for output of content.

This is a templated parameter. When making the request, {slot} in the parameter's name should be replaced with values of arvslots.
One of the following values: application/json, application/octet-stream, application/unknown, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
arvlimit

Limit how many revisions will be returned. If arvprop=content, arvprop=parsetree, arvdiffto or arvdifftotext is used, the limit is 50. If arvparse is used, the limit is 1.

Type: integer or max
The value must be between 1 and 500.
arvexpandtemplates
Deprecated.

Use action=expandtemplates instead. Expand templates in revision content (requires arvprop=content).

Type: boolean (details)
arvgeneratexml
Deprecated.

Use action=expandtemplates or action=parse instead. Generate XML parse tree for revision content (requires arvprop=content).

Type: boolean (details)
arvparse
Deprecated.

Use action=parse instead. Parse revision content (requires arvprop=content). For performance reasons, if this option is used, arvlimit is enforced to 1.

Type: boolean (details)
arvsection

Only retrieve the content of the section with this identifier.

arvdiffto
Deprecated.

Use action=compare instead. Revision ID to diff each revision to. Use prev, next and cur for the previous, next and current revision respectively. For performance reasons, if this option is used, arvlimit is enforced to 50.

arvdifftotext
Deprecated.

Use action=compare instead. Text to diff each revision to. Only diffs a limited number of revisions. Overrides arvdiffto. If arvsection is set, only that section will be diffed against this text. For performance reasons, if this option is used, arvlimit is enforced to 50.

arvdifftotextpst
Deprecated.

Use action=compare instead. Perform a pre-save transform on the text before diffing it. Only valid when used with arvdifftotext.

Type: boolean (details)
arvcontentformat
Deprecated.

Serialization format used for arvdifftotext and expected for output of content.

One of the following values: application/json, application/octet-stream, application/unknown, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown
arvuser

Only list revisions by this user.

Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
arvnamespace

Only list pages in this namespace.

Note: Due to miser mode, using this may result in fewer than arvlimit results returned before continuing; in extreme cases, zero results may be returned.

Values (separate with | or alternative): 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, 486, 487, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
To specify all values, use *.
arvstart

The timestamp to start enumerating from.

Type: timestamp (allowed formats)
arvend

The timestamp to stop enumerating at.

Type: timestamp (allowed formats)
arvdir

In which direction to enumerate:

newer
List oldest first. Note: arvstart has to be before arvend.
older
List newest first (default). Note: arvstart has to be later than arvend.
One of the following values: newer, older
Default: older
arvexcludeuser

Don't list revisions by this user.

Type: user, by any of username, IP, Temporary user, interwiki name (e.g. "prefix>ExampleName") and user ID (e.g. "#12345")
arvcontinue

When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.

arvgeneratetitles

When being used as a generator, generate titles rather than revision IDs.

Type: boolean (details)


Example

[edit]

GET request

[edit]
Get a list of all revisions by user Place holder on the English Wikipedia.

Response

[edit]
{
    "batchcomplete": "",
    "query": {
        "allrevisions": [
            {
                "pageid": 36757881,
                "revisions": [
                    {
                        "revid": 679803046,
                        "parentid": 656413943,
                        "timestamp": "2015-09-06T21:35:42Z"
                    },
                    {
                        "revid": 159361827,
                        "parentid": 0,
                        "timestamp": "2007-09-21T10:35:22Z"
                    }
                ],
                "ns": 3,
                "title": "User talk:Place holder"
            }
            ...
        ]
    }
}

Sample code

[edit]

Python

[edit]
#This file is auto-generated. See modules.json and autogenerator.py for details

#!/usr/bin/python3

"""
    get_allrevisions.py

    MediaWiki API Demos
    Demo of `Allrevisions` module: get revision data of multiple pages and users

    MIT License
"""

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "arvprop": "ids|flags|timestamp",
    "arvuser": "Place holder",
    "list": "allrevisions",
    "format": "json"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

ALLREVISIONS = DATA["query"]["allrevisions"]

for rev in ALLREVISIONS:
    print(rev)

PHP

[edit]
<?php

//This file is autogenerated. See modules.json and autogenerator.py for details

/*
    get_allrevisions.php

    MediaWiki API Demos
    Demo of `Allrevisions` module: get revision data of multiple pages and users

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "allrevisions",
    "arvprop" => "ids|flags|timestamp",
    "arvuser" => "Place holder"
];

$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"]["allrevisions"] as $k => $v ) {
    foreach( $v["revisions"] as $k => $v ) {
        var_dump( $v );
    }
}

JavaScript

[edit]
//This file is autogenerated. See modules.json and autogenerator.py for details

/*
    get_allrevisions.js

    MediaWiki API Demos
    Demo of `Allrevisions` module: get revision data of multiple pages and users

    MIT License
*/

var url = "https://en.wikipedia.org/w/api.php"; 

var params = {
    action: "query",
    format: "json",
    list: "allrevisions",
    arvprop: "ids|flags|timestamp",
    arvuser: "Place holder"
};

url = url + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});

fetch(url)
    .then(function(response){return response.json();})
    .then(function(response) {
        var revs = response.query.allrevisions;
        for (var r in revs) {
            console.log(revs[r]);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS

[edit]
// This file is autogenerated. See modules.json and autogenerator.py for details

/*
	get_allrevisions.js

	MediaWiki API Demos
	Demo of `Allrevisions` module: get revision data of multiple pages and users

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'allrevisions',
		arvprop: 'ids|flags|timestamp',
		arvuser: 'Place holder'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var revs = data.query.allrevisions,
		r;
	for ( r in revs ) {
		console.log( revs[ r ] );
	}
} );

Possible warnings

[edit]
  • Couldn't diff to r######: content is hidden.
    • Thrown when the revision has been hidden (e.g., using RevisionDelete or Oversight).
  • prop=parsetree is only supported for wikitext content. title uses content model content model.
    • Thrown when the parsetree property or generatexml parameter is used and the content model (as returned by the content property) is not set to wikitext
  • Template expansion is only supported for wikitext content. title uses content model content model.
    • Thrown when the expandtemplates parameter is used and the content model (as returned by the content property) is not set to wikitext
  • The requested format contentFormat is not supported for content model model used by name.
    • Thrown when the content of either the current revision or one being diffed to is not supported (typically, not text).

Possible errors

[edit]
Code Info
arvdiffto arvdiffto must be set to a non-negative number, prev, next or cur.
arvnosuchrevid There is no revision with ID ID.
arvnosuchsection There is no section section in ID.

Parameter history

[edit]
  • v1.26: Deprecated arvgeneratexml
  • v1.27: Introduced arvdifftotextpst
  • v1.30: Deprecated parsetree, arvparse, arvexpandtemplates, arvdiffto, arvdifftotext, arvdifftotextpst

See also

[edit]