API:Userinfo

MediaWiki version:
1.11

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

API documentation

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

GET request

Get general user info and user rights.

Response

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

Sample code

Python

#!/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

<?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

/*
    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

/*
	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

  • 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

  • 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