API:Blocks

From MediaWiki.org
Jump to navigation Jump to search

GET request to list recent blocked users, in the same manner as Special:BlockList lists them.

MediaWiki version: 1.12

API documentation[edit]


list=blocks (bk)

(main | query | blocks)

List all blocked users and IP addresses.

Parameters:
bkstart

The timestamp to start enumerating from.

Type: timestamp (allowed formats)
bkend

The timestamp to stop enumerating at.

Type: timestamp (allowed formats)
bkdir

In which direction to enumerate:

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

List of block IDs to list (optional).

Type: list of integers
Separate values with | or alternative. Maximum number of values is 50 (500 for bots).
bkusers

List of users to search for (optional).

Type: list of user names
Separate values with | or alternative. Maximum number of values is 50 (500 for bots).
bkip

Get all blocks applying to this IP address or CIDR range, including range blocks.

Cannot be used together with bkusers. CIDR ranges broader than IPv4/16 or IPv6/19 are not accepted.

bklimit

The maximum number of blocks to list.

No more than 500 (5,000 for bots) allowed.
Type: integer or max
Default: 10
bkprop

Which properties to get:

id
Adds the ID of the block.
user
Adds the username of the blocked user.
userid
Adds the user ID of the blocked user.
by
Adds the username of the blocking user.
byid
Adds the user ID of the blocking user.
timestamp
Adds the timestamp of when the block was given.
expiry
Adds the timestamp of when the block expires.
reason
Adds the reason given for the block.
range
Adds the range of IP addresses affected by the block.
flags
Tags the ban with (autoblock, anononly, etc.).
restrictions
Adds the partial block restrictions if the block is not sitewide.
Values (separate with | or alternative): id, user, userid, by, byid, timestamp, expiry, reason, range, flags, restrictions
Default: id|user|by|timestamp|expiry|reason|flags
bkshow

Show only items that meet these criteria.

For example, to see only indefinite blocks on IP addresses, set bkshow=ip|!temp.

Values (separate with | or alternative): account, !account, temp, !temp, ip, !ip, range, !range
bkcontinue

When more results are available, use this to continue.

Example[edit]

Lists the 3 most recent blocks

GET request[edit]

Response[edit]

{
    "batchcomplete": "",
    "continue": {
        "bkcontinue": "20190226192632|8865878",
        "continue": "-||"
    },
    "query": {
        "blocks": [
            {
                "id": 8865881,
                "user": "168.11.166.47",
                "by": "Gilliam",
                "timestamp": "2019-02-26T19:28:56Z",
                "expiry": "2020-02-26T19:28:56Z",
                "reason": "{{school block}}",
                "rangestart": "168.11.166.47",
                "rangeend": "168.11.166.47",
                "anononly": "",
                "nocreate": "",
                "allowusertalk": ""
            },
            {
                "id": 8865880,
                "user": "64.125.67.43",
                "by": "Gilliam",
                "timestamp": "2019-02-26T19:27:44Z",
                "expiry": "2019-03-01T19:27:44Z",
                "reason": "part of mass attack",
                "rangestart": "64.125.67.43",
                "rangeend": "64.125.67.43",
                "anononly": "",
                "nocreate": "",
                "allowusertalk": ""
            }
            ...
        ]
    }
}

Sample code[edit]

Python[edit]

#!/usr/bin/python3

"""
    get_blocked_users.py

    MediaWiki API Demos
    Demo of `Blocks` module: GET request to list recent blocked users

    MIT License
"""

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "bklimit": "3",
    "list": "blocks",
    "bkprop": "id|user|by|timestamp|expiry|reason|range|flags",
    "format": "json"
}

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

print(DATA['query']['blocks'])

PHP[edit]

<?php
/*
    get_blocked_users.php

    MediaWiki API Demos
    Demo of `Blocks` module: GET request to list recent blocked users.

    MIT License
*/

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "format" => "json",
    "list" => "blocks",
    "bklimit" => "3",
    "bkprop" => "id|user|by|timestamp|expiry|reason|range|flags"
];

$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["query"]["blocks"] );

JavaScript[edit]

/*
    get_blocked_users.js

    MediaWiki API Demos
    Demo of `Blocks` module: GET request to list recent blocked users.

    MIT License
*/

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

var params = {
    action: "query",
    list: "blocks",
    bklimit: "3",
    bkprop: "id|user|by|timestamp|expiry|reason|range|flags",
    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.query.blocks);})
    .catch(function(error){console.log(error);});

MediaWiki JS[edit]

/*
	get_blocked_users.js

	MediaWiki API Demos
	Demo of `Blocks` module: GET request to list recent blocked users.

	MIT License
*/

var params = {
		action: 'query',
		list: 'blocks',
		bklimit: '3',
		bkprop: 'id|user|by|timestamp|expiry|reason|range|flags',
		format: 'json'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	console.log( data.query.blocks );
} );

Additional notes[edit]

Parameter history[edit]

  • v1.19: Introduced bkshow
  • v1.18: Introduced userid

See also[edit]