API:Usercontribs

From mediawiki.org
MediaWiki version:
1.9

GET request to list a user's contributions.

API documentation[edit]


list=usercontribs (uc)

(main | query | usercontribs)

Get all edits by a user.

Specific parameters:
Other general parameters are available.
uclimit

The maximum number of contributions to return.

Type: integer or max
The value must be between 1 and 500.
Default: 10
ucstart

The start timestamp to return from, i.e. revisions before this timestamp.

Type: timestamp (allowed formats)
ucend

The end timestamp to return to, i.e. revisions after this timestamp.

Type: timestamp (allowed formats)
uccontinue

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

ucuser

The users to retrieve contributions for. Cannot be used with ucuserids, ucuserprefix, or uciprange.

Type: list of users, by any of username, IP, Temporary user and interwiki name (e.g. "prefix>ExampleName")
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
ucuserids

The user IDs to retrieve contributions for. Cannot be used with ucuser, ucuserprefix, or uciprange.

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
ucuserprefix

Retrieve contributions for all users whose names begin with this value. Cannot be used with ucuser, ucuserids, or uciprange.

uciprange

The CIDR range to retrieve contributions for. Cannot be used with ucuser, ucuserprefix, or ucuserids.

ucdir

In which direction to enumerate:

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

Only list contributions in these namespaces.

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 *.
ucprop

Include additional pieces of information:

ids
Adds the page ID and revision ID.
title
Adds the title and namespace ID of the page.
timestamp
Adds the timestamp of the edit.
comment
Adds the comment of the edit. If the comment has been revision deleted, a commenthidden property will be returned.
parsedcomment
Adds the parsed comment of the edit. If the comment has been revision deleted, a commenthidden property will be returned.
size
Adds the new size of the edit.
sizediff
Adds the size delta of the edit against its parent.
flags
Adds flags of the edit.
patrolled
Tags patrolled edits.
tags
Lists tags for the edit.
Values (separate with | or alternative): comment, flags, ids, parsedcomment, patrolled, size, sizediff, tags, timestamp, title
Default: ids|title|timestamp|comment|size|flags
ucshow

Show only items that meet these criteria, e.g. non minor edits only: ucshow=!minor.

If ucshow=patrolled or ucshow=!patrolled is set, revisions older than $wgRCMaxAge (2592000 seconds) won't be shown.

Values (separate with | or alternative): !autopatrolled, !minor, !new, !patrolled, !top, autopatrolled, minor, new, patrolled, top
uctag

Only list revisions tagged with this tag.

uctoponly
Deprecated.

Only list changes which are the latest revision.

Type: boolean (details)
Examples:
Show contributions of user Example.
api.php?action=query&list=usercontribs&ucuser=Example [open in sandbox]
Show contributions from all IP addresses with prefix 192.0.2..
api.php?action=query&list=usercontribs&ucuserprefix=192.0.2. [open in sandbox]

Example[edit]

GET request[edit]

List contributions by User:Jimbo Wales


Response[edit]

{
    "batchcomplete": "",
    "continue": {
        "uccontinue": "20190130180447|880978627",
        "continue": "-||"
    },
    "query": {
        "usercontribs": [
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9870625,
                "revid": 881893498,
                "parentid": 881892978,
                "ns": 3,
                "title": "User talk:Jimbo Wales",
                "timestamp": "2019-02-05T14:05:11Z",
                "comment": "/* Fancy I edit Wikipedia T-Shirt */",
                "size": 29753
            },
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9870625,
                "revid": 881282261,
                "parentid": 881270759,
                "ns": 3,
                "title": "User talk:Jimbo Wales",
                "timestamp": "2019-02-01T15:29:31Z",
                "comment": "/* Macedonian President Gorge Ivanov is now in the House arrest */",
                "size": 60166
            },
            {
                "userid": 24,
                "user": "Jimbo Wales",
                "pageid": 9513191,
                "revid": 881245934,
                "parentid": 881240310,
                "ns": 1,
                "title": "Talk:Mark Dice",
                "timestamp": "2019-02-01T09:48:38Z",
                "comment": "/* So good they names it twice */",
                "size": 74128
            },
            ...
        ]
    }
}

Sample code[edit]

Python[edit]

#!/usr/bin/python3

"""
    get_usercontribs.py

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "usercontribs",
    "ucuser": "Jimbo Wales"
}

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

USERCONTRIBS = DATA["query"]["usercontribs"]

for uc in USERCONTRIBS:
    print(uc["title"])

PHP[edit]

<?php

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

/*
    get_usercontribs.php

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "usercontribs",
    "ucuser" => "Jimbo Wales"
];

$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"]["usercontribs"] as $k => $v ) {
    echo( $v["title"] . "\n" );
}

JavaScript[edit]

/*
    get_usercontribs.js

    MediaWiki API Demos
    Demo of `Usercontribs` module: List user contributions.

    MIT License
*/

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

var params = {
    action: "query",
    format: "json",
    list: "usercontribs",
    ucuser: "Jimbo Wales"
};

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 usercontrib = response.query.usercontribs;
        for (var uc in usercontrib) {
            console.log(usercontrib[uc].title);
        }
    })
    .catch(function(error){console.log(error);});

MediaWiki JS[edit]

/*
	get_usercontribs.js

	MediaWiki API Demos
	Demo of `Usercontribs` module: List user contributions.

	MIT License
*/

var params = {
		action: 'query',
		format: 'json',
		list: 'usercontribs',
		ucuser: 'Jimbo Wales'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var usercontrib = data.query.usercontribs,
		uc;
	for ( uc in usercontrib ) {
		console.log( usercontrib[ uc ].title );
	}
} );

Possible errors[edit]

Code Info
invaliduserid User ID username is not valid.
paramempty_ucuser The parameter user may not be empty.
baduser_ucuser Invalid value "username" for user parameter user.
show Incorrect parameter - mutually exclusive values may not be supplied.
permissiondenied You need the patrol or patrolmarks right to request the patrolled flag.

Parameter history[edit]

  • v1.39: Introduced uciprange
  • v1.29: Introduced ucuserids
  • v1.23: Deprecated uctoponly
  • v1.23: Introduced ucshow=top, ucshow=!top, ucshow=new, ucshow=!new
  • v1.20: Introduced ucprop=sizediff
  • v1.18: Introduced uctoponly
  • v1.16: Introduced ucprop=parsedcomment, ucprop=size, ucprop=tags, uctag
  • v1.15: Introduced ucprop=patrolled, ucshow=patrolled, ucshow=!patrolled
  • v1.14: Introduced uccontinue
  • v1.13: Introduced ucuserprefix
  • v1.11: Introduced ucnamespace, ucprop, ucshow

Additional notes[edit]

  • The module returns page edits and moves, but not other operations, such as uploads.
  • Prior to MediaWiki v1.14, the start parameter was used to view additional results within the response. Between v1.14 and v1.22, start was used to continue when listing a single user's contributions; continue was used when listing contributions from multiple users. From v1.23 forwards, all queries use continue.

See also[edit]