API:Userinfo

MediaWiki version:
1.11

GET request to return information about the currently logged-in user.

API documentation edit


meta=userinfo (ui)

(main | query | userinfo)

Get information about the current user.

Specific parameters:
Other general parameters are available.
uiprop

Which pieces of information to include:

blockinfo
Tags if the current user is blocked, by whom, and for what reason.
hasmsg
Adds a tag messages if the current user has pending messages.
groups
Lists all the groups the current user belongs to.
groupmemberships
Lists groups that the current user has been explicitly assigned to, including the expiry date of each group membership.
implicitgroups
Lists all the groups the current user is automatically a member of.
rights
Lists all the rights the current user has.
changeablegroups
Lists the groups the current user can add to and remove from.
options
Lists all preferences the current user has set.
editcount
Adds the current user's edit count.
ratelimits
Lists all rate limits applying to the current user.
theoreticalratelimits
Lists all rate limits that would apply to the current user if they were not exempt from all ratelimits based on user rights or ip
email
Adds the user's email address and email authentication date.
realname
Adds the user's real name.
acceptlang
Echoes the Accept-Language header sent by the client in a structured format.
registrationdate
Adds the user's registration date.
unreadcount
Adds the count of unread pages on the user's watchlist (maximum 999; returns 1000+ if more).
centralids
Adds the central IDs and attachment status for the user.
latestcontrib
Adds the date of user's latest contribution.
cancreateaccount
Indicates whether the user is allowed to create accounts. To check whether some specific account can be created, use action=query&list=users&usprop=cancreate.
Values (separate with | or alternative): acceptlang, blockinfo, cancreateaccount, centralids, changeablegroups, editcount, email, groupmemberships, groups, hasmsg, implicitgroups, latestcontrib, options, ratelimits, realname, registrationdate, rights, theoreticalratelimits, unreadcount
To specify all values, use *.
uiattachedwiki

With uiprop=centralids, indicate whether the user is attached with the wiki identified by this ID.

Examples:
Get information about the current user.
api.php?action=query&meta=userinfo [open in sandbox]
Get additional information about the current user.
api.php?action=query&meta=userinfo&uiprop=blockinfo|groups|rights|hasmsg [open in sandbox]

Example edit

GET request edit

Get general user info and user rights.


Response edit

{
    "batchcomplete": "",
    "query": {
        "userinfo": {
            "id": 37494596,
            "name": "Zaycodes",
            "groups": [
                "*",
                "user"
            ],
            "rights": [
                "createaccount",
                "read",
                "edit",
                "createtalk",
                "writeapi",
                "viewmywatchlist",
                "editmywatchlist",
                "viewmyprivateinfo",
                "editmyprivateinfo",
                ...
            ]
        }
    }

Sample code edit

Python edit

#!/usr/bin/python3

"""
    userinfo.py
    MediaWiki API Demos
    Demo of `Userinfo` module: Get general user info and user rights
    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "meta": "userinfo",
    "uiprop": "rights",
    "format": "json"
}

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

print(DATA)

PHP edit

<?php

/*
    userinfo.php
    MediaWiki API Demos
    Demo of `Userinfo` module: Get general user info and user rights
    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "meta" => "userinfo",
    "uiprop" => "rights",
    "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 );
var_dump( $result );

JavaScript edit

/*
    userinfo.js
    MediaWiki API Demos
    Demo of `Userinfo` module: Get general user info and user rights
    MIT License
*/

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

var params = {
    action: "query",
    meta: "userinfo",
    uiprop: "rights",
    format: "json"
};

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

fetch(url)
    .then(function(response){return response.json();})
    .then(function(response) {console.log(response);})
    .catch(function(error){console.log(error);});

MediaWiki JS edit

/*
	userinfo.js
	MediaWiki API Demos
	Demo of `Userinfo` module: Get general user info and user rights
	MIT License
*/

var params = {
	action: 'query',
	meta: 'userinfo',
	uiprop: 'rights',
	format: 'json'
};
var api = new mw.Api();

api.get( params ).then( function ( data ) {
	console.log( data );
} );

Parameter history edit

  • v1.33: Introduced latestcontrib
  • v1.24: Introduced unreadcount
  • v1.18: Introduced implicitgroups, registrationdate, realname
  • v1.17: Introduced acceptlang
  • v1.16: Introduced changeablegroups
  • v1.15: Introduced email
  • v1.14: Introduced preferencestoken
  • v1.12: Introduced ratelimits, editcount

Additional notes edit

  • The code for the userinfo function is located at ApiQueryUserInfo.php.
  • If you need access to user information not listed here for a user on a Wikimedia project, please email privacy wikimedia.org for further assistance.

See also edit

  • API:Users - for getting information about other users.