MediaWiki API help
This is an auto-generated MediaWiki API documentation page.
Documentation and examples: https://www.mediawiki.org/wiki/API
Main module
- Source: MediaWiki
- License: GPL-2.0+
Status: All features shown on this page should be working, but the API is still in active development, and may change at any time. Subscribe to the mediawiki-api-announce mailing list for notice of updates.
Erroneous requests: When erroneous requests are sent to the API, an HTTP header will be sent with the key "MediaWiki-API-Error" and then both the value of the header and the error code sent back will be set to the same value. For more information see API: Errors and warnings.
Testing: For ease of testing API requests, see Special:ApiSandbox.
- action
Which action to perform.
- One of the following values: block, changeauthenticationdata, checktoken, clearhasmsg, clientlogin, compare, createaccount, delete, edit, emailuser, expandtemplates, feedcontributions, feedrecentchanges, feedwatchlist, filerevert, help, imagerotate, import, linkaccount, login, logout, managetags, mergehistory, move, opensearch, options, paraminfo, parse, patrol, protect, purge, query, removeauthenticationdata, resetpassword, revisiondelete, rollback, rsd, setnotificationtimestamp, stashedit, tag, tokens, unblock, undelete, unlinkaccount, upload, userrights, watch
- Default: help
- format
The format of the output.
- One of the following values: json, jsonfm, none, php, phpfm, rawfm, xml, xmlfm
- Default: jsonfm
- maxlag
Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code maxlag is returned with a message like Waiting for $host: $lag seconds lagged.
See Manual: Maxlag parameter for more information.- Type: integer
- smaxage
Set the
s-maxageHTTP cache control header to this many seconds. Errors are never cached.- Type: integer
- Default: 0
- maxage
Set the
max-ageHTTP cache control header to this many seconds. Errors are never cached.- Type: integer
- Default: 0
- assert
Verify the user is logged in if set to user, or has the bot user right if bot.
- One of the following values: user, bot
- requestid
Any value given here will be included in the response. May be used to distinguish requests.
- servedby
Include the hostname that served the request in the results.
- Type: boolean (details)
- curtimestamp
Include the current timestamp in the result.
- Type: boolean (details)
- origin
When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain. This must be included in any pre-flight request, and therefore must be part of the request URI (not the POST body). This must match one of the origins in the
Originheader exactly, so it has to be set to something like https://en.wikipedia.org or https://meta.wikimedia.org. If this parameter does not match theOriginheader, a 403 response will be returned. If this parameter matches theOriginheader and the origin is whitelisted, anAccess-Control-Allow-Originheader will be set.- uselang
Language to use for message translations. action=query&meta=siteinfo with siprop=languages returns a list of language codes, or specify user to use the current user's language preference, or specify content to use this wiki's content language.
- Default: user
- Help for the main module.
- api.php?action=help [open in sandbox]
- All help in one page.
- api.php?action=help&recursivesubmodules=1 [open in sandbox]
action=block
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Block a user.
- user
Username, IP address, or IP address range to block.
- This parameter is required.
- Type: user name
- expiry
Expiry time. May be relative (e.g. 5 months or 2 weeks) or absolute (e.g. 2014-09-18T12:34:56Z). If set to infinite, indefinite, or never, the block will never expire.
- Default: never
- reason
Reason for block.
- Default: (empty)
- anononly
Block anonymous users only (i.e. disable anonymous edits for this IP address).
- Type: boolean (details)
- nocreate
Prevent account creation.
- Type: boolean (details)
- autoblock
Automatically block the last used IP address, and any subsequent IP addresses they try to login from.
- Type: boolean (details)
- noemail
Prevent user from sending email through the wiki. (Requires the
blockemailright).- Type: boolean (details)
- hidename
Hide the username from the block log. (Requires the
hideuserright).- Type: boolean (details)
- allowusertalk
Allow the user to edit their own talk page (depends on $wgBlockAllowsUTEdit).
- Type: boolean (details)
- reblock
If the user is already blocked, overwrite the existing block.
- Type: boolean (details)
- watchuser
Watch the user's or IP address's user and talk pages.
- Type: boolean (details)
- token
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- Block IP address 192.0.2.5 for three days with reason First strike.
- api.php?action=block&user=192.0.2.5&expiry=3%20days&reason=First%20strike&token=123ABC [open in sandbox]
- Block user Vandal indefinitely with reason Vandalism, and prevent new account creation and email sending.
- api.php?action=block&user=Vandal&expiry=never&reason=Vandalism&nocreate=&autoblock=&noemail=&token=123ABC [open in sandbox]
action=changeauthenticationdata (changeauth)
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Change authentication data for the current user.
- changeauthrequest
Use this authentication request, by the id returned from action=query&meta=authmanagerinfo with amirequestsfor=change.
- This parameter is required.
- changeauthtoken
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- *
- This module accepts additional parameters depending on the available authentication requests. Use action=query&meta=authmanagerinfo with amirequestsfor=change (or a previous response from this module, if applicable) to determine the requests available and the fields that they use.
- Attempt to change the current user's password to ExamplePassword.
- api.php?action=changeauthenticationdata&changeauthrequest=MediaWiki%5CAuth%5CPasswordAuthenticationRequest&password=ExamplePassword&retype=ExamplePassword&changeauthtoken=123ABC [open in sandbox]
action=checktoken
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Check the validity of a token from action=query&meta=tokens.
- type
Type of token being tested.
- This parameter is required.
- One of the following values: createaccount, csrf, login, patrol, rollback, userrights, watch
- token
Token to test.
- This parameter is required.
- maxtokenage
Maximum allowed age of the token, in seconds.
- Type: integer
- Test the validity of a csrf token.
- api.php?action=checktoken&type=csrf&token=123ABC [open in sandbox]
action=clearhasmsg
- This module requires read rights.
- This module requires write rights.
- Source: MediaWiki
- License: GPL-2.0+
Clears the hasmsg flag for the current user.
- Clear the
hasmsgflag for the current user. - api.php?action=clearhasmsg [open in sandbox]
action=clientlogin (login)
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Log in to the wiki using the interactive flow.
The general procedure to use this module is:
- Fetch the fields available from action=query&meta=authmanagerinfo with amirequestsfor=login, and a login token from action=query&meta=tokens.
- Present the fields to the user, and obtain their submission.
- Post to this module, supplying loginreturnurl and any relevant fields.
- Check the status in the response.
- If you received PASS or FAIL, you're done. The operation either succeeded or it didn't.
- If you received UI, present the new fields to the user and obtain their submission. Then post to this module with logincontinue and the relevant fields set, and repeat step 4.
- If you received REDIRECT, direct the user to the redirecttarget and wait for the return to loginreturnurl. Then post to this module with logincontinue and any fields passed to the return URL, and repeat step 4.
- If you received RESTART, that means the authentication worked but we don't have an linked user account. You might treat this as UI or as FAIL.
- loginrequests
Only use these authentication requests, by the id returned from action=query&meta=authmanagerinfo with amirequestsfor=login or from a previous response from this module.
- Separate values with |. Maximum number of values is 50 (500 for bots).
- loginmessageformat
Format to use for returning messages.
- One of the following values: html, wikitext, raw, none
- Default: wikitext
- loginmergerequestfields
Merge field information for all authentication requests into one array.
- Type: boolean (details)
- loginpreservestate
Preserve state from a previous failed login attempt, if possible.
- Type: boolean (details)
- loginreturnurl
Return URL for third-party authentication flows, must be absolute. Either this or logincontinue is required.
Upon receiving a REDIRECT response, you will typically open a browser or web view to the specified redirecttarget URL for a third-party authentication flow. When that completes, the third party will send the browser or web view to this URL. You should extract any query or POST parameters from the URL and pass them as a logincontinue request to this API module.
- logincontinue
This request is a continuation after an earlier UI or REDIRECT response. Either this or loginreturnurl is required.
- Type: boolean (details)
- logintoken
A "login" token retrieved from action=query&meta=tokens
- This parameter is required.
- *
- This module accepts additional parameters depending on the available authentication requests. Use action=query&meta=authmanagerinfo with amirequestsfor=login (or a previous response from this module, if applicable) to determine the requests available and the fields that they use.
- Start the process of logging in to the wiki as user Example with password ExamplePassword.
- api.php?action=clientlogin&username=Example&password=ExamplePassword&loginreturnurl=http://example.org/&logintoken=123ABC [open in sandbox]
- Continue logging in after a UI response for two-factor auth, supplying an OATHToken of 987654.
- api.php?action=clientlogin&logincontinue=1&OATHToken=987654&logintoken=123ABC [open in sandbox]
action=compare
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Get the difference between 2 pages.
A revision number, a page title, or a page ID for both "from" and "to" must be passed.
- fromtitle
First title to compare.
- fromid
First page ID to compare.
- Type: integer
- fromrev
First revision to compare.
- Type: integer
- totitle
Second title to compare.
- toid
Second page ID to compare.
- Type: integer
- torev
Second revision to compare.
- Type: integer
- Create a diff between revision 1 and 2.
- api.php?action=compare&fromrev=1&torev=2 [open in sandbox]
action=createaccount (create)
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Create a new user account.
The general procedure to use this module is:
- Fetch the fields available from action=query&meta=authmanagerinfo with amirequestsfor=create, and a createaccount token from action=query&meta=tokens.
- Present the fields to the user, and obtain their submission.
- Post to this module, supplying createreturnurl and any relevant fields.
- Check the status in the response.
- If you received PASS or FAIL, you're done. The operation either succeeded or it didn't.
- If you received UI, present the new fields to the user and obtain their submission. Then post to this module with createcontinue and the relevant fields set, and repeat step 4.
- If you received REDIRECT, direct the user to the redirecttarget and wait for the return to createreturnurl. Then post to this module with createcontinue and any fields passed to the return URL, and repeat step 4.
- If you received RESTART, that means the authentication worked but we don't have an linked user account. You might treat this as UI or as FAIL.
- createrequests
Only use these authentication requests, by the id returned from action=query&meta=authmanagerinfo with amirequestsfor=create or from a previous response from this module.
- Separate values with |. Maximum number of values is 50 (500 for bots).
- createmessageformat
Format to use for returning messages.
- One of the following values: html, wikitext, raw, none
- Default: wikitext
- createmergerequestfields
Merge field information for all authentication requests into one array.
- Type: boolean (details)
- createpreservestate
Preserve state from a previous failed login attempt, if possible.
If action=query&meta=authmanagerinfo returned true for hasprimarypreservedstate, requests marked as primary-required should be omitted. If it returned a non-empty value for preservedusername, that username must be used for the username parameter.
- Type: boolean (details)
- createreturnurl
Return URL for third-party authentication flows, must be absolute. Either this or createcontinue is required.
Upon receiving a REDIRECT response, you will typically open a browser or web view to the specified redirecttarget URL for a third-party authentication flow. When that completes, the third party will send the browser or web view to this URL. You should extract any query or POST parameters from the URL and pass them as a createcontinue request to this API module.
- createcontinue
This request is a continuation after an earlier UI or REDIRECT response. Either this or createreturnurl is required.
- Type: boolean (details)
- createtoken
A "createaccount" token retrieved from action=query&meta=tokens
- This parameter is required.
- *
- This module accepts additional parameters depending on the available authentication requests. Use action=query&meta=authmanagerinfo with amirequestsfor=create (or a previous response from this module, if applicable) to determine the requests available and the fields that they use.
- Start the process of creating user Example with password ExamplePassword.
- api.php?action=createaccount&username=Example&password=ExamplePassword&retype=ExamplePassword&createreturnurl=http://example.org/&createtoken=123ABC [open in sandbox]
action=delete
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Delete a page.
- title
Title of the page to delete. Cannot be used together with pageid.
- pageid
Page ID of the page to delete. Cannot be used together with title.
- Type: integer
- reason
Reason for the deletion. If not set, an automatically generated reason will be used.
- tags
Change tags to apply to the entry in the deletion log.
- Values (separate with |):
- watch
- Deprecated.
Add the page to the current user's watchlist.
- Type: boolean (details)
- watchlist
Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.
- One of the following values: watch, unwatch, preferences, nochange
- Default: preferences
- unwatch
- Deprecated.
Remove the page from the current user's watchlist.
- Type: boolean (details)
- oldimage
The name of the old image to delete as provided by action=query&prop=imageinfo&iiprop=archivename.
- token
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- Delete Main Page.
- api.php?action=delete&title=Main%20Page&token=123ABC [open in sandbox]
- Delete Main Page with the reason Preparing for move.
- api.php?action=delete&title=Main%20Page&token=123ABC&reason=Preparing%20for%20move [open in sandbox]
action=edit
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Create and edit pages.
- title
Title of the page to edit. Cannot be used together with pageid.
- pageid
Page ID of the page to edit. Cannot be used together with title.
- Type: integer
- section
Section number. 0 for the top section, new for a new section.
- sectiontitle
The title for a new section.
- text
Page content.
- summary
Edit summary. Also section title when section=new and sectiontitle is not set.
- tags
Change tags to apply to the revision.
- Values (separate with |):
- minor
Minor edit.
- Type: boolean (details)
- notminor
Non-minor edit.
- Type: boolean (details)
- bot
Mark this edit as bot.
- Type: boolean (details)
- basetimestamp
Timestamp of the base revision, used to detect edit conflicts. May be obtained through action=query&prop=revisions&rvprop=timestamp.
- Type: timestamp (allowed formats)
- starttimestamp
Timestamp when the editing process began, used to detect edit conflicts. An appropriate value may be obtained using curtimestamp when beginning the edit process (e.g. when loading the page content to edit).
- Type: timestamp (allowed formats)
- recreate
Override any errors about the page having been deleted in the meantime.
- Type: boolean (details)
- createonly
Don't edit the page if it exists already.
- Type: boolean (details)
- nocreate
Throw an error if the page doesn't exist.
- Type: boolean (details)
- watch
- Deprecated.
Add the page to the current user's watchlist.
- Type: boolean (details)
- unwatch
- Deprecated.
Remove the page from the current user's watchlist.
- Type: boolean (details)
- watchlist
Unconditionally add or remove the page from the current user's watchlist, use preferences or do not change watch.
- One of the following values: watch, unwatch, preferences, nochange
- Default: preferences
- md5
The MD5 hash of the text parameter, or the prependtext and appendtext parameters concatenated. If set, the edit won't be done unless the hash is correct.
- prependtext
Add this text to the beginning of the page. Overrides text.
- appendtext
Add this text to the end of the page. Overrides text.
Use section=new to append a new section, rather than this parameter.
- undo
Undo this revision. Overrides text, prependtext and appendtext.
- Type: integer
- undoafter
Undo all revisions from undo to this one. If not set, just undo one revision.
- Type: integer
- redirect
Automatically resolve redirects.
- Type: boolean (details)
- contentformat
Content serialization format used for the input text.
- One of the following values: text/x-wiki, text/javascript, application/json, text/css, text/plain
- contentmodel
Content model of the new content.
- One of the following values: wikitext, javascript, json, css, text
- token
A "csrf" token retrieved from action=query&meta=tokens
The token should always be sent as the last parameter, or at least after the text parameter.
- This parameter is required.
- Edit a page.
- api.php?action=edit&title=Test&summary=test%20summary&text=article%20content&basetimestamp=2007-08-24T12:34:54Z&token=123ABC [open in sandbox]
- Prepend __NOTOC__ to a page.
- api.php?action=edit&title=Test&summary=NOTOC&minor=&prependtext=__NOTOC__%0A&basetimestamp=2007-08-24T12:34:54Z&token=123ABC [open in sandbox]
- Undo revisions 13579 through 13585 with autosummary.
- api.php?action=edit&title=Test&undo=13585&undoafter=13579&basetimestamp=2007-08-24T12:34:54Z&token=123ABC [open in sandbox]
action=emailuser
- This module requires read rights.
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0+
Email a user.
- target
User to send email to.
- This parameter is required.
- subject
Subject header.
- text
Mail body.
- This parameter is required.
- ccme
Send a copy of this mail to me.
- Type: boolean (details)
- token
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- Send an email to user WikiSysop with the text Content.
- api.php?action=emailuser&target=WikiSysop&text=Content&token=123ABC [open in sandbox]
action=expandtemplates
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Expands all templates in wikitext.
- title
Title of page.
- Default: API
- text
Wikitext to convert.
- This parameter is required.
- revid
Revision ID, for {{REVISIONID}} and similar variables.
- Type: integer
- prop
Which pieces of information to get.
Note that if no values are selected, the result will contain the wikitext, but the output will be in a deprecated format.
- wikitext
- The expanded wikitext.
- categories
- Any categories present in the input that are not represented in the wikitext output.
- properties
- Page properties defined by expanded magic words in the wikitext.
- volatile
- Whether the output is volatile and should not be reused elsewhere within the page.
- ttl
- The maximum time after which caches of the result should be invalidated.
- modules
- Any ResourceLoader modules that parser functions have requested be added to the output. Either jsconfigvars or encodedjsconfigvars must be requested jointly with modules.
- jsconfigvars
- Gives the JavaScript configuration variables specific to the page.
- encodedjsconfigvars
- Gives the JavaScript configuration variables specific to the page as a JSON string.
- parsetree
- The XML parse tree of the input.
- Values (separate with |): wikitext, categories, properties, volatile, ttl, modules, jsconfigvars, encodedjsconfigvars, parsetree
- includecomments
Whether to include HTML comments in the output.
- Type: boolean (details)
- generatexml
- Deprecated.
Generate XML parse tree (replaced by prop=parsetree).
- Type: boolean (details)
- Expand the wikitext {{Project:Sandbox}}.
- api.php?action=expandtemplates&text={{Project:Sandbox}} [open in sandbox]
action=feedcontributions
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Returns a user contributions feed.
- feedformat
The format of the feed.
- One of the following values: rss, atom
- Default: rss
- user
What users to get the contributions for.
- This parameter is required.
- Type: user name
- namespace
Which namespace to filter the contributions by.
- One of the following values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- year
From year (and earlier).
- Type: integer
- month
From month (and earlier).
- Type: integer
- tagfilter
Filter contributions that have these tags.
- Values (separate with |):
- Default: (empty)
- deletedonly
Show only deleted contributions.
- Type: boolean (details)
- toponly
Only show edits that are latest revisions.
- Type: boolean (details)
- newonly
Only show edits that are page creations.
- Type: boolean (details)
- showsizediff
Show the size difference between revisions.
- Type: boolean (details)
- Return contributions for user Example.
- api.php?action=feedcontributions&user=Example [open in sandbox]
action=feedrecentchanges
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Returns a recent changes feed.
- feedformat
The format of the feed.
- One of the following values: rss, atom
- Default: rss
- namespace
Namespace to limit the results to.
- One of the following values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- invert
All namespaces but the selected one.
- Type: boolean (details)
- associated
Include associated (talk or main) namespace.
- Type: boolean (details)
- days
Days to limit the results to.
- The value must be no less than 1.
- Type: integer
- Default: 7
- limit
Maximum number of results to return.
- The value must be between 1 and 50.
- Type: integer
- Default: 50
- from
Show changes since then.
- Type: timestamp (allowed formats)
- hideminor
Hide minor changes.
- Type: boolean (details)
- hidebots
Hide changes made by bots.
- Type: boolean (details)
- hideanons
Hide changes made by anonymous users.
- Type: boolean (details)
- hideliu
Hide changes made by registered users.
- Type: boolean (details)
- hidepatrolled
Hide patrolled changes.
- Type: boolean (details)
- hidemyself
Hide changes made by the current user.
- Type: boolean (details)
- hidecategorization
Hide category membership changes.
- Type: boolean (details)
- tagfilter
Filter by tag.
- target
Show only changes on pages linked from this page.
- showlinkedto
Show changes on pages linked to the selected page instead.
- Type: boolean (details)
- Show recent changes.
- api.php?action=feedrecentchanges [open in sandbox]
- Show recent changes for 30 days.
- api.php?action=feedrecentchanges&days=30 [open in sandbox]
action=feedwatchlist
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0+
Returns a watchlist feed.
- feedformat
The format of the feed.
- One of the following values: rss, atom
- Default: rss
- hours
List pages modified within this many hours from now.
- The value must be between 1 and 72.
- Type: integer
- Default: 24
- linktosections
Link directly to changed sections if possible.
- Type: boolean (details)
- allrev
Include multiple revisions of the same page within given timeframe.
- Type: boolean (details)
- wlowner
Used along with token to access a different user's watchlist.
- Type: user name
- wltoken
A security token (available in the user's preferences) to allow access to another user's watchlist.
- wlshow
Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set show=minor|!anon.
- Values (separate with |): minor, !minor, bot, !bot, anon, !anon, patrolled, !patrolled, unread, !unread
- wltype
Which types of changes to show:
- edit
- Regular page edits.
- new
- Page creations.
- log
- Log entries.
- external
- External changes.
- categorize
- Category membership changes.
- Values (separate with |): edit, new, log, external, categorize
- Default: edit|new|log|categorize
- wlexcludeuser
Don't list changes by this user.
- Type: user name
- Show the watchlist