CINXE.COM
API:Edit - MediaWiki
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>API:Edit - MediaWiki</title> <script>(function(){var className="client-js vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )mediawikiwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"48a4e1e3-8e9e-4341-b7eb-bfe43ce37569","wgCanonicalNamespace":"API","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":104,"wgPageName":"API:Edit","wgTitle":"Edit","wgCurRevisionId":6728504,"wgRevisionId":6728504,"wgArticleId":18212,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["MediaWiki action API","MediaWiki API"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"API:Edit","wgRelevantArticleId":18212,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["autoconfirmed"],"wgRestrictionMove":["autoconfirmed"],"wgNoticeProject":"mediawiki","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true, "wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgInternalRedirectTargetUrl":"/wiki/API:Edit","wgTranslatePageTranslation":"source","wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"personal","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"]};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.translate.tag.languages":"ready","mediawiki.hlist":"ready","mediawiki.apipretty":"ready","ext.pygments":"ready","ext.cite.styles":"ready", "skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","ext.translate.edit.documentation.styles":"ready","ext.translate":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.pt":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.pygments.view","ext.cite.ux-enhancements","site","mediawiki.page.ready","jquery.tablesorter","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.translate.pagetranslation.uls","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.checkUser.clientHints"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2Ctranslate%2CwikimediaBadges%7Cext.translate.edit.documentation.styles%7Cext.translate.tag.languages%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.tablesorter.styles%7Cmediawiki.apipretty%2Chlist%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:site_name" content="MediaWiki"> <meta property="og:title" content="API:Edit - MediaWiki"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//m.mediawiki.org/wiki/API:Edit"> <link rel="apple-touch-icon" href="/static/apple-touch/mediawiki.png"> <link rel="icon" href="/static/favicon/mediawiki.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="MediaWiki (en)"> <link rel="EditURI" type="application/rsd+xml" href="//www.mediawiki.org/w/api.php?action=rsd"> <link rel="canonical" href="https://www.mediawiki.org/wiki/API:Edit"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> <link rel="alternate" type="application/atom+xml" title="MediaWiki Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-104 ns-subject page-API_Edit rootpage-API_Edit skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/MediaWiki" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-mw-download" class="mw-list-item"><a href="/wiki/Download"><span>Get MediaWiki</span></a></li><li id="n-mw-extensions" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Category:Extensions"><span>Get extensions</span></a></li><li id="n-blog-text" class="mw-list-item"><a href="https://techblog.wikimedia.org/"><span>Tech blog</span></a></li><li id="n-mw-contribute" class="mw-list-item"><a href="/wiki/Special:MyLanguage/How_to_contribute"><span>Contribute</span></a></li> </ul> </div> </div> <div id="p-support" class="vector-menu mw-portlet mw-portlet-support" > <div class="vector-menu-heading"> Support </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Help:Contents" title="The place to find out"><span>User help</span></a></li><li id="n-mw-faq" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:FAQ"><span>FAQ</span></a></li><li id="n-mw-manual" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:Contents"><span>Technical manual</span></a></li><li id="n-mw-supportdesk" class="mw-list-item"><a href="/wiki/Project:Support_desk"><span>Support desk</span></a></li><li id="n-mw-communication" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Communication"><span>Communication</span></a></li> </ul> </div> </div> <div id="p-development" class="vector-menu mw-portlet mw-portlet-development" > <div class="vector-menu-heading"> Development </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mw-developerportal" class="mw-list-item"><a href="https://developer.wikimedia.org/"><span>Developer portal</span></a></li><li id="n-svn-statistics" class="mw-list-item"><a href="/wiki/Development_statistics"><span>Code statistics</span></a></li> </ul> </div> </div> <div id="p-mediawiki.org" class="vector-menu mw-portlet mw-portlet-mediawiki_org" > <div class="vector-menu-heading"> mediawiki.org </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/Project:Help" title="About the project, what you can do, where to find things"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-mw-translate" class="mw-list-item"><a href="/wiki/Special:LanguageStats"><span>Translate content</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x"><span>Random page</span></a></li><li id="n-mw-discussion" class="mw-list-item"><a href="/wiki/Project:Village_Pump"><span>Village pump</span></a></li><li id="n-Sandboxlink-portlet-label" class="mw-list-item"><a href="/wiki/Project:Sandbox"><span>Sandbox</span></a></li> </ul> </div> </div> <div id="p-lang" class="vector-menu mw-portlet mw-portlet-lang" > <div class="vector-menu-heading"> In other languages </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:NewItem?site=mediawikiwiki&page=API%3AEdit" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/MediaWiki" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/mediawikiwiki.svg" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="MediaWiki" src="/static/images/mobile/copyright/mediawikiwiki-wordmark.svg" style="width: 7.5em; height: 1.125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search MediaWiki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search MediaWiki" aria-label="Search MediaWiki" autocapitalize="sentences" title="Search MediaWiki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-uls" class="mw-list-item active user-links-collapsible-item"><a data-mw="interface" href="#" class="uls-trigger cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>English</span></a> </li> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=API%3AEdit" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=API%3AEdit" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=API%3AEdit" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=API%3AEdit" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-API_documentation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#API_documentation"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>API documentation</span> </div> </a> <ul id="toc-API_documentation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Example"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Example</span> </div> </a> <button aria-controls="toc-Example-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Example subsection</span> </button> <ul id="toc-Example-sublist" class="vector-toc-list"> <li id="toc-POST_request" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#POST_request"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>POST request</span> </div> </a> <ul id="toc-POST_request-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Response" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Response"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Response</span> </div> </a> <ul id="toc-Response-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Sample_code" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Sample_code"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Sample code</span> </div> </a> <button aria-controls="toc-Sample_code-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Sample code subsection</span> </button> <ul id="toc-Sample_code-sublist" class="vector-toc-list"> <li id="toc-Python" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Python"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Python</span> </div> </a> <ul id="toc-Python-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PHP" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#PHP"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>PHP</span> </div> </a> <ul id="toc-PHP-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-JavaScript" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#JavaScript"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>JavaScript</span> </div> </a> <ul id="toc-JavaScript-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-MediaWiki_JS" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MediaWiki_JS"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>MediaWiki JS</span> </div> </a> <ul id="toc-MediaWiki_JS-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-User_cases" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#User_cases"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>User cases</span> </div> </a> <button aria-controls="toc-User_cases-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle User cases subsection</span> </button> <ul id="toc-User_cases-sublist" class="vector-toc-list"> <li id="toc-Edit_conflicts" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Edit_conflicts"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Edit conflicts</span> </div> </a> <ul id="toc-Edit_conflicts-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Large_edits" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Large_edits"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Large edits</span> </div> </a> <ul id="toc-Large_edits-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-CAPTCHAs" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#CAPTCHAs"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>CAPTCHAs</span> </div> </a> <ul id="toc-CAPTCHAs-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Possible_errors" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Possible_errors"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Possible errors</span> </div> </a> <ul id="toc-Possible_errors-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Parameter_history" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Parameter_history"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Parameter history</span> </div> </a> <ul id="toc-Parameter_history-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Additional_notes" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Additional_notes"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Additional notes</span> </div> </a> <ul id="toc-Additional_notes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">API</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">Edit</span></h1> <div class="mw-indicators"> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-api" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/API:Edit" title="View the subject page [c]" accesskey="c"><span>API</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/API_talk:Edit" rel="discussion" title="Discussion about the content page [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/API:Edit"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Edit&action=edit" title="This page is protected. You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Edit&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/API:Edit"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Edit&action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Edit&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/API:Edit" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/API:Edit" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=API:Edit&oldid=6728504" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=API:Edit&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=API%3AEdit&id=6728504&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FAPI%3AEdit"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FAPI%3AEdit"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Special:Book&bookcmd=book_creator&referer=API%3AEdit"><span>Create a book</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=API%3AEdit&action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=API:Edit&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects emptyPortlet" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div id="siteSub" class="noprint">From mediawiki.org</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-pt-translate-header noprint nomobile" dir="ltr" lang="en"><a href="/w/index.php?title=Special:Translate&group=page-API%3AEdit&action=page&filter=&action_source=translate_page" title="Special:Translate">Translate this page</a></div><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="mw-pt-languages noprint navigation-not-searchable" lang="en" dir="ltr"><div class="mw-pt-languages-label">Languages:</div><ul class="mw-pt-languages-list"><li><a href="/wiki/API:Edit/id" class="mw-pt-progress mw-pt-progress--low" title="API:Edit (7% translated)" lang="id" dir="ltr">Bahasa Indonesia</a></li> <li><a href="/wiki/API:Edit/de" class="mw-pt-progress mw-pt-progress--high" title="API:Bearbeiten (97% translated)" lang="de" dir="ltr">Deutsch</a></li> <li><span class="mw-pt-languages-ui mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete" lang="en" dir="ltr">English</span></li> <li><a href="/wiki/API:Edit/vi" class="mw-pt-progress mw-pt-progress--low" title="API:Edit/vi (0% translated)" lang="vi" dir="ltr">Tiếng Việt</a></li> <li><a href="/wiki/API:Edit/tr" class="mw-pt-progress mw-pt-progress--high" title="API:Edit (95% translated)" lang="tr" dir="ltr">Türkçe</a></li> <li><a href="/wiki/API:Edit/yo" class="mw-pt-progress mw-pt-progress--low" title="API:Edit/yo (1% translated)" lang="yo" dir="ltr">Yorùbá</a></li> <li><a href="/wiki/API:Edit/diq" class="mw-pt-progress mw-pt-progress--low" title="API:Edit/diq (4% translated)" lang="diq" dir="ltr">Zazaki</a></li> <li><a href="/wiki/API:Edit/da" class="mw-pt-progress mw-pt-progress--med" title="API:Edit/da (21% translated)" lang="da" dir="ltr">dansk</a></li> <li><a href="/wiki/API:Edit/es" class="mw-pt-progress mw-pt-progress--high" title="API:Edita (94% translated)" lang="es" dir="ltr">español</a></li> <li><a href="/wiki/API:Edit/fr" class="mw-pt-progress mw-pt-progress--complete" title="API:Edit (100% translated)" lang="fr" dir="ltr">français</a></li> <li><a href="/wiki/API:Edit/pl" class="mw-pt-progress mw-pt-progress--med" title="API:Edit (24% translated)" lang="pl" dir="ltr">polski</a></li> <li><a href="/wiki/API:Edit/pt-br" class="mw-pt-progress mw-pt-progress--med" title="API:Editar (52% translated)" lang="pt-BR" dir="ltr">português do Brasil</a></li> <li><a href="/wiki/API:Edit/cs" class="mw-pt-progress mw-pt-progress--complete" title="API:Úpravy (100% translated)" lang="cs" dir="ltr">čeština</a></li> <li><a href="/wiki/API:Edit/ru" class="mw-pt-progress mw-pt-progress--med" title="API:Edit/ru (26% translated)" lang="ru" dir="ltr">русский</a></li> <li><a href="/wiki/API:Edit/tg" class="mw-pt-progress mw-pt-progress--low" title="API:Edit/tg (0% translated)" lang="tg" dir="ltr">тоҷикӣ</a></li> <li><a href="/wiki/API:Edit/uk" class="mw-pt-progress mw-pt-progress--high" title="API:Редагування (76% translated)" lang="uk" dir="ltr">українська</a></li> <li><a href="/wiki/API:Edit/th" class="mw-pt-progress mw-pt-progress--med" title="API:Edit (28% translated)" lang="th" dir="ltr">ไทย</a></li> <li><a href="/wiki/API:Edit/zh" class="mw-pt-progress mw-pt-progress--complete" title="API:编辑 (100% translated)" lang="zh" dir="ltr">中文</a></li> <li><a href="/wiki/API:Edit/ja" class="mw-pt-progress mw-pt-progress--med" title="API:編集 (30% translated)" lang="ja" dir="ltr">日本語</a></li></ul></div> <style data-mw-deduplicate="TemplateStyles:r6651108">.mw-parser-output table.ombox{margin:4px 10%;border-collapse:collapse;border:1px solid #a2a9b1;background-color:#f8f9fa;color:#333;box-sizing:border-box}.mw-parser-output .ombox td.mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ombox th.mbox-text,.mw-parser-output .ombox td.mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .ombox td.mbox-image{border:none;text-align:center;padding:2px 0 2px 0.9em}.mw-parser-output .ombox td.mbox-imageright{border:none;text-align:center;padding:2px 0.9em 2px 0}.mw-parser-output table.ombox-notice{border-color:#a2a9b1}.mw-parser-output table.ombox-speedy{background-color:#fee7e6;color:#333}.mw-parser-output table.ombox-speedy,.mw-parser-output table.ombox-delete{border-color:#b32424;border-width:2px}.mw-parser-output table.ombox-content{border-color:#f28500}.mw-parser-output table.ombox-style{border-color:#fc3}.mw-parser-output table.ombox-move{border-color:#9932cc}.mw-parser-output table.ombox-protection{border-color:#a2a9b1;border-width:2px}html body.mediawiki .mw-parser-output .ombox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;box-sizing:border-box;width:238px;font-size:88%;line-height:1.25em}@media screen{html.skin-theme-clientpref-night .mw-parser-output table.ombox{background-color:transparent;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output table.ombox{background-color:transparent;color:inherit}}</style><table class="skin-nightmode-reset-color ombox ombox-content plainlinks" role="presentation" style="display: block; color:#222; border:solid 1px #A8A8A8; padding: .5em 1em; margin:0.5em 0em;"><tbody><tr><td class="mbox-image"><span class="skin-invert-image" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/API_-_The_Noun_Project.svg/30px-API_-_The_Noun_Project.svg.png" decoding="async" width="30" height="30" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/API_-_The_Noun_Project.svg/45px-API_-_The_Noun_Project.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f6/API_-_The_Noun_Project.svg/60px-API_-_The_Noun_Project.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></td><td class="mbox-text">This page is part of the <a href="/wiki/Special:MyLanguage/API:Main_page" title="Special:MyLanguage/API:Main page">MediaWiki Action API</a> documentation.</td></tr></tbody></table> <style data-mw-deduplicate="TemplateStyles:r6605224">.mw-parser-output .tpl-sidebar{background-color:var(--background-color-interactive-subtle,#f8f9fa);border:1px solid var(--border-color-divider,#a2a9b1);color:var(--color-base,#202122);width:22em;padding:.2em;text-align:center;line-height:1.4em;font-size:88%}.mw-parser-output .tpl-sidebar-pagedir-ltr,.mw-parser-output .tpl-sidebar.tpl-sidebar-floatright{float:right;clear:right;margin:.5em 0 1em 1em}.mw-parser-output .tpl-sidebar-pagedir-rtl,.mw-parser-output .tpl-sidebar.tpl-sidebar-floatleft{float:left;clear:left;margin:.5em 1em 1em 0}.mw-parser-output .tpl-sidebar.tpl-sidebar-floatnone{float:none;clear:both;margin:.5em 0 1em 1em}.mw-parser-output .tpl-sidebar>caption{padding-bottom:.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .tpl-sidebar>tbody>tr>th,.mw-parser-output .tpl-sidebar>tbody>tr>td{padding:0}.mw-parser-output .tpl-sidebar .tpl-sidebar-topimage>td{padding:.4em 0}.mw-parser-output .tpl-sidebar-imagecaption{padding-top:.2em;line-height:1.2em}.mw-parser-output .tpl-sidebar .tpl-sidebar-pretitle>td{padding-top:.4em;line-height:1.2em}.mw-parser-output .tpl-sidebar .tpl-sidebar-topimage+.tpl-sidebar-pretitle>td{padding-top:.2em}.mw-parser-output .tpl-sidebar .tpl-sidebar-title>th{padding:.2em .4em .2em;font-size:145%;line-height:1.2em}.mw-parser-output .tpl-sidebar .tpl-sidebar-pretitle+.tpl-sidebar-title>th{padding-top:0}.mw-parser-output .tpl-sidebar .tpl-sidebar-image>td{padding:.2em 0 .4em}.mw-parser-output .tpl-sidebar .tpl-sidebar-abovebelow>td{padding:.3em .4em;font-weight:bold}.mw-parser-output .tpl-sidebar .tpl-sidebar-heading>th{padding-top:.2em}.mw-parser-output .tpl-sidebar .tpl-sidebar-image~.tpl-sidebar-heading-first>th{padding-top:.4em}.mw-parser-output .tpl-sidebar .tpl-sidebar-content>td{padding-bottom:.2em}.mw-parser-output .tpl-sidebar :not(.tpl-sidebar-heading)+.tpl-sidebar-content-first>td{padding-top:.2em}.mw-parser-output .tpl-sidebar-navbar>td{font-size:115%}.mw-parser-output .tpl-sidebar-pagedir-ltr .tpl-sidebar-navbar>td{text-align:right}.mw-parser-output .tpl-sidebar-pagedir-rtl .tpl-sidebar-navbar>td{text-align:left}</style><table class="vertical-navbox tpl-sidebar tpl-sidebar-pagedir-ltr nowraplinks noprint" role="navigation" style="width:22em; border-spacing: 0.4em 0; text-align: left; padding: 1.5em; padding: min(1.5em, 2%); margin: 0 0 2em 2em; width: 320px; max-width: 40%;"><tbody><tr class="tpl-sidebar-title"> <th class="" style="font-size: 19px; font-weight: 700; padding: 0;"><a href="/wiki/Special:MyLanguage/API:Main_page" title="Special:MyLanguage/API:Main page">MediaWiki Action API</a><span style="display:none"><a href="/wiki/API:Main_page" title="API:Main page"> </a></span></th> </tr><tr class="tpl-sidebar-heading tpl-sidebar-heading-first"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Basics</th> </tr><tr class="tpl-sidebar-content tpl-sidebar-content-first"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Etiquette" title="Special:MyLanguage/API:Etiquette">Etiquette and usage guidelines</a><span style="display:none"><a href="/wiki/API:Etiquette" title="API:Etiquette"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Query" title="Special:MyLanguage/API:Query">All query modules</a><span style="display:none"><a href="/wiki/API:Query" title="API:Query"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Properties" title="Special:MyLanguage/API:Properties">All page properties</a><span style="display:none"><a href="/wiki/API:Properties" title="API:Properties"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Lists" title="Special:MyLanguage/API:Lists">All list modules</a><span style="display:none"><a href="/wiki/API:Lists" title="API:Lists"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Meta" title="Special:MyLanguage/API:Meta">All meta modules</a><span style="display:none"><a href="/wiki/API:Meta" title="API:Meta"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Data_formats" title="Special:MyLanguage/API:Data formats">Output formats</a><span style="display:none"><a href="/wiki/API:Data_formats" title="API:Data formats"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Authentication</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Tokens" title="Special:MyLanguage/API:Tokens">Get tokens for data modifying operations</a><span style="display:none"><a href="/wiki/API:Tokens" title="API:Tokens"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Login" title="Special:MyLanguage/API:Login">Login</a><span style="display:none"><a href="/wiki/API:Login" title="API:Login"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Logout" title="Special:MyLanguage/API:Logout">Logout</a><span style="display:none"><a href="/wiki/API:Logout" title="API:Logout"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Assert" title="Special:MyLanguage/API:Assert">Verifying authentication (assertions)</a><span style="display:none"><a href="/wiki/API:Assert" title="API:Assert"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Accounts and Users</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Account_creation" title="Special:MyLanguage/API:Account creation">Create an account</a><span style="display:none"><a href="/wiki/API:Account_creation" title="API:Account creation"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Block" title="Special:MyLanguage/API:Block">Block or unblock a user</a><span style="display:none"><a href="/wiki/API:Block" title="API:Block"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Userinfo" title="Special:MyLanguage/API:Userinfo">Get info about the current user</a><span style="display:none"><a href="/wiki/API:Userinfo" title="API:Userinfo"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Watchlist_feed" title="Special:MyLanguage/API:Watchlist feed">Get the current user's watchlist as a feed</a><span style="display:none"><a href="/wiki/API:Watchlist_feed" title="API:Watchlist feed"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Options" title="Special:MyLanguage/API:Options">Change user options</a><span style="display:none"><a href="/wiki/API:Options" title="API:Options"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:User_group_membership" title="Special:MyLanguage/API:User group membership">Change user group membership</a><span style="display:none"><a href="/wiki/API:User_group_membership" title="API:User group membership"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Emailuser" title="Special:MyLanguage/API:Emailuser">Send an email</a><span style="display:none"><a href="/wiki/API:Emailuser" title="API:Emailuser"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Page Operations</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><b><a href="/wiki/Special:MyLanguage/API:Edit" title="Special:MyLanguage/API:Edit">Create and edit a page</a></b><span style="display:none"><a class="mw-selflink selflink"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Get_the_contents_of_a_page" title="Special:MyLanguage/API:Get the contents of a page">Get the contents of a page</a><span style="display:none"><a href="/wiki/API:Get_the_contents_of_a_page" title="API:Get the contents of a page"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Upload" title="Special:MyLanguage/API:Upload">Upload a file</a><span style="display:none"><a href="/wiki/API:Upload" title="API:Upload"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Import" title="Special:MyLanguage/API:Import">Import a page</a><span style="display:none"><a href="/wiki/API:Import" title="API:Import"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Delete" title="Special:MyLanguage/API:Delete">Delete a page</a><span style="display:none"><a href="/wiki/API:Delete" title="API:Delete"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Parsing_wikitext" title="Special:MyLanguage/API:Parsing wikitext">Parse content of a page</a><span style="display:none"><a href="/wiki/API:Parsing_wikitext" title="API:Parsing wikitext"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Watch" title="Special:MyLanguage/API:Watch">Watch or unwatch a page</a><span style="display:none"><a href="/wiki/API:Watch" title="API:Watch"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Purge" title="Special:MyLanguage/API:Purge">Purge cache for page(s)</a><span style="display:none"><a href="/wiki/API:Purge" title="API:Purge"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Rollback" title="Special:MyLanguage/API:Rollback">Rollback a page</a><span style="display:none"><a href="/wiki/API:Rollback" title="API:Rollback"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Move" title="Special:MyLanguage/API:Move">Move a page</a><span style="display:none"><a href="/wiki/API:Move" title="API:Move"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Patrol" title="Special:MyLanguage/API:Patrol">Patrol a page or revision</a><span style="display:none"><a href="/wiki/API:Patrol" title="API:Patrol"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Undelete" title="Special:MyLanguage/API:Undelete">Restore revisions of a deleted page</a><span style="display:none"><a href="/wiki/API:Undelete" title="API:Undelete"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Protect" title="Special:MyLanguage/API:Protect">Change a page's protection level</a><span style="display:none"><a href="/wiki/API:Protect" title="API:Protect"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:SetPageLanguage" title="Special:MyLanguage/API:SetPageLanguage">Change a page's language</a><span style="display:none"><a href="/wiki/API:SetPageLanguage" title="API:SetPageLanguage"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Changing_wiki_content" title="Special:MyLanguage/API:Changing wiki content">More...</a><span style="display:none"><a href="/wiki/API:Changing_wiki_content" title="API:Changing wiki content"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Search</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Opensearch" title="Special:MyLanguage/API:Opensearch">Search wiki pages by title (OpenSearch)</a><span style="display:none"><a href="/wiki/API:Opensearch" title="API:Opensearch"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Search" title="Special:MyLanguage/API:Search">Advanced search for wiki pages by title or text</a><span style="display:none"><a href="/wiki/API:Search" title="API:Search"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Geosearch" title="Special:MyLanguage/API:Geosearch">Search wiki pages near a location</a><span style="display:none"><a href="/wiki/API:Geosearch" title="API:Geosearch"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Languagesearch" title="Special:MyLanguage/API:Languagesearch">Search for a language name</a><span style="display:none"><a href="/wiki/API:Languagesearch" title="API:Languagesearch"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Prefixsearch" title="Special:MyLanguage/API:Prefixsearch">Perform a prefix search for page titles</a><span style="display:none"><a href="/wiki/API:Prefixsearch" title="API:Prefixsearch"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Developer Utilities</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Client_code" title="Special:MyLanguage/API:Client code">Access libraries</a><span style="display:none"><a href="/wiki/API:Client_code" title="API:Client code"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Cross-site_requests" title="Special:MyLanguage/API:Cross-site requests">Cross-site requests</a><span style="display:none"><a href="/wiki/API:Cross-site_requests" title="API:Cross-site requests"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Extensions" title="Special:MyLanguage/API:Extensions">Creating an API module in an extension</a><span style="display:none"><a href="/wiki/API:Extensions" title="API:Extensions"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Calling_internally" title="Special:MyLanguage/API:Calling internally">Using the API in MediaWiki and extensions</a><span style="display:none"><a href="/wiki/API:Calling_internally" title="API:Calling internally"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Restricting_API_usage" title="Special:MyLanguage/API:Restricting API usage">Restricting API usage</a><span style="display:none"><a href="/wiki/API:Restricting_API_usage" title="API:Restricting API usage"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Localisation" title="Special:MyLanguage/API:Localisation">Localisation</a><span style="display:none"><a href="/wiki/API:Localisation" title="API:Localisation"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Implementation_Strategy" title="Special:MyLanguage/API:Implementation Strategy">Implementation Strategy</a><span style="display:none"><a href="/wiki/API:Implementation_Strategy" title="API:Implementation Strategy"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Tutorials</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><a href="/wiki/Special:MyLanguage/API:Tutorial" title="Special:MyLanguage/API:Tutorial">Action API Tutorial</a><span style="display:none"><a href="/wiki/API:Tutorial" title="API:Tutorial"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Article_ideas_generator" title="Special:MyLanguage/API:Article ideas generator">Article ideas generator</a><span style="display:none"><a href="/wiki/API:Article_ideas_generator" title="API:Article ideas generator"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Nearby_places_viewer" title="Special:MyLanguage/API:Nearby places viewer">Nearby places viewer</a><span style="display:none"><a href="/wiki/API:Nearby_places_viewer" title="API:Nearby places viewer"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Picture_of_the_day_viewer" title="Special:MyLanguage/API:Picture of the day viewer">Picture of the day viewer</a><span style="display:none"><a href="/wiki/API:Picture_of_the_day_viewer" title="API:Picture of the day viewer"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Holidays_viewer" title="Special:MyLanguage/API:Holidays viewer">Holidays viewer</a><span style="display:none"><a href="/wiki/API:Holidays_viewer" title="API:Holidays viewer"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-navbar"> <td style=""><style data-mw-deduplicate="TemplateStyles:r4692751">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar ul{display:inline;white-space:nowrap}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em;width:6em}</style><span class="noprint plainlinks navbar" style=""><small><span style="white-space:nowrap;word-spacing:-.12em;"><a href="/wiki/Template:API" title="Template:API"><span style="" title="View this template">v</span></a><span style=""> <b>·</b> </span><a class="external text" href="https://www.mediawiki.org/wiki/Template_talk:API"><span style="" title="Discuss this template">d</span></a><span style=""> <b>·</b> </span><a class="external text" href="https://www.mediawiki.org/w/index.php?title=Template:API&action=edit"><span style="" title="Edit this template">e</span></a></span></small></span></td> </tr> </tbody></table> <style data-mw-deduplicate="TemplateStyles:r4199130">.mw-parser-output .mw-version{border:1px solid #72777d;font-size:80%;line-height:1.2;border-collapse:collapse}.mw-parser-output .mw-version-ltr{float:right;margin:0 0 .5em .5em;text-align:right}.mw-parser-output .mw-version-rtl{float:left;margin:0 .5em .5em 0;text-align:left}.mw-parser-output .mw-version td{padding:.1em .3em}.mw-parser-output .mw-version-versionbox{border:5px solid #00af89;text-align:center}.mw-parser-output .mw-version-versionnumber{font-weight:bold;font-size:180%}.mw-parser-output .mw-version-version .mw-version-versionbox{border-color:#c8ccd1}.mw-parser-output .mw-version.mw-version-version2 .mw-version-versionbox{border-top-color:#c8ccd1;border-right-color:#c8ccd1;border-left-color:#c8ccd1}.mw-parser-output .mw-version-version-unsupported .mw-version-versionbox{border-color:#d33}.mw-parser-output .mw-version.mw-version-version2-unsupported .mw-version-versionbox{border-top-color:#d33;border-right-color:#d33;border-left-color:#d33}.mw-parser-output .mw-version-version-legacy .mw-version-versionbox{border-color:#f93}.mw-parser-output .mw-version.mw-version-version2-legacy .mw-version-versionbox{border-top-color:#f93;border-right-color:#f93;border-left-color:#f93}.mw-parser-output .mw-version-version-stable .mw-version-versionbox,.mw-parser-output .mw-version.mw-version.mw-version-and-later .mw-version-versionbox{border-color:#00af89}.mw-parser-output .mw-version.mw-version-version2-stable .mw-version-versionbox{border-top-color:#00af89;border-right-color:#00af89;border-left-color:#00af89}.mw-parser-output .mw-version-version-future .mw-version-versionbox{border-color:#8080c0}.mw-parser-output .mw-version.mw-version-version2-future .mw-version-versionbox{border-top-color:#8080c0;border-right-color:#8080c0;border-left-color:#8080c0}.mw-parser-output .mw-version-version-alpha .mw-version-versionbox{border-style:dotted}</style> <table class="mw-version mw-version-ltr mw-version-version mw-version-version-unsupported mw-version-and-later"><tbody><tr> <td>MediaWiki version:</td> <td class="mw-version-versionbox" title="The latest stable version is 1.42"><div class="mw-version-versionnumber"><small>≥</small> 1.13</div></td> </tr></tbody></table> <p><b>POST request</b> to edit a page. </p> <meta property="mw:PageProp/toc" /> <p><span class="anchor" id="Parameters"></span> </p> <div class="mw-heading mw-heading2"><h2 id="API_documentation">API documentation</h2></div> <div style="color: var(--color-base, #202122); background-color: var(--background-color-interactive-subtle, #f8f9fa); padding: 20px; border: 1px solid var(--border-color-divider, #a2a9b1); overflow: hidden;"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651108"><table class="ombox ombox-notice plainlinks" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><a href="/wiki/File:Oxygen480-categories-preferences-system.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/0/00/Oxygen480-categories-preferences-system.svg/20px-Oxygen480-categories-preferences-system.svg.png" decoding="async" width="20" height="20" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/00/Oxygen480-categories-preferences-system.svg/30px-Oxygen480-categories-preferences-system.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/00/Oxygen480-categories-preferences-system.svg/40px-Oxygen480-categories-preferences-system.svg.png 2x" data-file-width="128" data-file-height="128" /></a></span></td><td class="mbox-text">The following documentation is the output of <a href="/wiki/Special:ApiHelp/edit" title="Special:ApiHelp/edit">Special:<wbr />ApiHelp/<wbr />edit</a>, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).</td></tr></tbody></table> <div style="word-wrap:break-word; overflow-wrap:break-word"><h2 class="apihelp-header apihelp-module-name" dir="ltr" lang="en" id="edit">action=edit</h2><div class="apihelp-linktrail">(<a href="/wiki/Special:ApiHelp/main" class="apihelp-linktrail" dir="ltr" lang="en">main</a> | <b dir="ltr" lang="en">edit</b>)</div> <div class="apihelp-block apihelp-flags"><ul><li><span class="apihelp-flag-readrights">This module requires read rights.</span></li><li><span class="apihelp-flag-writerights">This module requires write rights.</span></li><li><span class="apihelp-flag-mustbeposted">This module only accepts POST requests.</span></li><li><span class="apihelp-source">Source: <span dir="ltr" lang="en">MediaWiki</span></span></li><li><span class="apihelp-license">License: <a href="/wiki/Special:Version/License/MediaWiki" title="Special:Version/License/MediaWiki"><span dir="ltr" lang="en">GPL-2.0-or-later</span></a></span></li></ul></div> <p>Create and edit pages. </p> <div class="apihelp-block apihelp-help-urls"><ul><li><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/API:Edit" dir="ltr">https://www.mediawiki.org/wiki/Special:MyLanguage/API:Edit</a></li></ul></div> <div class="apihelp-block apihelp-parameters"><div class="apihelp-block-head">Specific parameters:</div><div class="apihelp-block-header">Other general parameters are available.</div><dl><dt><span dir="ltr" lang="en" id="edit:title">title</span></dt><dd class="description"><p>Title of the page to edit. Cannot be used together with <var>pageid</var>. </p></dd><dt><span dir="ltr" lang="en" id="edit:pageid">pageid</span></dt><dd class="description"><p>Page ID of the page to edit. Cannot be used together with <var>title</var>. </p></dd><dd class="info">Type: integer</dd><dt><span dir="ltr" lang="en" id="edit:section">section</span></dt><dd class="description"><p>Section identifier. <kbd>0</kbd> for the top section, <kbd>new</kbd> for a new section. Often a positive integer, but can also be non-numeric. </p></dd><dt><span dir="ltr" lang="en" id="edit:sectiontitle">sectiontitle</span></dt><dd class="description"><p>The title for a new section when using <var>section=new</var>. </p></dd><dt><span dir="ltr" lang="en" id="edit:text">text</span></dt><dd class="description"><p>Page content. </p></dd><dt><span dir="ltr" lang="en" id="edit:summary">summary</span></dt><dd class="description"><p>Edit summary. </p><p>When this parameter is not provided or empty, <a href="/wiki/Special:MyLanguage/Autosummary" title="Special:MyLanguage/Autosummary">an edit summary may be generated automatically</a>. </p><p>When using <var>section=new</var> and <var>sectiontitle</var> is not provided, the value of this parameter is used for the section title instead, and an edit summary is generated automatically. </p></dd><dt><span dir="ltr" lang="en" id="edit:tags">tags</span></dt><dd class="description"><p>Change tags to apply to the revision. </p></dd><dd class="info">Values (separate with <kbd>|</kbd> or <a href="/w/api.php?action=help&modules=main#main/datatypes">alternative</a>): AWB, convenient-discussions</dd><dt><span dir="ltr" lang="en" id="edit:minor">minor</span></dt><dd class="description"><p>Mark this edit as a minor edit. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:notminor">notminor</span></dt><dd class="description"><p>Do not mark this edit as a minor edit even if the "Mark all edits minor by default" user preference is set. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:bot">bot</span></dt><dd class="description"><p>Mark this edit as a bot edit. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:baserevid">baserevid</span></dt><dd class="description"><p>ID of the base revision, used to detect edit conflicts. May be obtained through <a href="/w/api.php?action=help&modules=query%2Brevisions">action=query&prop=revisions</a>. Self-conflicts cause the edit to fail unless basetimestamp is set. </p></dd><dd class="info">Type: integer</dd><dt><span dir="ltr" lang="en" id="edit:basetimestamp">basetimestamp</span></dt><dd class="description"><p>Timestamp of the base revision, used to detect edit conflicts. May be obtained through <a href="/w/api.php?action=help&modules=query%2Brevisions">action=query&prop=revisions&rvprop=timestamp</a>. Self-conflicts are ignored. </p></dd><dd class="info">Type: timestamp (<a href="/w/api.php?action=help&modules=main#main/datatype/timestamp">allowed formats</a>)</dd><dt><span dir="ltr" lang="en" id="edit:starttimestamp">starttimestamp</span></dt><dd class="description"><p>Timestamp when the editing process began, used to detect edit conflicts. An appropriate value may be obtained using <var><a href="/w/api.php?action=help&modules=main">curtimestamp</a></var> when beginning the edit process (e.g. when loading the page content to edit). </p></dd><dd class="info">Type: timestamp (<a href="/w/api.php?action=help&modules=main#main/datatype/timestamp">allowed formats</a>)</dd><dt><span dir="ltr" lang="en" id="edit:recreate">recreate</span></dt><dd class="description"><p>Override any errors about the page having been deleted in the meantime. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:createonly">createonly</span></dt><dd class="description"><p>Don't edit the page if it exists already. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:nocreate">nocreate</span></dt><dd class="description"><p>Throw an error if the page doesn't exist. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:watch">watch</span></dt><dd class="info"><strong class="apihelp-deprecated">Deprecated.</strong></dd><dd class="description"><p>Add the page to the current user's watchlist. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:unwatch">unwatch</span></dt><dd class="info"><strong class="apihelp-deprecated">Deprecated.</strong></dd><dd class="description"><p>Remove the page from the current user's watchlist. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:watchlist">watchlist</span></dt><dd class="description"><p>Unconditionally add or remove the page from the current user's watchlist, use preferences (ignored for bot users) or do not change watch. </p></dd><dd class="info">One of the following values: nochange, preferences, unwatch, watch</dd><dd class="info">Default: preferences</dd><dt><span dir="ltr" lang="en" id="edit:watchlistexpiry">watchlistexpiry</span></dt><dd class="description"><p>Watchlist expiry timestamp. Omit this parameter entirely to leave the current expiry unchanged. </p></dd><dd class="info">Type: expiry (<a href="/w/api.php?action=help&modules=main#main/datatype/expiry">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:md5">md5</span></dt><dd class="description"><p>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. </p></dd><dt><span dir="ltr" lang="en" id="edit:prependtext">prependtext</span></dt><dd class="description"><p>Add this text to the beginning of the page or section. Overrides text. </p></dd><dt><span dir="ltr" lang="en" id="edit:appendtext">appendtext</span></dt><dd class="description"><p>Add this text to the end of the page or section. Overrides text. </p><p>Use section=new to append a new section, rather than this parameter. </p></dd><dt><span dir="ltr" lang="en" id="edit:undo">undo</span></dt><dd class="description"><p>Undo this revision. Overrides text, prependtext and appendtext. </p></dd><dd class="info">Type: integer</dd><dd class="info">The value must be no less than 0.</dd><dt><span dir="ltr" lang="en" id="edit:undoafter">undoafter</span></dt><dd class="description"><p>Undo all revisions from undo to this one. If not set, just undo one revision. </p></dd><dd class="info">Type: integer</dd><dd class="info">The value must be no less than 0.</dd><dt><span dir="ltr" lang="en" id="edit:redirect">redirect</span></dt><dd class="description"><p>Automatically resolve redirects. </p></dd><dd class="info">Type: boolean (<a href="/w/api.php?action=help&modules=main#main/datatype/boolean">details</a>)</dd><dt><span dir="ltr" lang="en" id="edit:contentformat">contentformat</span></dt><dd class="description"><p>Content serialization format used for the input text. </p></dd><dd class="info">One of the following values: application/json, application/octet-stream, application/unknown, application/x-binary, text/css, text/javascript, text/plain, text/unknown, text/x-wiki, unknown/unknown</dd><dt><span dir="ltr" lang="en" id="edit:contentmodel">contentmodel</span></dt><dd class="description"><p>Content model of the new content. </p></dd><dd class="info">One of the following values: GadgetDefinition, Json.JsonConfig, JsonSchema, Map.JsonConfig, MassMessageListContent, NewsletterContent, Scribunto, SecurePoll, Tabular.JsonConfig, css, flow-board, javascript, json, sanitized-css, text, translate-messagebundle, unknown, wikitext</dd><dt><span dir="ltr" lang="en" id="edit:token">token</span></dt><dd class="description"><p>A "csrf" token retrieved from <a href="/w/api.php?action=help&modules=query%2Btokens">action=query&meta=tokens</a> </p><p>The token should always be sent as the last parameter, or at least after the text parameter. </p></dd><dd class="info">This parameter is required.</dd><dt><span dir="ltr" lang="en" id="edit:returnto">returnto</span></dt><dd class="description"><p>Page title. If saving the edit created a temporary account, the API may respond with an URL that the client should visit to complete logging in. If this parameter is provided, the URL will redirect to the given page, instead of the page that was edited. </p></dd><dd class="info">Type: page title</dd><dd class="info">Accepts non-existent pages.</dd><dt><span dir="ltr" lang="en" id="edit:returntoquery">returntoquery</span></dt><dd class="description"><p>URL query parameters (with leading <kbd>?</kbd>). If saving the edit created a temporary account, the API may respond with an URL that the client should visit to complete logging in. If this parameter is provided, the URL will redirect to a page with the given query parameters. </p></dd><dd class="info">Default: <span class="apihelp-empty">(empty)</span></dd><dt><span dir="ltr" lang="en" id="edit:returntoanchor">returntoanchor</span></dt><dd class="description"><p>URL fragment (with leading <kbd>#</kbd>). If saving the edit created a temporary account, the API may respond with an URL that the client should visit to complete logging in. If this parameter is provided, the URL will redirect to a page with the given fragment. </p></dd><dd class="info">Default: <span class="apihelp-empty">(empty)</span></dd><dt><span dir="ltr" lang="en" id="edit:captchaword">captchaword</span></dt><dd class="description"><p>Answer to the CAPTCHA </p></dd><dt><span dir="ltr" lang="en" id="edit:captchaid">captchaid</span></dt><dd class="description"><p>CAPTCHA ID from previous request </p></dd></dl></div> <div class="apihelp-block apihelp-examples"><div class="apihelp-block-head">Examples:</div><dl><dt>Edit a page.</dt><dd><a href="/w/api.php?action=edit&title=Test&summary=test%20summary&text=article%20content&baserevid=1234567&token=123ABC" dir="ltr" rel="nofollow">api.php?action=edit&title=Test&summary=test%20summary&text=article%20content&baserevid=1234567&token=123ABC</a> <a href="/wiki/Special:ApiSandbox#action=edit&title=Test&summary=test%20summary&text=article%20content&baserevid=1234567&token=123ABC"><small>[open in sandbox]</small></a></dd><dt>Prepend <kbd>__NOTOC__</kbd> to a page.</dt><dd><a href="/w/api.php?action=edit&title=Test&summary=NOTOC&minor=&prependtext=__NOTOC__%0A&basetimestamp=2007-08-24T12:34:54Z&token=123ABC" dir="ltr" rel="nofollow">api.php?action=edit&title=Test&summary=NOTOC&minor=&prependtext=__NOTOC__%0A&basetimestamp=2007-08-24T12:34:54Z&token=123ABC</a> <a href="/wiki/Special:ApiSandbox#action=edit&title=Test&summary=NOTOC&minor=&prependtext=__NOTOC__%0A&basetimestamp=2007-08-24T12:34:54Z&token=123ABC"><small>[open in sandbox]</small></a></dd><dt>Undo revisions 13579 through 13585 with autosummary.</dt><dd><a href="/w/api.php?action=edit&title=Test&undo=13585&undoafter=13579&basetimestamp=2007-08-24T12:34:54Z&token=123ABC" dir="ltr" rel="nofollow">api.php?action=edit&title=Test&undo=13585&undoafter=13579&basetimestamp=2007-08-24T12:34:54Z&token=123ABC</a> <a href="/wiki/Special:ApiSandbox#action=edit&title=Test&undo=13585&undoafter=13579&basetimestamp=2007-08-24T12:34:54Z&token=123ABC"><small>[open in sandbox]</small></a></dd></dl></div> </div> </div> <p><br /> <span class="anchor" id="Example"></span> </p> <div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div> <p>The sample code in this example is in Python. See <a href="/wiki/Special:MyLanguage/API:Edit/Editing_with_Ajax" title="Special:MyLanguage/API:Edit/Editing with Ajax">API:Edit/Editing with Ajax</a><span style="display:none"><a href="/wiki/API:Edit/Editing_with_Ajax" title="API:Edit/Editing with Ajax"> </a></span> for examples and responses in <a href="/wiki/Special:MyLanguage/Manual:Ajax" title="Special:MyLanguage/Manual:Ajax">Ajax</a><span style="display:none"><a href="/wiki/Manual:Ajax" title="Manual:Ajax"> </a></span>. </p> <div class="mw-heading mw-heading3"><h3 id="POST_request">POST request</h3></div> <p>Making edits, and, indeed, any POST request, is a multi-step process. </p> <dl><dd>1. Log in, via one of the methods described in <a href="/wiki/Special:MyLanguage/API:Login" title="Special:MyLanguage/API:Login">API:Login</a><span style="display:none"><a href="/wiki/API:Login" title="API:Login"> </a></span>. Note that while this is required to correctly attribute the edit to its author, many wikis do allow users to edit without registering or logging into an account.</dd></dl> <dl><dd>2. GET a <a href="/wiki/Special:MyLanguage/Manual:Edit_token" title="Special:MyLanguage/Manual:Edit token">CSRF token</a><span style="display:none"><a href="/wiki/Manual:Edit_token" title="Manual:Edit token"> </a></span>: <dl><dd><div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=query&format=json&meta=tokens">api.php<span style="margin:0 0.5em">?</span><wbr />action=query<span style="margin:0 0.5em">&</span><wbr />format=json<span style="margin:0 0.5em">&</span><wbr />meta=tokens</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&format=json&meta=tokens">[try in ApiSandbox]</a></div></dd></dl></dd></dl> <dl><dd>3. Send a POST request, with the CSRF token, to take action on a page: <dl><dd><div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=edit&format=json&title=Wikipedia:Sandbox&appendtext=Hello&token=sampleCsrfToken123+\">api.php<span style="margin:0 0.5em">?</span><wbr />action=edit<span style="margin:0 0.5em">&</span><wbr />format=json<span style="margin:0 0.5em">&</span><wbr />title=Wikipedia:Sandbox<span style="margin:0 0.5em">&</span><wbr />appendtext=Hello<span style="margin:0 0.5em">&</span><wbr />token=sampleCsrfToken123+\</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=edit&format=json&title=Wikipedia:Sandbox&appendtext=Hello&token=sampleCsrfToken123+\">[try in ApiSandbox]</a></div></dd></dl></dd></dl> <p>The Response section below is for the final POST request, to take action on the page. See the pages on <a href="/wiki/Special:MyLanguage/API:Login" title="Special:MyLanguage/API:Login">API:Login</a><span style="display:none"><a href="/wiki/API:Login" title="API:Login"> </a></span> and <a href="/wiki/Special:MyLanguage/API:Tokens" title="Special:MyLanguage/API:Tokens">API:Tokens</a><span style="display:none"><a href="/wiki/API:Tokens" title="API:Tokens"> </a></span> for the intermediary JSON responses to earlier steps. </p><p>Also note that the tokens in the queries on this page are sample values. Actual tokens are unique to each login session and cross-site request. They are included only to demonstrate how to properly format queries. </p> <div class="mw-heading mw-heading3"><h3 id="Response">Response</h3></div> <div style="width:60%;"> <div class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"edit"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">"result"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Success"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"pageid"</span><span class="p">:</span><span class="w"> </span><span class="mi">94542</span><span class="p">,</span> <span class="w"> </span><span class="nt">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Wikipedia:Sandbox"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"contentmodel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"wikitext"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"oldrevid"</span><span class="p">:</span><span class="w"> </span><span class="mi">371705</span><span class="p">,</span> <span class="w"> </span><span class="nt">"newrevid"</span><span class="p">:</span><span class="w"> </span><span class="mi">371707</span><span class="p">,</span> <span class="w"> </span><span class="nt">"newtimestamp"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2018-12-18T16:59:42Z"</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div> </div> <p><span class="anchor" id="Sample_code"></span> </p> <div class="mw-heading mw-heading2"><h2 id="Sample_code">Sample code</h2></div> <div class="mw-gadget-tabbedwindow" style="width:100%"> <div class="mw-heading mw-heading3"><h3 id="Python">Python</h3></div> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="ch">#!/usr/bin/python3</span> <span class="sd">"""</span> <span class="sd"> edit.py</span> <span class="sd"> MediaWiki API Demos</span> <span class="sd"> Demo of `Edit` module: POST request to edit a page</span> <span class="sd"> MIT license</span> <span class="sd">"""</span> <span class="kn">import</span> <span class="nn">requests</span> <span class="n">S</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="n">URL</span> <span class="o">=</span> <span class="s2">"https://test.wikipedia.org/w/api.php"</span> <span class="c1"># Step 1: GET request to fetch login token</span> <span class="n">PARAMS_0</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"action"</span><span class="p">:</span> <span class="s2">"query"</span><span class="p">,</span> <span class="s2">"meta"</span><span class="p">:</span> <span class="s2">"tokens"</span><span class="p">,</span> <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"login"</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"json"</span> <span class="p">}</span> <span class="n">R</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="n">URL</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">PARAMS_0</span><span class="p">)</span> <span class="n">DATA</span> <span class="o">=</span> <span class="n">R</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="n">LOGIN_TOKEN</span> <span class="o">=</span> <span class="n">DATA</span><span class="p">[</span><span class="s1">'query'</span><span class="p">][</span><span class="s1">'tokens'</span><span class="p">][</span><span class="s1">'logintoken'</span><span class="p">]</span> <span class="c1"># Step 2: POST request to log in. Use of main account for login is not</span> <span class="c1"># supported. Obtain credentials via Special:BotPasswords</span> <span class="c1"># (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword</span> <span class="n">PARAMS_1</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"action"</span><span class="p">:</span> <span class="s2">"login"</span><span class="p">,</span> <span class="s2">"lgname"</span><span class="p">:</span> <span class="s2">"bot_user_name"</span><span class="p">,</span> <span class="s2">"lgpassword"</span><span class="p">:</span> <span class="s2">"bot_password"</span><span class="p">,</span> <span class="s2">"lgtoken"</span><span class="p">:</span> <span class="n">LOGIN_TOKEN</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"json"</span> <span class="p">}</span> <span class="n">R</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">URL</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">PARAMS_1</span><span class="p">)</span> <span class="c1"># Step 3: GET request to fetch CSRF token</span> <span class="n">PARAMS_2</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"action"</span><span class="p">:</span> <span class="s2">"query"</span><span class="p">,</span> <span class="s2">"meta"</span><span class="p">:</span> <span class="s2">"tokens"</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"json"</span> <span class="p">}</span> <span class="n">R</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">url</span><span class="o">=</span><span class="n">URL</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">PARAMS_2</span><span class="p">)</span> <span class="n">DATA</span> <span class="o">=</span> <span class="n">R</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="n">CSRF_TOKEN</span> <span class="o">=</span> <span class="n">DATA</span><span class="p">[</span><span class="s1">'query'</span><span class="p">][</span><span class="s1">'tokens'</span><span class="p">][</span><span class="s1">'csrftoken'</span><span class="p">]</span> <span class="c1"># Step 4: POST request to edit a page</span> <span class="n">PARAMS_3</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"action"</span><span class="p">:</span> <span class="s2">"edit"</span><span class="p">,</span> <span class="s2">"title"</span><span class="p">:</span> <span class="s2">"Project:Sandbox"</span><span class="p">,</span> <span class="s2">"token"</span><span class="p">:</span> <span class="n">CSRF_TOKEN</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"json"</span><span class="p">,</span> <span class="s2">"appendtext"</span><span class="p">:</span> <span class="s2">"Hello"</span> <span class="p">}</span> <span class="n">R</span> <span class="o">=</span> <span class="n">S</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="n">URL</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">PARAMS_3</span><span class="p">)</span> <span class="n">DATA</span> <span class="o">=</span> <span class="n">R</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="nb">print</span><span class="p">(</span><span class="n">DATA</span><span class="p">)</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="PHP">PHP</h3></div> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="cp"><?php</span> <span class="cm">/*</span> <span class="cm"> edit.php</span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `Edit` module: POST request to edit a page</span> <span class="cm"> MIT license</span> <span class="cm">*/</span> <span class="nv">$endPoint</span> <span class="o">=</span> <span class="s2">"https://test.wikipedia.org/w/api.php"</span><span class="p">;</span> <span class="nv">$login_Token</span> <span class="o">=</span> <span class="nx">getLoginToken</span><span class="p">();</span> <span class="c1">// Step 1</span> <span class="nx">loginRequest</span><span class="p">(</span> <span class="nv">$login_Token</span> <span class="p">);</span> <span class="c1">// Step 2</span> <span class="nv">$csrf_Token</span> <span class="o">=</span> <span class="nx">getCSRFToken</span><span class="p">();</span> <span class="c1">// Step 3</span> <span class="nx">editRequest</span><span class="p">(</span><span class="nv">$csrf_Token</span><span class="p">);</span> <span class="c1">// Step 4</span> <span class="c1">// Step 1: GET request to fetch login token</span> <span class="k">function</span> <span class="nf">getLoginToken</span><span class="p">()</span> <span class="p">{</span> <span class="k">global</span> <span class="nv">$endPoint</span><span class="p">;</span> <span class="nv">$params1</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"action"</span> <span class="o">=></span> <span class="s2">"query"</span><span class="p">,</span> <span class="s2">"meta"</span> <span class="o">=></span> <span class="s2">"tokens"</span><span class="p">,</span> <span class="s2">"type"</span> <span class="o">=></span> <span class="s2">"login"</span><span class="p">,</span> <span class="s2">"format"</span> <span class="o">=></span> <span class="s2">"json"</span> <span class="p">];</span> <span class="nv">$url</span> <span class="o">=</span> <span class="nv">$endPoint</span> <span class="o">.</span> <span class="s2">"?"</span> <span class="o">.</span> <span class="nb">http_build_query</span><span class="p">(</span> <span class="nv">$params1</span> <span class="p">);</span> <span class="nv">$ch</span> <span class="o">=</span> <span class="nb">curl_init</span><span class="p">(</span> <span class="nv">$url</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_RETURNTRANSFER</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEJAR</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEFILE</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nv">$output</span> <span class="o">=</span> <span class="nb">curl_exec</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nb">curl_close</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span> <span class="nv">$output</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="k">return</span> <span class="nv">$result</span><span class="p">[</span><span class="s2">"query"</span><span class="p">][</span><span class="s2">"tokens"</span><span class="p">][</span><span class="s2">"logintoken"</span><span class="p">];</span> <span class="p">}</span> <span class="c1">// Step 2: POST request to log in. Use of main account for login is not</span> <span class="c1">// supported. Obtain credentials via Special:BotPasswords</span> <span class="c1">// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword</span> <span class="k">function</span> <span class="nf">loginRequest</span><span class="p">(</span> <span class="nv">$logintoken</span> <span class="p">)</span> <span class="p">{</span> <span class="k">global</span> <span class="nv">$endPoint</span><span class="p">;</span> <span class="nv">$params2</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"action"</span> <span class="o">=></span> <span class="s2">"login"</span><span class="p">,</span> <span class="s2">"lgname"</span> <span class="o">=></span> <span class="s2">"bot_user_name"</span><span class="p">,</span> <span class="s2">"lgpassword"</span> <span class="o">=></span> <span class="s2">"bot_password"</span><span class="p">,</span> <span class="s2">"lgtoken"</span> <span class="o">=></span> <span class="nv">$logintoken</span><span class="p">,</span> <span class="s2">"format"</span> <span class="o">=></span> <span class="s2">"json"</span> <span class="p">];</span> <span class="nv">$ch</span> <span class="o">=</span> <span class="nb">curl_init</span><span class="p">();</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_URL</span><span class="p">,</span> <span class="nv">$endPoint</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_POST</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_POSTFIELDS</span><span class="p">,</span> <span class="nb">http_build_query</span><span class="p">(</span> <span class="nv">$params2</span> <span class="p">)</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_RETURNTRANSFER</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEJAR</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEFILE</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nv">$output</span> <span class="o">=</span> <span class="nb">curl_exec</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nb">curl_close</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="p">}</span> <span class="c1">// Step 3: GET request to fetch CSRF token</span> <span class="k">function</span> <span class="nf">getCSRFToken</span><span class="p">()</span> <span class="p">{</span> <span class="k">global</span> <span class="nv">$endPoint</span><span class="p">;</span> <span class="nv">$params3</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"action"</span> <span class="o">=></span> <span class="s2">"query"</span><span class="p">,</span> <span class="s2">"meta"</span> <span class="o">=></span> <span class="s2">"tokens"</span><span class="p">,</span> <span class="s2">"format"</span> <span class="o">=></span> <span class="s2">"json"</span> <span class="p">];</span> <span class="nv">$url</span> <span class="o">=</span> <span class="nv">$endPoint</span> <span class="o">.</span> <span class="s2">"?"</span> <span class="o">.</span> <span class="nb">http_build_query</span><span class="p">(</span> <span class="nv">$params3</span> <span class="p">);</span> <span class="nv">$ch</span> <span class="o">=</span> <span class="nb">curl_init</span><span class="p">(</span> <span class="nv">$url</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_RETURNTRANSFER</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEJAR</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEFILE</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nv">$output</span> <span class="o">=</span> <span class="nb">curl_exec</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nb">curl_close</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nv">$result</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span> <span class="nv">$output</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="k">return</span> <span class="nv">$result</span><span class="p">[</span><span class="s2">"query"</span><span class="p">][</span><span class="s2">"tokens"</span><span class="p">][</span><span class="s2">"csrftoken"</span><span class="p">];</span> <span class="p">}</span> <span class="c1">// Step 4: POST request to edit a page</span> <span class="k">function</span> <span class="nf">editRequest</span><span class="p">(</span> <span class="nv">$csrftoken</span> <span class="p">)</span> <span class="p">{</span> <span class="k">global</span> <span class="nv">$endPoint</span><span class="p">;</span> <span class="nv">$params4</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"action"</span> <span class="o">=></span> <span class="s2">"edit"</span><span class="p">,</span> <span class="s2">"title"</span> <span class="o">=></span> <span class="s2">"Project:Sandbox"</span><span class="p">,</span> <span class="s2">"appendtext"</span> <span class="o">=></span> <span class="s2">"Hello"</span><span class="p">,</span> <span class="s2">"token"</span> <span class="o">=></span> <span class="nv">$csrftoken</span><span class="p">,</span> <span class="s2">"format"</span> <span class="o">=></span> <span class="s2">"json"</span> <span class="p">];</span> <span class="nv">$ch</span> <span class="o">=</span> <span class="nb">curl_init</span><span class="p">();</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_URL</span><span class="p">,</span> <span class="nv">$endPoint</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_POST</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_POSTFIELDS</span><span class="p">,</span> <span class="nb">http_build_query</span><span class="p">(</span> <span class="nv">$params4</span> <span class="p">)</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_RETURNTRANSFER</span><span class="p">,</span> <span class="k">true</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEJAR</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nb">curl_setopt</span><span class="p">(</span> <span class="nv">$ch</span><span class="p">,</span> <span class="nx">CURLOPT_COOKIEFILE</span><span class="p">,</span> <span class="s2">"cookie.txt"</span> <span class="p">);</span> <span class="nv">$output</span> <span class="o">=</span> <span class="nb">curl_exec</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="nb">curl_close</span><span class="p">(</span> <span class="nv">$ch</span> <span class="p">);</span> <span class="k">echo</span> <span class="p">(</span> <span class="nv">$output</span> <span class="p">);</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="JavaScript">JavaScript</h3></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">/* </span> <span class="cm"> edit.js</span> <span class="cm"> </span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `Edit` module: POST request to edit a page</span> <span class="cm"> MIT license</span> <span class="cm">*/</span> <span class="kd">var</span><span class="w"> </span><span class="nx">request</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">require</span><span class="p">(</span><span class="s1">'request'</span><span class="p">).</span><span class="nx">defaults</span><span class="p">({</span><span class="nx">jar</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">}),</span> <span class="w"> </span><span class="nx">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"https://test.wikipedia.org/w/api.php"</span><span class="p">;</span> <span class="c1">// Step 1: GET request to fetch login token</span> <span class="kd">function</span><span class="w"> </span><span class="nx">getLoginToken</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">params_0</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s2">"query"</span><span class="p">,</span> <span class="w"> </span><span class="nx">meta</span><span class="o">:</span><span class="w"> </span><span class="s2">"tokens"</span><span class="p">,</span> <span class="w"> </span><span class="nx">type</span><span class="o">:</span><span class="w"> </span><span class="s2">"login"</span><span class="p">,</span> <span class="w"> </span><span class="nx">format</span><span class="o">:</span><span class="w"> </span><span class="s2">"json"</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="nx">request</span><span class="p">.</span><span class="nx">get</span><span class="p">({</span><span class="w"> </span><span class="nx">url</span><span class="o">:</span><span class="w"> </span><span class="nx">url</span><span class="p">,</span><span class="w"> </span><span class="nx">qs</span><span class="o">:</span><span class="w"> </span><span class="nx">params_0</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">body</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">body</span><span class="p">);</span> <span class="w"> </span><span class="nx">loginRequest</span><span class="p">(</span><span class="nx">data</span><span class="p">.</span><span class="nx">query</span><span class="p">.</span><span class="nx">tokens</span><span class="p">.</span><span class="nx">logintoken</span><span class="p">);</span> <span class="w"> </span><span class="p">});</span> <span class="p">}</span> <span class="c1">// Step 2: POST request to log in. </span> <span class="c1">// Use of main account for login is not</span> <span class="c1">// supported. Obtain credentials via Special:BotPasswords</span> <span class="c1">// (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword</span> <span class="kd">function</span><span class="w"> </span><span class="nx">loginRequest</span><span class="p">(</span><span class="nx">login_token</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">params_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s2">"login"</span><span class="p">,</span> <span class="w"> </span><span class="nx">lgname</span><span class="o">:</span><span class="w"> </span><span class="s2">"bot_username"</span><span class="p">,</span> <span class="w"> </span><span class="nx">lgpassword</span><span class="o">:</span><span class="w"> </span><span class="s2">"bot_password"</span><span class="p">,</span> <span class="w"> </span><span class="nx">lgtoken</span><span class="o">:</span><span class="w"> </span><span class="nx">login_token</span><span class="p">,</span> <span class="w"> </span><span class="nx">format</span><span class="o">:</span><span class="w"> </span><span class="s2">"json"</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="nx">request</span><span class="p">.</span><span class="nx">post</span><span class="p">({</span><span class="w"> </span><span class="nx">url</span><span class="o">:</span><span class="w"> </span><span class="nx">url</span><span class="p">,</span><span class="w"> </span><span class="nx">form</span><span class="o">:</span><span class="w"> </span><span class="nx">params_1</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">body</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="nx">getCsrfToken</span><span class="p">();</span> <span class="w"> </span><span class="p">});</span> <span class="p">}</span> <span class="c1">// Step 3: GET request to fetch CSRF token</span> <span class="kd">function</span><span class="w"> </span><span class="nx">getCsrfToken</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">params_2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s2">"query"</span><span class="p">,</span> <span class="w"> </span><span class="nx">meta</span><span class="o">:</span><span class="w"> </span><span class="s2">"tokens"</span><span class="p">,</span> <span class="w"> </span><span class="nx">format</span><span class="o">:</span><span class="w"> </span><span class="s2">"json"</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="nx">request</span><span class="p">.</span><span class="nx">get</span><span class="p">({</span><span class="w"> </span><span class="nx">url</span><span class="o">:</span><span class="w"> </span><span class="nx">url</span><span class="p">,</span><span class="w"> </span><span class="nx">qs</span><span class="o">:</span><span class="w"> </span><span class="nx">params_2</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">body</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">body</span><span class="p">);</span> <span class="w"> </span><span class="nx">editRequest</span><span class="p">(</span><span class="nx">data</span><span class="p">.</span><span class="nx">query</span><span class="p">.</span><span class="nx">tokens</span><span class="p">.</span><span class="nx">csrftoken</span><span class="p">);</span> <span class="w"> </span><span class="p">});</span> <span class="p">}</span> <span class="c1">// Step 4: POST request to edit a page</span> <span class="kd">function</span><span class="w"> </span><span class="nx">editRequest</span><span class="p">(</span><span class="nx">csrf_token</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="nx">params_3</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s2">"edit"</span><span class="p">,</span> <span class="w"> </span><span class="nx">title</span><span class="o">:</span><span class="w"> </span><span class="s2">"Project:Sandbox"</span><span class="p">,</span> <span class="w"> </span><span class="nx">appendtext</span><span class="o">:</span><span class="w"> </span><span class="s2">"test edit"</span><span class="p">,</span> <span class="w"> </span><span class="nx">token</span><span class="o">:</span><span class="w"> </span><span class="nx">csrf_token</span><span class="p">,</span> <span class="w"> </span><span class="nx">format</span><span class="o">:</span><span class="w"> </span><span class="s2">"json"</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="nx">request</span><span class="p">.</span><span class="nx">post</span><span class="p">({</span><span class="w"> </span><span class="nx">url</span><span class="o">:</span><span class="w"> </span><span class="nx">url</span><span class="p">,</span><span class="w"> </span><span class="nx">form</span><span class="o">:</span><span class="w"> </span><span class="nx">params_3</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">,</span><span class="w"> </span><span class="nx">res</span><span class="p">,</span><span class="w"> </span><span class="nx">body</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">body</span><span class="p">);</span> <span class="w"> </span><span class="p">});</span> <span class="p">}</span> <span class="c1">// Start From Step 1</span> <span class="nx">getLoginToken</span><span class="p">();</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="MediaWiki_JS">MediaWiki JS</h3></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">/*</span> <span class="cm"> edit.js</span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `Edit` module: POST request to edit a page</span> <span class="cm"> MIT License</span> <span class="cm">*/</span> <span class="kd">var</span><span class="w"> </span><span class="nx">params</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">action</span><span class="o">:</span><span class="w"> </span><span class="s1">'edit'</span><span class="p">,</span> <span class="w"> </span><span class="nx">title</span><span class="o">:</span><span class="w"> </span><span class="s1">'Project:Sandbox'</span><span class="p">,</span> <span class="w"> </span><span class="nx">appendtext</span><span class="o">:</span><span class="w"> </span><span class="s1">'Hello'</span><span class="p">,</span> <span class="w"> </span><span class="nx">format</span><span class="o">:</span><span class="w"> </span><span class="s1">'json'</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="nx">api</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nx">mw</span><span class="p">.</span><span class="nx">Api</span><span class="p">();</span> <span class="nx">api</span><span class="p">.</span><span class="nx">postWithToken</span><span class="p">(</span><span class="w"> </span><span class="s1">'csrf'</span><span class="p">,</span><span class="w"> </span><span class="nx">params</span><span class="w"> </span><span class="p">).</span><span class="nx">done</span><span class="p">(</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="nx">data</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="w"> </span><span class="nx">data</span><span class="w"> </span><span class="p">);</span> <span class="p">}</span><span class="w"> </span><span class="p">);</span> </pre></div> </div> <div class="mw-heading mw-heading2"><h2 id="User_cases">User cases</h2></div> <div class="mw-heading mw-heading3"><h3 id="Edit_conflicts">Edit conflicts</h3></div> <p>The <a href="#Sample_code">Python sample</a> is a basic implementation of an edit request by a registered user. In real-world scenarios, care should be taken to prevent edit conflicts. These occur when two or more users are attempting to edit the same page at the same time. </p><p>Conflicts can be prevented by retrieving the last <a href="/wiki/Special:MyLanguage/API:Revisions" title="Special:MyLanguage/API:Revisions">revision</a><span style="display:none"><a href="/wiki/API:Revisions" title="API:Revisions"> </a></span> timestamp when we request a CSRF token. Adding <code>prop=info|revisions</code> to the CSRF token request in Step 3 allows us to access the timestamp for the last revision. This timestamp will be used as the <code>basetimestamp</code> when we make our the edit request. </p><p>We also need the exact time when we start our edit. This can be retrieved by adding <code>curtimestamp</code> to the CSRF request as well. This value will serve as our <code>starttimestamp</code>. </p><p>Finally, in the actual edit request, set the <code>basetimestamp</code> and <code>starttimestamp</code> parameters, like so: </p> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=edit&format=json&title=Wikipedia:Sandbox&appendtext=Hello&basetimestamp=2018-12-25T14:05:36Z&starttimestamp=2019-01-09T10:07:19Z&token=sampleCsrfToken123+\">api.php<span style="margin:0 0.5em">?</span><wbr />action=edit<span style="margin:0 0.5em">&</span><wbr />format=json<span style="margin:0 0.5em">&</span><wbr />title=Wikipedia:Sandbox<span style="margin:0 0.5em">&</span><wbr />appendtext=Hello<span style="margin:0 0.5em">&</span><wbr />basetimestamp=2018-12-25T14:05:36Z<span style="margin:0 0.5em">&</span><wbr />starttimestamp=2019-01-09T10:07:19Z<span style="margin:0 0.5em">&</span><wbr />token=sampleCsrfToken123+\</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=edit&format=json&title=Wikipedia:Sandbox&appendtext=Hello&basetimestamp=2018-12-25T14:05:36Z&starttimestamp=2019-01-09T10:07:19Z&token=sampleCsrfToken123+\">[try in ApiSandbox]</a></div> <div class="mw-heading mw-heading3"><h3 id="Large_edits">Large edits</h3></div> <p>POST requests containing large amounts of text content (8000+ characters) should be sent with <code>Content-Type: multipart/form-data</code> indicated in the <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers" class="extiw" title="devmo:Web/HTTP/Headers">header</a>. Because <code>multipart/form-data</code> does not need to add HTML escape characters (i.e., <a href="https://developer.mozilla.org/docs/Glossary/percent-encoding" class="extiw" title="devmo:Glossary/percent-encoding">percent encoding</a>) for spaces and punctuation, the amount of data passed will subsequently be much smaller than the percent-encoded equivalent. </p><p>However, there is still some overhead added by <code>multipart/form-data</code> -- roughly, 160 bytes per parameter. For short messages that don't require adding many escape characters, this amount of overhead can be inefficient, and percent-encoding is preferred.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>Note that in our <a href="#Example">Python sample code</a>, the request is percent-encoded by default. </p><p>See <a href="https://developer.mozilla.org/docs/Web/HTTP/Headers/Content-Type" class="extiw" title="devmo:Web/HTTP/Headers/Content-Type">the MDN web docs</a> for a more technical discussion of content-type and POST requests. See <a rel="nofollow" class="external text" href="http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests">the Python Requests documentation</a> for how to pass <code>multipart/form-data</code> using syntax similar to our Python sample code. </p> <div class="mw-heading mw-heading3"><h3 id="CAPTCHAs">CAPTCHAs</h3></div> <p>If the wiki you are targeting uses <a href="/wiki/Special:MyLanguage/CAPTCHA" title="Special:MyLanguage/CAPTCHA">CAPTCHAs</a><span style="display:none"><a href="/wiki/CAPTCHA" title="CAPTCHA"> </a></span>, your request may return an error containing an ID number and a simple test, such as a question, a math problem, or an URL to an image. In order to complete your edit, you must complete the test, then retry your request with the id and the correct answer(s) appended to the original query string, like so: <code>captchaid=sampleId&captchaword=answer</code> </p><p>Other CAPTCHA systems and extensions may use different parameters for similar use. In general, use the field names for the ID and test questions as the parameters in your second request. </p> <div class="mw-heading mw-heading2"><h2 id="Possible_errors">Possible errors</h2></div> <table class="wikitable sortable"> <tbody><tr> <th>Code</th> <th>Info </th></tr> <tr> <td>notitle</td> <td>The <var>title</var> parameter must be set. </td></tr> <tr> <td>missingparam</td> <td>At least one of the parameters text, appendtext and undo is required. </td></tr> <tr> <td>notoken</td> <td>The <var>token</var> parameter must be set. </td></tr> <tr> <td>invalidsection</td> <td>The <var>section</var> parameter must be a valid section ID or <kbd>new</kbd>. </td></tr> <tr> <td>protectedpage</td> <td>This page has been protected to prevent editing or other actions. </td></tr> <tr> <td>cantcreate</td> <td>You do not have permission to create new pages. </td></tr> <tr> <td>cantcreate-anon</td> <td>Anonymous users can't create new pages </td></tr> <tr> <td>articleexists</td> <td>The page you tried to create has been created already. </td></tr> <tr> <td>noimageredirect-anon</td> <td>Anonymous users can't create image redirects. </td></tr> <tr> <td>noimageredirect</td> <td>You don't have permission to create image redirects. </td></tr> <tr> <td>spamdetected</td> <td>Your edit was refused because it contained a spam fragment: <code><b>Wikitext</b></code>. </td></tr> <tr> <td>abusefilter-warning</td> <td>This action has been automatically identified as harmful. </td></tr> <tr> <td>abusefilter-disallowed</td> <td>This action has been automatically identified as harmful, and therefore disallowed. </td></tr> <tr> <td>contenttoobig</td> <td>The content you supplied exceeds the page size limit of <b>bytes</b> kibibytes.<br />Where <b>bytes</b> is the value of <a href="/wiki/Special:MyLanguage/Manual:$wgMaxArticleSize" title="Special:MyLanguage/Manual:$wgMaxArticleSize">$wgMaxArticleSize</a><span style="display:none"><a href="/wiki/Manual:$wgMaxArticleSize" title="Manual:$wgMaxArticleSize"> </a></span>. </td></tr> <tr> <td>noedit-anon</td> <td>Anonymous users can't edit pages. </td></tr> <tr> <td>noedit</td> <td>You don't have permission to edit pages. </td></tr> <tr> <td>pagedeleted</td> <td>The page has been deleted since you fetched its timestamp. </td></tr> <tr> <td>emptypage</td> <td>Creating new, empty pages is not allowed. </td></tr> <tr> <td>emptynewsection</td> <td>Creating empty new sections is not possible. </td></tr> <tr> <td>editconflict</td> <td>Edit conflict. </td></tr> <tr> <td>revwrongpage</td> <td>r<b>revid</b> is not a revision of <b>pagename</b>.<br />Thrown if an invalid revid is given for <code>undo</code> or <code>undoafter</code> </td></tr> <tr> <td>undofailure</td> <td>The edit could not be undone due to conflicting intermediate edits. </td></tr> <tr> <td>missingtitle</td> <td>The page you specified doesn't exist.<br />(see above <code>nocreate</code> <a href="#Parameters">parameter</a>) </td></tr> <tr> <td>mustbeposted</td> <td>The <kbd>edit</kbd> module requires a POST request. </td></tr> <tr> <td>readapidenied</td> <td>You need read permission to use this module. </td></tr> <tr> <td>writeapidenied</td> <td>You're not allowed to edit this wiki through the API. </td></tr> <tr> <td>noapiwrite</td> <td>Editing of this wiki through the API is disabled. </td></tr> <tr> <td>badtoken</td> <td>Invalid CSRF token. </td></tr> <tr> <td>missingparam</td> <td>The <var>title, pageid</var> parameter must be set. </td></tr> <tr> <td>invalidparammix</td> <td>The parameters title, pageid can not be used together. </td></tr> <tr> <td>invalidtitle</td> <td>Bad title "<b>title</b>". </td></tr> <tr> <td>invalid-content-data</td> <td>Invalid content data<br />occurs when trying to edit a JSON page with non-conforming data, or while trying to edit a MassMessageListContent page </td></tr> <tr> <td>nosuchpageid</td> <td>There is no page with ID <b>pageid</b>. </td></tr> <tr> <td>pagecannotexist</td> <td>Namespace doesn't allow actual pages. </td></tr> <tr> <td>nosuchrevid</td> <td>There is no revision with ID <b>undo</b>. </td></tr> <tr> <td>nosuchrevid</td> <td>There is no revision with ID <b>undoafter</b>. </td></tr> <tr> <td>badmd5</td> <td>The supplied MD5 hash was incorrect. </td></tr> <tr> <td>hookaborted</td> <td>The modification you tried to make was aborted by an extension. </td></tr> <tr> <td>parseerror</td> <td>Content serialization failed: parseerror </td></tr> <tr> <td>summaryrequired</td> <td>⧼apierror-summaryrequired⧽ </td></tr> <tr> <td>blocked</td> <td>You have been blocked from editing. </td></tr> <tr> <td>ratelimited</td> <td>You've exceeded your rate limit. Please wait some time and try again. </td></tr> <tr> <td>unknownerror</td> <td>Unknown error: "<b>retval</b>". </td></tr> <tr> <td>nosuchsection</td> <td>There is no section $1. </td></tr> <tr> <td>sectionsnotsupported</td> <td>Sections are not supported for content model $1. </td></tr> <tr> <td>editnotsupported</td> <td>Editing of this type of page is not supported using the text based edit API. </td></tr> <tr> <td>appendnotsupported</td> <td>Can't append to pages using content model $1. </td></tr> <tr> <td>redirect-appendonly</td> <td>You have attempted to edit using the redirect-following mode, which must be used in conjunction with <kbd>section=new</kbd>, <var>prependtext</var>, or <var>appendtext</var>. </td></tr> <tr> <td>edit-invalidredirect</td> <td>Cannot edit <kbd>$1</kbd> while following redirects, as target <kbd>$2</kbd> is not valid. </td></tr> <tr> <td>badformat</td> <td>The requested format $1 is not supported for content model $2 used by $3. </td></tr> <tr> <td>customcssprotected</td> <td>You do not have permission to edit this CSS page because it contains another user's personal settings. </td></tr> <tr> <td>customjsprotected</td> <td>You do not have permission to edit this JavaScript page because it contains another user's personal settings. </td></tr> <tr> <td>taggingnotallowed</td> <td>You don't have permission to set change tags </td></tr> <tr> <td>badtags</td> <td>The tag "<b>Tag</b>" is not allowed to be manually applied.<br />The following tags are not allowed to be manually applied: <b>Tag1, Tag2</b> </td></tr> <tr> <td>tpt-target-page</td> <td>This page cannot be updated manually. <p>This page is a translation of the page <a href="/wiki/$1" class="mw-redirect" title="$1">$1</a> and the translation can be updated using [$2 the translation tool].<br />When using <a href="/wiki/Special:MyLanguage/Extension:Translate" title="Special:MyLanguage/Extension:Translate">Extension:Translate</a><span style="display:none"><a href="/wiki/Extension:Translate" title="Extension:Translate"> </a></span>, editing of a translated subpage is not allowed. </p> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Parameter_history">Parameter history</h2></div> <ul><li>v1.35: Introduced <code>baserevid</code></li> <li>v1.25: Introduced <code>tags</code></li> <li>v1.21: Introduced <code>contentformat</code>, <code>contentmodel</code></li> <li>v1.20: Introduced <code>pageid</code></li> <li>v1.19: Introduced <code>sectiontitle</code></li> <li>v1.18: Deprecated <code>captchaid</code>, <code>captchaword</code></li> <li>v1.17: Introduced <code>redirect</code></li> <li>v1.16: Deprecated <code>watch</code>, <code>unwatch</code></li> <li>v1.16: Introduced <code>watchlist</code></li> <li>v1.15: Introduced <code>undo</code>, <code>undoafter</code></li> <li>v1.14: Introduced <code>starttimestamp</code></li></ul> <div class="mw-heading mw-heading2"><h2 id="Additional_notes">Additional notes</h2></div> <ul><li>Log in is not strictly required by the API, but it is needed to correctly attribute the edit to its author. A successful edit from a user who is not logged in will be attributed to their IP address.</li> <li>Bots that are not logged in may face restrictions on editing and other write requests; see <a href="/wiki/Special:MyLanguage/Manual:Creating_a_bot#Logging_in" title="Special:MyLanguage/Manual:Creating a bot">Manual:Creating a bot#Logging in</a><span style="display:none"><a href="/wiki/Manual:Creating_a_bot#Logging_in" title="Manual:Creating a bot"> </a></span> for more details.</li> <li>Users who are not logged in will always be given the empty CSRF token, <code>+\</code>.</li> <li>The process for requesting a token has changed several times across versions. See <a href="/wiki/Special:MyLanguage/API:Tokens" title="Special:MyLanguage/API:Tokens">API:Tokens</a><span style="display:none"><a href="/wiki/API:Tokens" title="API:Tokens"> </a></span> for more information.</li> <li><a href="/wiki/Special:MyLanguage/ResourceLoader/Core_modules#mw.user.tokens" title="Special:MyLanguage/ResourceLoader/Core modules">ResourceLoader</a><span style="display:none"><a href="/wiki/ResourceLoader/Core_modules#mw.user.tokens" title="ResourceLoader/Core modules"> </a></span> provides a way to access edit tokens when running code within a wiki page.</li> <li>You can use the same CSRF token for all edit operations across the same wiki, during a single login session.</li> <li>It is a good practice to pass any tokens in your request at the end of the query string, or at least after the text parameter. That way, if the connection is interrupted, the token will not be passed and the edit will fail. If you are using the <a href="/wiki/Special:MyLanguage/ResourceLoader/Core_modules#mediawiki.api" title="Special:MyLanguage/ResourceLoader/Core modules">mw.Api</a><span style="display:none"><a href="/wiki/ResourceLoader/Core_modules#mediawiki.api" title="ResourceLoader/Core modules"> </a></span> object to make requests, this is done automatically.</li> <li>Although <code>captchaid</code> and <code>captchaword</code> have, technically, been removed from API:Edit since v1.18, <a href="/wiki/Special:MyLanguage/Extension:ConfirmEdit" title="Special:MyLanguage/Extension:ConfirmEdit">Extension:ConfirmEdit</a><span style="display:none"><a href="/wiki/Extension:ConfirmEdit" title="Extension:ConfirmEdit"> </a></span> extends API:Edit to work with CAPTCHAs. Thus, with ConfirmEdit installed, these parameters are still available. ConfirmEdit comes packaged with the MediaWiki software, v1.18+.</li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div> <ul><li><a href="/wiki/Special:MyLanguage/Help:Editing" title="Special:MyLanguage/Help:Editing">Help:Editing</a><span style="display:none"><a href="/wiki/Help:Editing" title="Help:Editing"> </a></span> - contains useful links on editing articles.</li> <li><a href="/wiki/Special:MyLanguage/Manual:Bot_passwords" title="Special:MyLanguage/Manual:Bot passwords">Manual:Bot passwords</a><span style="display:none"><a href="/wiki/Manual:Bot_passwords" title="Manual:Bot passwords"> </a></span> - describes how to log in using a simplified interface when accessing wikis via a script or application, rather than the GUI.</li> <li><a href="/wiki/Special:MyLanguage/Manual:Creating_a_bot#Editing;_edit_tokens" title="Special:MyLanguage/Manual:Creating a bot">Manual:Creating a bot</a><span style="display:none"><a href="/wiki/Manual:Creating_a_bot#Editing;_edit_tokens" title="Manual:Creating a bot"> </a></span> - more details on using a bot to automatically edit pages.</li> <li><a href="/wiki/Special:MyLanguage/ResourceLoader/Default_modules#mw.user.tokens" title="Special:MyLanguage/ResourceLoader/Default modules">ResourceLoader</a><span style="display:none"><a href="/wiki/ResourceLoader/Default_modules#mw.user.tokens" class="mw-redirect" title="ResourceLoader/Default modules"> </a></span> - provides a way to access edit tokens when running JavaScript within a MediaWiki page.</li> <li><a href="/wiki/Special:MyLanguage/API:Tokens" title="Special:MyLanguage/API:Tokens">API:Tokens</a><span style="display:none"><a href="/wiki/API:Tokens" title="API:Tokens"> </a></span> - has more details on using tokens to log in or make POST requests.</li> <li><a href="/wiki/Special:MyLanguage/API:Tokens_(action)" title="Special:MyLanguage/API:Tokens (action)">API:Tokens (action)</a><span style="display:none"><a href="/wiki/API:Tokens_(action)" title="API:Tokens (action)"> </a></span> - a deprecated API, distinct from <a href="/wiki/Special:MyLanguage/API:Tokens" title="Special:MyLanguage/API:Tokens">API:Tokens</a><span style="display:none"><a href="/wiki/API:Tokens" title="API:Tokens"> </a></span>, for requesting tokens in earlier versions of MediaWiki.</li> <li><a href="/wiki/Special:MyLanguage/API:Compare" title="Special:MyLanguage/API:Compare">API:Compare</a><span style="display:none"><a href="/wiki/API:Compare" title="API:Compare"> </a></span> - allows you to diff between edits on a page.</li> <li><a href="/wiki/Special:MyLanguage/API:Managetags" title="Special:MyLanguage/API:Managetags">API:Managetags</a><span style="display:none"><a href="/wiki/API:Managetags" title="API:Managetags"> </a></span> - alters tags on a page.</li> <li><a href="/wiki/Special:MyLanguage/API:Rollback" title="Special:MyLanguage/API:Rollback">API:Rollback</a><span style="display:none"><a href="/wiki/API:Rollback" title="API:Rollback"> </a></span> - reverts a series of edits.</li> <li><a href="/wiki/Special:MyLanguage/API:Filerevert" title="Special:MyLanguage/API:Filerevert">API:Filerevert</a><span style="display:none"><a href="/wiki/API:Filerevert" title="API:Filerevert"> </a></span> - rolls back files to an earlier state.</li> <li><a href="/wiki/Special:MyLanguage/API:Revisiondelete" title="Special:MyLanguage/API:Revisiondelete">API:Revisiondelete</a><span style="display:none"><a href="/wiki/API:Revisiondelete" title="API:Revisiondelete"> </a></span> - deletes and restores revisions to a page.</li></ul> <p><br /> </p> <div class="mw-heading mw-heading2"><h2 id="References">References</h2></div> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"> <a rel="nofollow" class="external free" href="https://stackoverflow.com/a/4073451">https://stackoverflow.com/a/4073451</a></span> </li> </ol></div></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐zdzzs Cached time: 20241123170541 Cache expiry: 3600 Reduced expiry: true Complications: [show‐toc] CPU time usage: 0.809 seconds Real time usage: 1.011 seconds Preprocessor visited node count: 7125/1000000 Post‐expand include size: 64361/2097152 bytes Template argument size: 27970/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 56/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 62216/5000000 bytes Lua time usage: 0.210/10.000 seconds Lua memory usage: 1859165/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 687.776 1 -total 48.35% 332.566 77 Template:Ll 34.35% 236.241 1 Template:API 27.05% 186.049 1 Template:Sidebar 21.83% 150.163 155 Template:Translatable 19.73% 135.695 79 Template:Pagelang 12.57% 86.486 1 Template:Api_help 12.53% 86.149 55 Template:Int 11.40% 78.395 1 Special:ApiHelp/edit 6.47% 44.531 1 Template:Mbox --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:18212-0!canonical and timestamp 20241123170541 and revision id 6728504. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://www.mediawiki.org/w/index.php?title=API:Edit&oldid=6728504">https://www.mediawiki.org/w/index.php?title=API:Edit&oldid=6728504</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:MediaWiki_action_API" title="Category:MediaWiki action API">MediaWiki action API</a></li><li><a href="/wiki/Category:MediaWiki_API" title="Category:MediaWiki API">MediaWiki API</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 29 August 2024, at 17:34.</li> <li id="footer-info-copyright">Text is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike License</a>; additional terms may apply. Text in <a class="external text" href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">the Help: namespace</a> is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 License</a>. By using this site, you agree to the <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> and <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy Policy</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Project:About">About mediawiki.org</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Project:General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/www.mediawiki.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//m.mediawiki.org/w/index.php?title=API:Edit&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-zdzzs","wgBackendResponseTime":1144,"wgPageParseReport":{"limitreport":{"cputime":"0.809","walltime":"1.011","ppvisitednodes":{"value":7125,"limit":1000000},"postexpandincludesize":{"value":64361,"limit":2097152},"templateargumentsize":{"value":27970,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":56,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":62216,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 687.776 1 -total"," 48.35% 332.566 77 Template:Ll"," 34.35% 236.241 1 Template:API"," 27.05% 186.049 1 Template:Sidebar"," 21.83% 150.163 155 Template:Translatable"," 19.73% 135.695 79 Template:Pagelang"," 12.57% 86.486 1 Template:Api_help"," 12.53% 86.149 55 Template:Int"," 11.40% 78.395 1 Special:ApiHelp/edit"," 6.47% 44.531 1 Template:Mbox"]},"scribunto":{"limitreport-timeusage":{"value":"0.210","limit":"10.000"},"limitreport-memusage":{"value":1859165,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-zdzzs","timestamp":"20241123170541","ttl":3600,"transientcontent":true}}});});</script> </body> </html>