MediaWiki version:

GET request to perform an advanced search for wiki pages by title or content text match.

API documentation edit

list=search (sr)

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

Perform a full text search.

Specific parameters:
Other general parameters are available.

Search for page titles or content matching this value. You can use the search string to invoke special search features, depending on what the wiki's search backend implements.

This parameter is required.

Search only within 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 *.
Default: 0

How many total pages to return.

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

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

Type: integer
The value must be no less than 0.
Default: 0

Query independent profile to use (affects ranking algorithm).

Ranking based on the number of incoming links, some templates, page language and recency (templates/language/recency may not be activated on this wiki).
Ranking based on some templates, page language and recency when activated on this wiki.
Ranking based solely on query dependent features (for debug only).
Weighted sum based on incoming links
Weighted sum based on incoming links and weekly pageviews
Ranking based primarily on page views
Ranking based primarily on incoming link counts
Let the search engine decide on the best profile to use.
One of the following values: classic, classic_noboostlinks, empty, engine_autoselect, popular_inclinks, popular_inclinks_pv, wsum_inclinks, wsum_inclinks_pv
Default: engine_autoselect

Which type of search to perform.

One of the following values: nearmatch, text, title

Which metadata to return.

Values (separate with | or alternative): rewrittenquery, suggestion, totalhits
Default: totalhits|suggestion|rewrittenquery

Which properties to return:

Adds the size of the page in bytes.
Adds the word count of the page.
Adds the timestamp of when the page was last edited.
Adds a snippet of the page, with query term highlighting markup.
Adds the page title, with query term highlighting markup.
Adds the title of the matching redirect.
Adds the title of the matching redirect, with query term highlighting markup.
Adds the title of the matching section.
Adds the title of the matching section, with query term highlighting markup.
Adds a boolean indicating if the search matched file content.
Adds the matching category name, with query term highlighting markup.
Deprecated. Ignored.
Deprecated. Ignored.
Adds extra data generated by extensions.
Values (separate with | or alternative): categorysnippet, extensiondata, isfilematch, redirectsnippet, redirecttitle, sectionsnippet, sectiontitle, size, snippet, timestamp, titlesnippet, wordcount, hasrelated, score
Default: size|wordcount|timestamp|snippet

Include interwiki results in the search, if available.

Type: boolean (details)

Enable internal query rewriting. Some search backends can rewrite the query into another which is thought to provide better results, for instance by correcting spelling errors.

Type: boolean (details)

Set the sort order of returned results.

One of the following values: create_timestamp_asc, create_timestamp_desc, incoming_links_asc, incoming_links_desc, just_match, last_edit_asc, last_edit_desc, none, random, relevance, user_random
Default: relevance

GET request edit

Default search results are without UTF8 encoding. Replace utf8 in the get request above to see the difference.

Response edit

    "batchcomplete": "",
    "continue": {
        "sroffset": 10,
        "continue": "-||"
    "query": {
        "searchinfo": {
            "totalhits": 5060
        "search": [
                "ns": 0,
                "title": "Nelson Mandela",
                "pageid": 21492751,
                "size": 196026,
                "wordcount": 23664,
                "snippet": "<span class=\"searchmatch\">Nelson</span> Rolihlahla <span class=\"searchmatch\">Mandela</span> (/mænˈdɛlə/, Xhosa: [xoliɬaˈɬa <span class=\"searchmatch\">manˈdɛla</span>]; 18 July 1918 – 5 December 2013) was a South African anti-apartheid revolutionary,",
                "timestamp": "2018-07-23T07:59:43Z"
                "ns": 0,
                "title": "Death of Nelson Mandela",
                "pageid": 41284488,
                "size": 133513,
                "wordcount": 13512,
                "snippet": "On December 5, 2013, <span class=\"searchmatch\">Nelson</span> <span class=\"searchmatch\">Mandela</span>, the first President of South Africa to be elected in a fully representative democratic election, as well as the country's",
                "timestamp": "2018-07-19T17:30:59Z"

Sample code edit

Python edit



    MediaWiki API Demos
    Demo of `Search` module: Search for a text or title

    MIT License

import requests

S = requests.Session()

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

SEARCHPAGE = "Nelson Mandela"

    "action": "query",
    "format": "json",
    "list": "search",
    "srsearch": SEARCHPAGE

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

if DATA['query']['search'][0]['title'] == SEARCHPAGE:
    print("Your search page '" + SEARCHPAGE + "' exists on English Wikipedia")

PHP edit


    MediaWiki API Demos
    Demo of `Search` module: Search for a text or title

    MIT License

$searchPage = "Nelson Mandela";

$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
    "action" => "query",
    "list" => "search",
    "srsearch" => $searchPage,
    "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 );

if ($result['query']['search'][0]['title'] == $searchPage){
    echo("Your search page '" . $searchPage . "' exists on English Wikipedia" . "\n" );

JavaScript edit


    MediaWiki API Demos
    Demo of `Search` module: Search for a text or title

    MIT License

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

var params = new URLSearchParams({
    action: "query",
    list: "search",
    srsearch: "Nelson Mandela",
    format: "json",
    origin: location.origin

    .then(function(response){return response.json();})
    .then(function(response) {
        if (response.query.search[0].title === "Nelson Mandela"){
            console.log("Your search page 'Nelson Mandela' exists on English Wikipedia" );

MediaWiki JS edit


	MediaWiki API Demos
	Demo of `Search` module: Search for a text or title

	MIT License

var params = {
		action: 'query',
		list: 'search',
		srsearch: 'Nelson Mandela',
		format: 'json'
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	if ( data.query.search[ 0 ].title === 'Nelson Mandela' ) {
		console.log( "Your search page 'Nelson Mandela' exists on English Wikipedia" );
} );

Possible errors edit

Code Info
nosrsearch The srsearch parameter must be set.
This was param-search before 1.17
search-text-disabled text search is disabled.
search-title-disabled title search is disabled.
search-error search error has occurred

Parameter history edit

  • v1.24: Deprecated score,hasrelated
  • v1.23:
    • Removed srredirects. Redirects are always included.
    • Introduced srinterwiki
  • v1.22: Introduced srbackend
  • v1.17: Introduced nearmatch, score, titlesnippet, redirecttitle, redirectsnippet, sectiontitle, sectionsnippet, hasrelated
  • v1.16: Introduced srinfo, srprop

Additional notes edit

  • Depending on which search backend is in use, how srsearch is interpreted may vary. On Wikimedia wikis which use CirrusSearch, see Help:CirrusSearch for information about the search syntax.

See also edit