CINXE.COM
API:Account creation - 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:Account creation - 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":"a1cd3b12-df02-4f9f-86d5-2028acbdea0d","wgCanonicalNamespace":"API","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":104,"wgPageName":"API:Account_creation","wgTitle":"Account creation","wgCurRevisionId":6728511,"wgRevisionId":6728511,"wgArticleId":643758,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["MediaWiki action API"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"API:Account_creation","wgRelevantArticleId":643758,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"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:Account_creation","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","skins.vector.search.codex.styles": "ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.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","site","mediawiki.page.ready","jquery.makeCollapsible","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.pygments%2Ctranslate%2CwikimediaBadges%7Cext.translate.edit.documentation.styles%7Cext.translate.tag.languages%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.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.5"> <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:Account creation - 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:Account_creation"> <link rel="alternate" type="application/x-wiki" title="Edit" href="/w/index.php?title=API:Account_creation&action=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:Account_creation"> <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 mw-editable page-API_Account_creation rootpage-API_Account_creation 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%3AAccount+creation" 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/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=www.mediawiki.org&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%3AAccount+creation" 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%3AAccount+creation" 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/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=www.mediawiki.org&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%3AAccount+creation" 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%3AAccount+creation" 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-Creating_an_account" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Creating_an_account"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Creating an account</span> </div> </a> <button aria-controls="toc-Creating_an_account-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 Creating an account subsection</span> </button> <ul id="toc-Creating_an_account-sublist" class="vector-toc-list"> <li id="toc-Example_1:_Process_on_a_wiki_without_special_authentication_extensions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Example_1:_Process_on_a_wiki_without_special_authentication_extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Example 1: Process on a wiki without special authentication extensions</span> </div> </a> <ul id="toc-Example_1:_Process_on_a_wiki_without_special_authentication_extensions-sublist" class="vector-toc-list"> <li id="toc-POST_request" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#POST_request"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.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-3"> <a class="vector-toc-link" href="#Response"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.2</span> <span>Response</span> </div> </a> <ul id="toc-Response-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sample_code" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Sample_code"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.3</span> <span>Sample code</span> </div> </a> <ul id="toc-Sample_code-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <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">2.2</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">2.3</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">2.4</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">2.5</span> <span>MediaWiki JS</span> </div> </a> <ul id="toc-MediaWiki_JS-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Example_2:_Process_on_a_wiki_with_a_CAPTCHA_extension" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Example_2:_Process_on_a_wiki_with_a_CAPTCHA_extension"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>Example 2: Process on a wiki with a CAPTCHA extension</span> </div> </a> <ul id="toc-Example_2:_Process_on_a_wiki_with_a_CAPTCHA_extension-sublist" class="vector-toc-list"> <li id="toc-First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6.1</span> <span>First step: Fetch fields available from API:Authmanagerinfo<span> </span> and token from API:Tokens<span> </span></span> </div> </a> <ul id="toc-First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Second_step:_Send_a_post_request_along_with_a_create_account_token,_user_information_and_return_URL" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Second_step:_Send_a_post_request_along_with_a_create_account_token,_user_information_and_return_URL"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6.2</span> <span>Second step: Send a post request along with a create account token, user information and return URL</span> </div> </a> <ul id="toc-Second_step:_Send_a_post_request_along_with_a_create_account_token,_user_information_and_return_URL-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sample_Code_2" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Sample_Code_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6.3</span> <span>Sample Code</span> </div> </a> <ul id="toc-Sample_Code_2-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Example_3:_Account_creation_on_a_wiki_with_a_CAPTCHA,_an_OpenID_extension,_and_a_two-factor_authentication_extension_enabled" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Example_3:_Account_creation_on_a_wiki_with_a_CAPTCHA,_an_OpenID_extension,_and_a_two-factor_authentication_extension_enabled"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7</span> <span>Example 3: Account creation on a wiki with a CAPTCHA, an OpenID extension, and a two-factor authentication extension enabled</span> </div> </a> <ul id="toc-Example_3:_Account_creation_on_a_wiki_with_a_CAPTCHA,_an_OpenID_extension,_and_a_two-factor_authentication_extension_enabled-sublist" class="vector-toc-list"> <li id="toc-First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens_2" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7.1</span> <span>First step: Fetch fields available from API:Authmanagerinfo<span> </span> and token from API:Tokens<span> </span></span> </div> </a> <ul id="toc-First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Second_step:_Answer_the_CAPTCHA_and_select_OpenID_authentication." class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Second_step:_Answer_the_CAPTCHA_and_select_OpenID_authentication."> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7.2</span> <span>Second step: Answer the CAPTCHA and select OpenID authentication.</span> </div> </a> <ul id="toc-Second_step:_Answer_the_CAPTCHA_and_select_OpenID_authentication.-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Third_step:_Back_from_OpenID." class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Third_step:_Back_from_OpenID."> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7.3</span> <span>Third step: Back from OpenID.</span> </div> </a> <ul id="toc-Third_step:_Back_from_OpenID.-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Fourth_step:_Set_up_two-factor_authentication." class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Fourth_step:_Set_up_two-factor_authentication."> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7.4</span> <span>Fourth step: Set up two-factor authentication.</span> </div> </a> <ul id="toc-Fourth_step:_Set_up_two-factor_authentication.-sublist" class="vector-toc-list"> </ul> </li> </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">3</span> <span>Possible errors</span> </div> </a> <ul id="toc-Possible_errors-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">4</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">5</span> <span>See also</span> </div> </a> <ul id="toc-See_also-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">Account creation</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:Account_creation" 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:Account_creation" 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:Account_creation"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Account_creation&action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Account_creation&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:Account_creation"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Account_creation&action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Account_creation&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:Account_creation" 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:Account_creation" 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:Account_creation&oldid=6728511" 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:Account_creation&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%3AAccount_creation&id=6728511&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%3AAccount_creation"><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%3AAccount_creation"><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%3AAccount+creation"><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%3AAccount_creation&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:Account_creation&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%3AAccount+creation&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:Account_creation/id" class="mw-pt-progress mw-pt-progress--low" title="API:Pengelolaan akun (2% translated)" lang="id" dir="ltr">Bahasa Indonesia</a></li> <li><a href="/wiki/API:Account_creation/de" class="mw-pt-progress mw-pt-progress--complete" title="API:Kontoerstellung (100% 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:Account_creation/ig" class="mw-pt-progress mw-pt-progress--low" title="API:Account creation/ig (10% translated)" lang="ig" dir="ltr">Igbo</a></li> <li><a href="/wiki/API:Account_creation/tr" class="mw-pt-progress mw-pt-progress--complete" title="API:Hesap oluşturma (100% translated)" lang="tr" dir="ltr">Türkçe</a></li> <li><a href="/wiki/API:Account_creation/diq" class="mw-pt-progress mw-pt-progress--low" title="API:Account creation/diq (6% translated)" lang="diq" dir="ltr">Zazaki</a></li> <li><a href="/wiki/API:Account_creation/da" class="mw-pt-progress mw-pt-progress--low" title="API:Konto oprettelse (13% translated)" lang="da" dir="ltr">dansk</a></li> <li><a href="/wiki/API:Account_creation/es" class="mw-pt-progress mw-pt-progress--complete" title="API:Creación de cuentas (100% translated)" lang="es" dir="ltr">español</a></li> <li><a href="/wiki/API:Account_creation/fr" class="mw-pt-progress mw-pt-progress--complete" title="API:Création de compte (100% translated)" lang="fr" dir="ltr">français</a></li> <li><a href="/wiki/API:Account_creation/it" class="mw-pt-progress mw-pt-progress--low" title="API: Creazione account (2% translated)" lang="it" dir="ltr">italiano</a></li> <li><a href="/wiki/API:Account_creation/hu" class="mw-pt-progress mw-pt-progress--complete" title="API:Fiók létrehozása (100% translated)" lang="hu" dir="ltr">magyar</a></li> <li><a href="/wiki/API:Account_creation/pl" class="mw-pt-progress mw-pt-progress--med" title="API:Utwórz konto (25% translated)" lang="pl" dir="ltr">polski</a></li> <li><a href="/wiki/API:Account_creation/pt" class="mw-pt-progress mw-pt-progress--low" title="API:Criação de contas (6% translated)" lang="pt" dir="ltr">português</a></li> <li><a href="/wiki/API:Account_creation/ro" class="mw-pt-progress mw-pt-progress--low" title="API:Account creation/ro (2% translated)" lang="ro" dir="ltr">română</a></li> <li><a href="/wiki/API:Account_creation/cs" class="mw-pt-progress mw-pt-progress--complete" title="API:Vytvoření účtu (100% translated)" lang="cs" dir="ltr">čeština</a></li> <li><a href="/wiki/API:Account_creation/ru" class="mw-pt-progress mw-pt-progress--high" title="API:Создание учётной записи (98% translated)" lang="ru" dir="ltr">русский</a></li> <li><a href="/wiki/API:Account_creation/uk" class="mw-pt-progress mw-pt-progress--complete" title="API:Створення облікового запису (100% translated)" lang="uk" dir="ltr">українська</a></li> <li><a href="/wiki/API:Account_creation/ar" class="mw-pt-progress mw-pt-progress--complete" title="واجهة برمجة التطبيقات:إنشاء حساب (100% translated)" lang="ar" dir="rtl">العربية</a></li> <li><a href="/wiki/API:Account_creation/hi" class="mw-pt-progress mw-pt-progress--complete" title="API:खाता निर्माण (100% translated)" lang="hi" dir="ltr">हिन्दी</a></li> <li><a href="/wiki/API:Account_creation/th" class="mw-pt-progress mw-pt-progress--med" title="API:สร้างบัญชี (54% translated)" lang="th" dir="ltr">ไทย</a></li> <li><a href="/wiki/API:Account_creation/zh" class="mw-pt-progress mw-pt-progress--complete" title="API:创建账号 (100% translated)" lang="zh" dir="ltr">中文</a></li> <li><a href="/wiki/API:Account_creation/ja" class="mw-pt-progress mw-pt-progress--med" title="API:アカウント作成 (23% translated)" lang="ja" dir="ltr">日本語</a></li> <li><a href="/wiki/API:Account_creation/nan" class="mw-pt-progress mw-pt-progress--med" title="API: Kháu-tsō tshòng-kiàn (38% translated)" lang="nan" dir="ltr">閩南語 / Bân-lâm-gú</a></li> <li><a href="/wiki/API:Account_creation/ko" class="mw-pt-progress mw-pt-progress--med" title="API:계정 생성 (19% translated)" lang="ko" 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><b><a href="/wiki/Special:MyLanguage/API:Account_creation" title="Special:MyLanguage/API:Account creation">Create an account</a></b><span style="display:none"><a class="mw-selflink selflink"> </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><a href="/wiki/Special:MyLanguage/API:Edit" title="Special:MyLanguage/API:Edit">Create and edit a page</a><span style="display:none"><a href="/wiki/API:Edit" title="API:Edit"> </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.27</div></td> </tr></tbody></table> <style data-mw-deduplicate="TemplateStyles:r6651107">.mw-parser-output .note{background-position:left 7px top 50%;padding:0.5em 0.5em 0.5em 40px;margin:0.5em 0;overflow:hidden;background-color:#f8f9fa;color:#333;background-repeat:no-repeat;border:1px solid #ddd}.mw-parser-output .note-inline{display:inline-block;vertical-align:middle}.mw-parser-output .note-info{background-color:#eaf3ff;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/e/ec/OOjs_UI_icon_information-progressive.svg");background-size:25px;border-color:#a3caff;padding-left:40px;min-height:25px}.mw-parser-output .note-reminder{background-color:#fff9ea;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg");background-size:25px;border-color:#fc3;min-height:25px}.mw-parser-output .note-warn{background-color:#fff9ea;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg");background-size:25px;border-color:#fc3;min-height:25px}.mw-parser-output .note-error{background-color:#fee7e6;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg");background-size:25px;border-color:#c33;min-height:25px}@media screen{html.skin-theme-clientpref-night .mw-parser-output .note{background-color:transparent;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .note{background-color:transparent;color:inherit}}</style><div role="note" class="note note-info">This page documents the account creation API as of MediaWiki 1.27. Documentation of the API as it existed in earlier versions is available here: <b><a href="/wiki/Special:MyLanguage/Api:Account_creation/pre-1.27" title="Special:MyLanguage/Api:Account creation/pre-1.27">Api:Account creation/pre-1.27</a><span style="display:none"><a href="/wiki/API:Account_creation/pre-1.27" title="API:Account creation/pre-1.27"> </a></span></b>.</div> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="API_documentation">API documentation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=1" title="Edit section: API documentation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></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/createaccount" title="Special:ApiHelp/createaccount">Special:<wbr />ApiHelp/<wbr />createaccount</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="createaccount">action=createaccount (create)</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">createaccount</b>)</div> <div class="apihelp-block apihelp-flags"><ul><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 a new user account. </p><p>The general procedure to use this module is: </p> <ol><li>Fetch the fields available from <kbd><a href="/w/api.php?action=help&modules=query%2Bauthmanagerinfo">action=query&meta=authmanagerinfo</a></kbd> with <kbd>amirequestsfor=create</kbd>, and a <kbd>createaccount</kbd> token from <kbd><a href="/w/api.php?action=help&modules=query%2Btokens">action=query&meta=tokens</a></kbd>.</li> <li>Present the fields to the user, and obtain their submission.</li> <li>Post to this module, supplying <var>createreturnurl</var> and any relevant fields.</li> <li>Check the <samp>status</samp> in the response. <ul><li>If you received <samp>PASS</samp> or <samp>FAIL</samp>, you're done. The operation either succeeded or it didn't.</li> <li>If you received <samp>UI</samp>, present the new fields to the user and obtain their submission. Then post to this module with <var>createcontinue</var> and the relevant fields set, and repeat step 4.</li> <li>If you received <samp>REDIRECT</samp>, direct the user to the <samp>redirecttarget</samp> and wait for the return to <var>createreturnurl</var>. Then post to this module with <var>createcontinue</var> and any fields passed to the return URL, and repeat step 4.</li> <li>If you received <samp>RESTART</samp>, that means the authentication worked but we don't have a linked user account. You might treat this as <samp>UI</samp> or as <samp>FAIL</samp>.</li></ul></li></ol> <div class="apihelp-block apihelp-help-urls"><ul><li><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/API:Account_creation" dir="ltr">https://www.mediawiki.org/wiki/Special:MyLanguage/API:Account_creation</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="createaccount:createrequests">createrequests</span></dt><dd class="description"><p>Only use these authentication requests, by the <samp>id</samp> returned from <kbd><a href="/w/api.php?action=help&modules=query%2Bauthmanagerinfo">action=query&meta=authmanagerinfo</a></kbd> with <kbd>amirequestsfor=create</kbd> or from a previous response from this module. </p></dd><dd class="info">Separate values with <kbd>|</kbd> or <a href="/w/api.php?action=help&modules=main#main/datatypes">alternative</a>.</dd><dd class="info">Maximum number of values is 50 (500 for clients that are allowed higher limits).</dd><dt><span dir="ltr" lang="en" id="createaccount:createmessageformat">createmessageformat</span></dt><dd class="description"><p>Format to use for returning messages. </p></dd><dd class="info">One of the following values: html, none, raw, wikitext</dd><dd class="info">Default: wikitext</dd><dt><span dir="ltr" lang="en" id="createaccount:createmergerequestfields">createmergerequestfields</span></dt><dd class="description"><p>Merge field information for all authentication requests into one array. </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="createaccount:createpreservestate">createpreservestate</span></dt><dd class="description"><p>Preserve state from a previous failed login attempt, if possible. </p><p>If <kbd><a href="/w/api.php?action=help&modules=query%2Bauthmanagerinfo">action=query&meta=authmanagerinfo</a></kbd> returned true for <samp>hasprimarypreservedstate</samp>, requests marked as <samp>primary-required</samp> should be omitted. If it returned a non-empty value for <samp>preservedusername</samp>, that username must be used for the <var>username</var> parameter. </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="createaccount:createreturnurl">createreturnurl</span></dt><dd class="description"><p>Return URL for third-party authentication flows, must be absolute. Either this or <var>createcontinue</var> is required. </p><p>Upon receiving a <samp>REDIRECT</samp> response, you will typically open a browser or web view to the specified <samp>redirecttarget</samp> URL for a third-party authentication flow. When that completes, the third party will send the browser or web view to this URL. You should extract any query or POST parameters from the URL and pass them as a <var>createcontinue</var> request to this API module. </p></dd><dt><span dir="ltr" lang="en" id="createaccount:createcontinue">createcontinue</span></dt><dd class="description"><p>This request is a continuation after an earlier <samp>UI</samp> or <samp>REDIRECT</samp> response. Either this or <var>createreturnurl</var> is required. </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="createaccount:createtoken">createtoken</span></dt><dd class="description"><p>A "createaccount" token retrieved from <a href="/w/api.php?action=help&modules=query%2Btokens">action=query&meta=tokens</a> </p></dd><dd class="info">This parameter is required.</dd><dt>*</dt><dd class="description">This module accepts additional parameters depending on the available authentication requests. Use <kbd><a href="/w/api.php?action=help&modules=query%2Bauthmanagerinfo">action=query&meta=authmanagerinfo</a></kbd> with <kbd>amirequestsfor=create</kbd> (or a previous response from this module, if applicable) to determine the requests available and the fields that they use.</dd></dl></div> <div class="apihelp-block apihelp-examples"><div class="apihelp-block-head">Example:</div><dl><dt>Start the process of creating the user <kbd>Example</kbd> with the password <kbd>ExamplePassword</kbd>.</dt><dd><a href="/w/api.php?action=createaccount&username=Example&password=ExamplePassword&retype=ExamplePassword&createreturnurl=http://example.org/&createtoken=123ABC" dir="ltr" rel="nofollow">api.php?action=createaccount&username=Example&password=ExamplePassword&retype=ExamplePassword&createreturnurl=http://example.org/&createtoken=123ABC</a> <a href="/wiki/Special:ApiSandbox#action=createaccount&username=Example&password=ExamplePassword&retype=ExamplePassword&createreturnurl=http://example.org/&createtoken=123ABC"><small>[open in sandbox]</small></a></dd></dl></div> </div> </div> <p><br /> </p> <div class="mw-heading mw-heading2"><h2 id="Creating_an_account">Creating an account</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=2" title="Edit section: Creating an account"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The process has three general steps: </p> <ol><li>Fetch the fields from <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> and the token 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>.</li> <li>Send a POST request with the fetched token, user information and other fields, and return URL to the API.</li> <li>Deal with the response, which might involve further POST requests to supply more information.</li></ol> <div class="mw-heading mw-heading3"><h3 id="Example_1:_Process_on_a_wiki_without_special_authentication_extensions">Example 1: Process on a wiki without special authentication extensions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=3" title="Edit section: Example 1: Process on a wiki without special authentication extensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A wiki without special authentication extensions can be rather straightforward. If your code knows which fields will be required, it might skip the call to <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> and just assume which fields will be needed (i.e. username, password & retyped password, email, possibly realname). </p> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">If you are creating an account for someone else, you'll need to specify a reason for the same by including a <code>reason</code> parameter to the POST request. You could also use <code>mailpassword</code> in place of <code>password</code> and <code>retype</code> parameters to have MediaWiki send the new user a temporary password via email.</div> <div class="mw-heading mw-heading4"><h4 id="POST_request">POST request</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=4" title="Edit section: POST request"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div style="overflow:auto"> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=createaccount&createreturnurl=http://example.com/&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&username=zane&password=password&retype=password&email=zane@example.com&format=json">api.php<span style="margin:0 0.5em">?</span><wbr />action=createaccount<span style="margin:0 0.5em">&</span><wbr />createreturnurl=http://example.com/<span style="margin:0 0.5em">&</span><wbr />createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C<span style="margin:0 0.5em">&</span><wbr />username=zane<span style="margin:0 0.5em">&</span><wbr />password=password<span style="margin:0 0.5em">&</span><wbr />retype=password<span style="margin:0 0.5em">&</span><wbr />email=zane@example.com<span style="margin:0 0.5em">&</span><wbr />format=json</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=createaccount&createreturnurl=http://example.com/&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&username=zane&password=password&retype=password&email=zane@example.com&format=json">[try in ApiSandbox]</a></div> </div> <div class="mw-heading mw-heading4"><h4 id="Response">Response</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=5" title="Edit section: Response"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <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">"createaccount"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"PASS"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"username"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Zane"</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Sample_code">Sample code</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=6" title="Edit section: Sample code"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-gadget-tabbedwindow" style="width:100%"> <div class="mw-heading mw-heading3"><h3 id="Python">Python</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation/Sample_code_1&action=edit&section=T-1" title="Edit section: Python"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></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"> create_account.py</span> <span class="sd"> MediaWiki API Demos</span> <span class="sd"> Demo of `createaccount` module: Create an account on a wiki without the</span> <span class="sd"> special authentication extensions</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">WIKI_URL</span> <span class="o">=</span> <span class="s2">"http://dev.wiki.local.wmftest.net:8080"</span> <span class="n">API_ENDPOINT</span> <span class="o">=</span> <span class="n">WIKI_URL</span> <span class="o">+</span> <span class="s2">"/w/api.php"</span> <span class="c1"># First step</span> <span class="c1"># Retrieve account creation token from `tokens` module</span> <span class="n">PARAMS_0</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'action'</span><span class="p">:</span><span class="s2">"query"</span><span class="p">,</span> <span class="s1">'meta'</span><span class="p">:</span><span class="s2">"tokens"</span><span class="p">,</span> <span class="s1">'type'</span><span class="p">:</span><span class="s2">"createaccount"</span><span class="p">,</span> <span class="s1">'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">API_ENDPOINT</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">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">'createaccounttoken'</span><span class="p">]</span> <span class="c1"># Second step</span> <span class="c1"># Send a post request with the fetched token and other data (user information,</span> <span class="c1"># return URL, etc.) to the API to create an account</span> <span class="n">PARAMS_1</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'action'</span><span class="p">:</span> <span class="s2">"createaccount"</span><span class="p">,</span> <span class="s1">'createtoken'</span><span class="p">:</span> <span class="n">TOKEN</span><span class="p">,</span> <span class="s1">'username'</span><span class="p">:</span> <span class="s1">'your_username'</span><span class="p">,</span> <span class="s1">'password'</span><span class="p">:</span> <span class="s1">'your_password'</span><span class="p">,</span> <span class="s1">'retype'</span><span class="p">:</span> <span class="s1">'retype_your_password'</span><span class="p">,</span> <span class="s1">'createreturnurl'</span><span class="p">:</span> <span class="n">WIKI_URL</span><span class="p">,</span> <span class="s1">'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">API_ENDPOINT</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="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><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation/Sample_code_1&action=edit&section=T-2" title="Edit section: PHP"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></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"> create_account.php</span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `createaccount` module: Create an account on a wiki without the</span> <span class="cm"> special authentication extensions</span> <span class="cm"> MIT license</span> <span class="cm">*/</span> <span class="nv">$wikiUrl</span> <span class="o">=</span> <span class="s2">"http://dev.wiki.local.wmftest.net:8080"</span><span class="p">;</span> <span class="nv">$endPoint</span> <span class="o">=</span> <span class="nv">$wikiUrl</span> <span class="o">.</span> <span class="s2">"/w/api.php"</span><span class="p">;</span> <span class="nv">$createAccount_Token</span> <span class="o">=</span> <span class="nx">getCreateAccountToken</span><span class="p">();</span> <span class="c1">// Step 1</span> <span class="nx">createAccount</span><span class="p">(</span> <span class="nv">$createAccount_Token</span> <span class="p">);</span> <span class="c1">// Step 2</span> <span class="c1">// Step 1: GET request to fetch createaccount token</span> <span class="k">function</span> <span class="nf">getCreateAccountToken</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">"createaccount"</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">"createaccounttoken"</span><span class="p">];</span> <span class="p">}</span> <span class="c1">// Step 2: POST request with the fetched token and other data (user information,</span> <span class="c1">// return URL, etc.) to the API to create an account</span> <span class="k">function</span> <span class="nf">createAccount</span><span class="p">(</span> <span class="nv">$createAccount_Token</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">$wikiUrl</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">"createaccount"</span><span class="p">,</span> <span class="s2">"createtoken"</span> <span class="o">=></span> <span class="nv">$createAccount_Token</span><span class="p">,</span> <span class="s2">"username"</span> <span class="o">=></span> <span class="s2">"your_username"</span><span class="p">,</span> <span class="s2">"password"</span> <span class="o">=></span> <span class="s2">"your_password"</span><span class="p">,</span> <span class="s2">"retype"</span> <span class="o">=></span> <span class="s2">"retype_your_password"</span><span class="p">,</span> <span class="s2">"createreturnurl"</span> <span class="o">=></span> <span class="nv">$wikiUrl</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="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><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation/Sample_code_1&action=edit&section=T-3" title="Edit section: JavaScript"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">/* </span> <span class="cm"> create_account.js</span> <span class="cm"> </span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `createaccount` module: Create an account on a wiki without the</span> <span class="cm"> special authentication extensions</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">wikiUrl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"http://dev.wiki.local.wmftest.net:8080"</span><span class="p">,</span> <span class="w"> </span><span class="nx">endPoint</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">wikiUrl</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s2">"/w/api.php"</span><span class="p">;</span> <span class="c1">// Step 1: GET request to fetch createaccount token</span> <span class="kd">function</span><span class="w"> </span><span class="nx">getCreateAccountToken</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">"createaccount"</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">endPoint</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">createaccount</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">createaccounttoken</span><span class="p">);</span> <span class="w"> </span><span class="p">});</span> <span class="p">}</span> <span class="c1">// Step 2: POST request with the fetched token and other data (user information,</span> <span class="c1">// return URL, etc.) to the API to create an account</span> <span class="kd">function</span><span class="w"> </span><span class="nx">createaccount</span><span class="p">(</span><span class="nx">createaccount_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">"createaccount"</span><span class="p">,</span> <span class="w"> </span><span class="nx">username</span><span class="o">:</span><span class="w"> </span><span class="s2">"your_username"</span><span class="p">,</span> <span class="w"> </span><span class="nx">password</span><span class="o">:</span><span class="w"> </span><span class="s2">"your_password"</span><span class="p">,</span> <span class="w"> </span><span class="nx">retype</span><span class="o">:</span><span class="w"> </span><span class="s2">"retype_your_password"</span><span class="p">,</span> <span class="w"> </span><span class="nx">createreturnurl</span><span class="o">:</span><span class="w"> </span><span class="nx">wikiUrl</span><span class="p">,</span> <span class="w"> </span><span class="nx">createtoken</span><span class="o">:</span><span class="w"> </span><span class="nx">createaccount_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">endPoint</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">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">getCreateAccountToken</span><span class="p">();</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="MediaWiki_JS">MediaWiki JS</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation/Sample_code_1&action=edit&section=T-4" title="Edit section: MediaWiki JS"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">/*</span> <span class="cm"> create_account.js</span> <span class="cm"> MediaWiki API Demos</span> <span class="cm"> Demo of `createaccount` module: Create an account on a wiki without the</span> <span class="cm"> special authentication extensions</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">'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="s1">'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="s1">'createaccount'</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">get</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="kd">var</span><span class="w"> </span><span class="nx">token</span><span class="w"> </span><span class="o">=</span><span class="w"> </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">createaccounttoken</span><span class="p">,</span> <span class="w"> </span><span class="nx">params1</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">'createaccount'</span><span class="p">,</span> <span class="w"> </span><span class="nx">username</span><span class="o">:</span><span class="w"> </span><span class="s1">'your_username'</span><span class="p">,</span> <span class="w"> </span><span class="nx">password</span><span class="o">:</span><span class="w"> </span><span class="s1">'your_password'</span><span class="p">,</span> <span class="w"> </span><span class="nx">retype</span><span class="o">:</span><span class="w"> </span><span class="s1">'retype_your_password'</span><span class="p">,</span> <span class="w"> </span><span class="nx">createreturnurl</span><span class="o">:</span><span class="w"> </span><span class="s1">'http:'</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">mw</span><span class="p">.</span><span class="nx">config</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="w"> </span><span class="s1">'wgServer'</span><span class="w"> </span><span class="p">),</span> <span class="w"> </span><span class="nx">createtoken</span><span class="o">:</span><span class="w"> </span><span class="nx">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="s1">'json'</span> <span class="w"> </span><span class="p">};</span> <span class="w"> </span><span class="nx">api</span><span class="p">.</span><span class="nx">post</span><span class="p">(</span><span class="w"> </span><span class="nx">params1</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="w"> </span><span class="p">}</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-heading3"><h3 id="Example_2:_Process_on_a_wiki_with_a_CAPTCHA_extension">Example 2: Process on a wiki with a CAPTCHA extension</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=7" title="Edit section: Example 2: Process on a wiki with a CAPTCHA extension"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Note the first step below could, if you'd rather, be done as two steps: one to fetch the fields available from <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> and another to fetch the token 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>. </p> <div class="mw-heading mw-heading4"><h4 id="First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens">First step: Fetch fields available from <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> and token 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></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=8" title="Edit section: First step: Fetch fields available from API:Authmanagerinfo and token from API:Tokens"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=query&meta=authmanagerinfo%7Ctokens&amirequestsfor=create&type=createaccount">api.php<span style="margin:0 0.5em">?</span><wbr />action=query<span style="margin:0 0.5em">&</span><wbr />meta=authmanagerinfo|tokens<span style="margin:0 0.5em">&</span><wbr />amirequestsfor=create<span style="margin:0 0.5em">&</span><wbr />type=createaccount</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&meta=authmanagerinfo%7Ctokens&amirequestsfor=create&type=createaccount">[try in ApiSandbox]</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="s2">"batchcomplete"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"query"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"authmanagerinfo"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"canauthenticatenow"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"cancreateaccounts"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"preservedusername"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"requests"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"id"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CaptchaAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"metadata"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"image"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"mime"</span><span class="o">:</span><span class="w"> </span><span class="s2">"image/png"</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"required"</span><span class="o">:</span><span class="w"> </span><span class="s2">"required"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"provider"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CaptchaAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"account"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CaptchaAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"fields"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"captchaId"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"hidden"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"16649214"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CAPTCHA ID"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"This value should be sent back unchanged."</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"captchaInfo"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"null"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/w/index.php?title=Special:Captcha/image&wpCaptchaId=16649214"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"To help protect against automated account creation, please enter the words that appear below in the box ([[Special:Captcha/help|more info]]):"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Description of the CAPTCHA."</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"captchaWord"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CAPTCHA"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Solution of the CAPTCHA."</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">...</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"tokens"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"createaccounttoken"</span><span class="o">:</span><span class="w"> </span><span class="s2">"1de8d3f8023305742e69db9e16b4d5365bd82f9c+\\"</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> <div class="mw-heading mw-heading4"><h4 id="Second_step:_Send_a_post_request_along_with_a_create_account_token,_user_information_and_return_URL"><span id="Second_step:_Send_a_post_request_along_with_a_create_account_token.2C_user_information_and_return_URL"></span>Second step: Send a post request along with a create account token, user information and return URL</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=9" title="Edit section: Second step: Send a post request along with a create account token, user information and return URL"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=createaccount&createreturnurl=http://example.com/&createtoken=9ed1499d99c0c34c73faa07157b3b6075b427365+\&username=Amy&password=password&retype=password&email=amy@example.com&captchaId=70020580&captchaWord=winedtyping">api.php<span style="margin:0 0.5em">?</span><wbr />action=createaccount<span style="margin:0 0.5em">&</span><wbr />createreturnurl=http://example.com/<span style="margin:0 0.5em">&</span><wbr />createtoken=9ed1499d99c0c34c73faa07157b3b6075b427365+\<span style="margin:0 0.5em">&</span><wbr />username=Amy<span style="margin:0 0.5em">&</span><wbr />password=password<span style="margin:0 0.5em">&</span><wbr />retype=password<span style="margin:0 0.5em">&</span><wbr />email=amy@example.com<span style="margin:0 0.5em">&</span><wbr />captchaId=70020580<span style="margin:0 0.5em">&</span><wbr />captchaWord=winedtyping</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=createaccount&createreturnurl=http://example.com/&createtoken=9ed1499d99c0c34c73faa07157b3b6075b427365+\&username=Amy&password=password&retype=password&email=amy@example.com&captchaId=70020580&captchaWord=winedtyping">[try in ApiSandbox]</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="s2">"createaccount"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"status"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PASS"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"username"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Zane"</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> <div class="mw-heading mw-heading4"><h4 id="Sample_Code_2">Sample Code</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=10" title="Edit section: Sample Code"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Note this code sample separates the <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </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> requests, and generally assumes there will be a CAPTCHA and no other complications. </p> <div style="display:block;margin-left:0;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">create_account_with_captcha.py</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"> <div class="mw-highlight mw-highlight-lang-python3 mw-content-ltr" dir="ltr"><pre><span></span><span class="ch">#!/usr/bin/python3</span> <span class="sd">"""</span> <span class="sd"> create_account_with_captcha.py</span> <span class="sd"> MediaWiki Action API Code Samples</span> <span class="sd"> Demo of `createaccount` module: Create an account on a wiki with a special</span> <span class="sd"> authentication extension installed. This example considers a case of a wiki</span> <span class="sd"> where captcha is enabled through extensions like ConfirmEdit</span> <span class="sd"> (https://www.mediawiki.org/wiki/Extension:ConfirmEdit)</span> <span class="sd"> MIT license</span> <span class="sd">"""</span> <span class="kn">import</span> <span class="nn">requests</span> <span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">render_template</span><span class="p">,</span> <span class="n">flash</span><span class="p">,</span> <span class="n">request</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">WIKI_URL</span> <span class="o">=</span> <span class="s2">"https://test.wikipedia.org"</span> <span class="n">API_ENDPOINT</span> <span class="o">=</span> <span class="n">WIKI_URL</span> <span class="o">+</span> <span class="s2">"/w/api.php"</span> <span class="c1"># App config.</span> <span class="n">DEBUG</span> <span class="o">=</span> <span class="kc">True</span> <span class="n">APP</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> <span class="n">APP</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_object</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> <span class="n">APP</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'SECRET_KEY'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'enter_your_secret_key'</span> <span class="nd">@APP</span><span class="o">.</span><span class="n">route</span><span class="p">(</span><span class="s2">"/"</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'POST'</span><span class="p">])</span> <span class="k">def</span> <span class="nf">show_form</span><span class="p">():</span> <span class="w"> </span><span class="sd">""" Render form template and handle form submission request """</span> <span class="n">fields</span> <span class="o">=</span> <span class="n">get_form_fields</span><span class="p">()</span> <span class="n">captcha</span> <span class="o">=</span> <span class="n">fields</span><span class="p">[</span><span class="s1">'CaptchaAuthenticationRequest'</span><span class="p">]</span> <span class="n">captcha_url</span> <span class="o">=</span> <span class="n">WIKI_URL</span> <span class="o">+</span> <span class="n">captcha</span><span class="p">[</span><span class="s1">'captchaInfo'</span><span class="p">][</span><span class="s1">'value'</span><span class="p">]</span> <span class="n">captcha_id</span> <span class="o">=</span> <span class="n">captcha</span><span class="p">[</span><span class="s1">'captchaId'</span><span class="p">][</span><span class="s1">'value'</span><span class="p">]</span> <span class="n">display_fields</span> <span class="o">=</span> <span class="p">[]</span> <span class="n">user_fields</span> <span class="o">=</span> <span class="p">[]</span> <span class="n">captcha_fields</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">:</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">[</span><span class="n">field</span><span class="p">]:</span> <span class="n">details</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'name'</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> <span class="s1">'type'</span><span class="p">:</span> <span class="n">fields</span><span class="p">[</span><span class="n">field</span><span class="p">][</span><span class="n">name</span><span class="p">][</span><span class="s1">'type'</span><span class="p">],</span> <span class="s1">'label'</span><span class="p">:</span> <span class="n">fields</span><span class="p">[</span><span class="n">field</span><span class="p">][</span><span class="n">name</span><span class="p">][</span><span class="s1">'label'</span><span class="p">]</span> <span class="p">}</span> <span class="k">if</span> <span class="n">field</span> <span class="o">!=</span> <span class="s2">"CaptchaAuthenticationRequest"</span><span class="p">:</span> <span class="n">user_fields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">details</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">'captchaWord'</span><span class="p">:</span> <span class="n">captcha_fields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">details</span><span class="p">)</span> <span class="n">display_fields</span> <span class="o">=</span> <span class="n">user_fields</span> <span class="o">+</span> <span class="n">captcha_fields</span> <span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">method</span> <span class="o">==</span> <span class="s1">'POST'</span><span class="p">:</span> <span class="n">create_account</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">form</span><span class="p">,</span> <span class="n">captcha_id</span><span class="p">)</span> <span class="k">return</span> <span class="n">render_template</span><span class="p">(</span><span class="s1">'create_account_form.html'</span><span class="p">,</span> \ <span class="n">captcha</span><span class="o">=</span><span class="n">captcha_url</span><span class="p">,</span> <span class="n">fields</span><span class="o">=</span><span class="n">display_fields</span><span class="p">)</span> <span class="k">def</span> <span class="nf">get_form_fields</span><span class="p">():</span> <span class="w"> </span><span class="sd">""" Fetch the form fields from `authmanagerinfo` module """</span> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span> <span class="n">response</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">API_ENDPOINT</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span> <span class="s1">'action'</span><span class="p">:</span> <span class="s1">'query'</span><span class="p">,</span> <span class="s1">'meta'</span><span class="p">:</span> <span class="s1">'authmanagerinfo'</span><span class="p">,</span> <span class="s1">'amirequestsfor'</span><span class="p">:</span> <span class="s1">'create'</span><span class="p">,</span> <span class="s1">'format'</span><span class="p">:</span> <span class="s1">'json'</span> <span class="p">})</span> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="n">query</span> <span class="o">=</span> <span class="n">data</span> <span class="ow">and</span> <span class="n">data</span><span class="p">[</span><span class="s1">'query'</span><span class="p">]</span> <span class="n">authmanagerinfo</span> <span class="o">=</span> <span class="n">query</span> <span class="ow">and</span> <span class="n">query</span><span class="p">[</span><span class="s1">'authmanagerinfo'</span><span class="p">]</span> <span class="n">fields</span> <span class="o">=</span> <span class="n">authmanagerinfo</span> <span class="ow">and</span> <span class="n">authmanagerinfo</span><span class="p">[</span><span class="s1">'requests'</span><span class="p">]</span> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">fields</span><span class="p">:</span> <span class="k">if</span> <span class="n">field</span><span class="p">[</span><span class="s1">'id'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'MediaWiki</span><span class="se">\\</span><span class="s1">Auth</span><span class="se">\\</span><span class="s1">UserDataAuthenticationRequest'</span><span class="p">,</span> \ <span class="s1">'CaptchaAuthenticationRequest'</span><span class="p">,</span> <span class="s1">'MediaWiki</span><span class="se">\\</span><span class="s1">Auth</span><span class="se">\\</span><span class="s1">PasswordAuthenticationRequest'</span><span class="p">):</span> <span class="n">result</span><span class="p">[</span><span class="n">field</span><span class="p">[</span><span class="s1">'id'</span><span class="p">]]</span> <span class="o">=</span> <span class="n">field</span><span class="p">[</span><span class="s1">'fields'</span><span class="p">]</span> <span class="k">return</span> <span class="n">result</span> <span class="k">def</span> <span class="nf">create_account</span><span class="p">(</span><span class="n">form</span><span class="p">,</span> <span class="n">captcha_id</span><span class="p">):</span> <span class="w"> </span><span class="sd">""" Send a post request along with create account token, user information</span> <span class="sd"> and return URL to the API to create an account on a wiki """</span> <span class="n">createtoken</span> <span class="o">=</span> <span class="n">fetch_create_token</span><span class="p">()</span> <span class="n">response</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="o">=</span><span class="n">API_ENDPOINT</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="p">{</span> <span class="s1">'action'</span><span class="p">:</span> <span class="s1">'createaccount'</span><span class="p">,</span> <span class="s1">'createtoken'</span><span class="p">:</span> <span class="n">createtoken</span><span class="p">,</span> <span class="s1">'username'</span><span class="p">:</span> <span class="n">form</span><span class="p">[</span><span class="s1">'username'</span><span class="p">],</span> <span class="s1">'password'</span><span class="p">:</span> <span class="n">form</span><span class="p">[</span><span class="s1">'password'</span><span class="p">],</span> <span class="s1">'retype'</span><span class="p">:</span> <span class="n">form</span><span class="p">[</span><span class="s1">'retype'</span><span class="p">],</span> <span class="s1">'email'</span><span class="p">:</span> <span class="n">form</span><span class="p">[</span><span class="s1">'email'</span><span class="p">],</span> <span class="s1">'createreturnurl'</span><span class="p">:</span> <span class="s1">'http://127.0.0.1:5000/'</span><span class="p">,</span> <span class="s1">'captchaId'</span><span class="p">:</span> <span class="n">captcha_id</span><span class="p">,</span> <span class="s1">'captchaWord'</span><span class="p">:</span> <span class="n">form</span><span class="p">[</span><span class="s1">'captchaWord'</span><span class="p">],</span> <span class="s1">'format'</span><span class="p">:</span> <span class="s1">'json'</span> <span class="p">})</span> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="n">createaccount</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'createaccount'</span><span class="p">]</span> <span class="k">if</span> <span class="n">createaccount</span><span class="p">[</span><span class="s1">'status'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"PASS"</span><span class="p">:</span> <span class="n">flash</span><span class="p">(</span><span class="s1">'Success! An account with username '</span> <span class="o">+</span> \ <span class="n">form</span><span class="p">[</span><span class="s1">'username'</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' has been created!'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">flash</span><span class="p">(</span><span class="s1">'Oops! Something went wrong -- '</span> <span class="o">+</span> \ <span class="n">createaccount</span><span class="p">[</span><span class="s1">'messagecode'</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"."</span> <span class="o">+</span> <span class="n">createaccount</span><span class="p">[</span><span class="s1">'message'</span><span class="p">])</span> <span class="k">def</span> <span class="nf">fetch_create_token</span><span class="p">():</span> <span class="w"> </span><span class="sd">""" Fetch create account token via `tokens` module """</span> <span class="n">response</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">API_ENDPOINT</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span> <span class="s1">'action'</span><span class="p">:</span> <span class="s1">'query'</span><span class="p">,</span> <span class="s1">'meta'</span><span class="p">:</span> <span class="s1">'tokens'</span><span class="p">,</span> <span class="s1">'type'</span><span class="p">:</span> <span class="s1">'createaccount'</span><span class="p">,</span> <span class="s1">'format'</span><span class="p">:</span> <span class="s1">'json'</span> <span class="p">})</span> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">()</span> <span class="k">return</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">'createaccounttoken'</span><span class="p">]</span> <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> <span class="n">APP</span><span class="o">.</span><span class="n">run</span><span class="p">()</span> </pre></div> </td></tr></tbody></table></div> <div style="display:block;margin-left:0;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">create_account_form.html</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"> <div class="mw-highlight mw-highlight-lang-html mw-content-ltr" dir="ltr"><pre><span></span><span class="cp"><!DOCTYPE html></span> <span class="p"><</span><span class="nt">title</span><span class="p">></span>MediaWiki Create Account<span class="p"></</span><span class="nt">title</span><span class="p">></span> <span class="cm"><!-- CSS files are in here: https://github.com/srish/MediaWiki-Action-API-Code-Samples/tree/master/static --></span> <span class="p"><</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">href</span><span class="o">=</span><span class="s">"static/bootstrap/css/bootstrap.min.css"</span><span class="p">></span> <span class="p"><</span><span class="nt">link</span> <span class="na">rel</span><span class="o">=</span><span class="s">"stylesheet"</span> <span class="na">href</span><span class="o">=</span><span class="s">"static/css/account_form.css"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"container"</span><span class="p">></span> <span class="p"><</span><span class="nt">h2</span><span class="p">></span>Create MediaWiki Account<span class="p"></</span><span class="nt">h2</span><span class="p">></span> <span class="p"><</span><span class="nt">form</span> <span class="na">method</span><span class="o">=</span><span class="s">"POST"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-group"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-field"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"label-field"</span><span class="p">></span>Enter your username<span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">input</span> <span class="na">name</span><span class="o">=</span><span class="s">"username"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-field"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"label-field"</span><span class="p">></span>Password<span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">input</span> <span class="na">type</span><span class="o">=</span><span class="s">"password"</span> <span class="na">name</span><span class="o">=</span><span class="s">"password"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-field"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"label-field"</span><span class="p">></span>Confirm password<span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">input</span> <span class="na">type</span><span class="o">=</span><span class="s">"password"</span> <span class="na">name</span><span class="o">=</span><span class="s">"confirm-password"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-field"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"label-field"</span><span class="p">></span>Enter address (optional)<span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">input</span> <span class="na">name</span><span class="o">=</span><span class="s">"email"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"form-field"</span><span class="p">></span> <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"label-field"</span><span class="p">></span>Enter the text you see on the image below<span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">input</span> <span class="na">name</span><span class="o">=</span><span class="s">"captcha-word"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">"{{ captcha }}"</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">button</span> <span class="na">type</span><span class="o">=</span><span class="s">"submit"</span> <span class="na">class</span><span class="o">=</span><span class="s">"btn btn-success"</span><span class="p">></span>Create your account<span class="p"></</span><span class="nt">button</span><span class="p">></span> <span class="p"></</span><span class="nt">form</span><span class="p">></span> <span class="p"><</span><span class="nt">br</span><span class="p">></span> {% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for message in messages %} <span class="p"><</span><span class="nt">div</span> <span class="na">class</span><span class="o">=</span><span class="s">"alert alert-info"</span><span class="p">></span> {{ message[1] }} <span class="p"></</span><span class="nt">div</span><span class="p">></span> {% endfor %} {% endif %} {% endwith %} <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"><</span><span class="nt">br</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> <span class="p"></</span><span class="nt">div</span><span class="p">></span> </pre></div> </td></tr></tbody></table></div> <div class="mw-heading mw-heading3"><h3 id="Example_3:_Account_creation_on_a_wiki_with_a_CAPTCHA,_an_OpenID_extension,_and_a_two-factor_authentication_extension_enabled"><span id="Example_3:_Account_creation_on_a_wiki_with_a_CAPTCHA.2C_an_OpenID_extension.2C_and_a_two-factor_authentication_extension_enabled"></span>Example 3: Account creation on a wiki with a CAPTCHA, an OpenID extension, and a two-factor authentication extension enabled</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=11" title="Edit section: Example 3: Account creation on a wiki with a CAPTCHA, an OpenID extension, and a two-factor authentication extension enabled"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="First_step:_Fetch_fields_available_from_API:Authmanagerinfo_and_token_from_API:Tokens_2">First step: Fetch fields available from <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> and token 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></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=12" title="Edit section: First step: Fetch fields available from API:Authmanagerinfo and token from API:Tokens"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The fetching of <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </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> is largely the same as in the previous example, and so is not repeated here. The list of requests returned by <a href="/wiki/Special:MyLanguage/API:Authmanagerinfo" title="Special:MyLanguage/API:Authmanagerinfo">API:Authmanagerinfo</a><span style="display:none"><a href="/wiki/API:Authmanagerinfo" title="API:Authmanagerinfo"> </a></span> will include definitions for both the CAPTCHA extension and the OpenID extension. </p> <div class="mw-heading mw-heading4"><h4 id="Second_step:_Answer_the_CAPTCHA_and_select_OpenID_authentication.">Second step: Answer the CAPTCHA and select OpenID authentication.</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=13" title="Edit section: Second step: Answer the CAPTCHA and select OpenID authentication."><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div style="overflow:auto"> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=createaccount&createreturnurl=http://example.com/authenticating.php&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&captchaId=12345&captchaWord=MediaWikiIsCool&username=Alice&openIdProvider=openid.example.net&useOpenId=1">api.php<span style="margin:0 0.5em">?</span><wbr />action=createaccount<span style="margin:0 0.5em">&</span><wbr />createreturnurl=http://example.com/authenticating.php<span style="margin:0 0.5em">&</span><wbr />createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C<span style="margin:0 0.5em">&</span><wbr />captchaId=12345<span style="margin:0 0.5em">&</span><wbr />captchaWord=MediaWikiIsCool<span style="margin:0 0.5em">&</span><wbr />username=Alice<span style="margin:0 0.5em">&</span><wbr />openIdProvider=openid.example.net<span style="margin:0 0.5em">&</span><wbr />useOpenId=1</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=createaccount&createreturnurl=http://example.com/authenticating.php&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&captchaId=12345&captchaWord=MediaWikiIsCool&username=Alice&openIdProvider=openid.example.net&useOpenId=1">[try in ApiSandbox]</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="s2">"createaccount"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"status"</span><span class="o">:</span><span class="w"> </span><span class="s2">"REDIRECT"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"redirecttarget"</span><span class="o">:</span><span class="w"> </span><span class="s2">"https://openid.example.net/openid-auth.php?scope=openid&response_type=code&client_id=ABC&redirect_uri=https://wiki.example.org/wiki/Special:OpenIDConnectReturn&state=XYZ123"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"requests"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"id"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenIdConnectResponseAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"metadata"</span><span class="o">:</span><span class="w"> </span><span class="p">{},</span> <span class="w"> </span><span class="s2">"required"</span><span class="o">:</span><span class="w"> </span><span class="s2">"required"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"provider"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenID Connect at example.net"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"account"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"fields"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"code"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenID Code"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenID Connect code response"</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"state"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenID State"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"OpenID Connect state response"</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> </div> <p>The client would be expected to redirect the user's browser to the provided <var>redirecttarget</var>. </p><p>The OpenID provider would authenticate, and redirect to Special:OpenIDConnectReturn on the wiki, which would validate the OpenID response and then redirect to the <var>createreturnurl</var> provided in the first POST to the API with the <var>code</var> and <var>state</var> parameters added. </p><p>The client gets control of the process back at this point and makes its next API request. </p> <div class="mw-heading mw-heading4"><h4 id="Third_step:_Back_from_OpenID.">Third step: Back from OpenID.</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=14" title="Edit section: Third step: Back from OpenID."><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The client posts the <var>code</var> and <var>state</var> back to the API. The API's response has the two-factor authentication extension prompting the user to set up their second factor. </p> <div style="overflow:auto"> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=createaccount&createcontinue=1&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&code=SplxlOBeZQQYbYS6WxSbIA&state=XYZ123">api.php<span style="margin:0 0.5em">?</span><wbr />action=createaccount<span style="margin:0 0.5em">&</span><wbr />createcontinue=1<span style="margin:0 0.5em">&</span><wbr />createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C<span style="margin:0 0.5em">&</span><wbr />code=SplxlOBeZQQYbYS6WxSbIA<span style="margin:0 0.5em">&</span><wbr />state=XYZ123</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=createaccount&createcontinue=1&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&code=SplxlOBeZQQYbYS6WxSbIA&state=XYZ123">[try in ApiSandbox]</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="s2">"createaccount"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"status"</span><span class="o">:</span><span class="w"> </span><span class="s2">"UI"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"message"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Set up two-factor authentication"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"requests"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"id"</span><span class="o">:</span><span class="w"> </span><span class="s2">"TwoFactorAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"metadata"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"account"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Alice"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"secret"</span><span class="o">:</span><span class="w"> </span><span class="s2">"6CO3 2AKV EP2X MIV5"</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"required"</span><span class="o">:</span><span class="w"> </span><span class="s2">"optional"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"provider"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"account"</span><span class="o">:</span><span class="w"> </span><span class="s2">""</span><span class="p">,</span> <span class="w"> </span><span class="s2">"fields"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"2FAInfo"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"null"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"A bunch of text describing how to set up two-factor auth."</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Two-factor authentication setup instructions"</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="s2">"code"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Code"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Two-factor authentication code"</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"id"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MediaWiki\\Auth\\ButtonAuthenticationRequest:skip2FASetup"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"metadata"</span><span class="o">:</span><span class="w"> </span><span class="p">{},</span> <span class="w"> </span><span class="s2">"required"</span><span class="o">:</span><span class="w"> </span><span class="s2">"optional"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"provider"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MediaWiki\\Auth\\ButtonAuthenticationRequest"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"account"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MediaWiki\\Auth\\ButtonAuthenticationRequest:skip2FASetup"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"fields"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"skip2FASetup"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"button"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"label"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Skip"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"help"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Skip two-factor authentication setup"</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> </div> <p>Now the client would prompt the user to set up a new account in their two-factor authentication app and enter the current code, or allow the user to skip 2FA setup. Let's assume the user does set up 2FA. </p> <div class="mw-heading mw-heading4"><h4 id="Fourth_step:_Set_up_two-factor_authentication.">Fourth step: Set up two-factor authentication.</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=15" title="Edit section: Fourth step: Set up two-factor authentication."><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div style="overflow:auto"> <div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=createaccount&createcontinue=1&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&code=817420">api.php<span style="margin:0 0.5em">?</span><wbr />action=createaccount<span style="margin:0 0.5em">&</span><wbr />createcontinue=1<span style="margin:0 0.5em">&</span><wbr />createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C<span style="margin:0 0.5em">&</span><wbr />code=817420</a></b> <a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=createaccount&createcontinue=1&createtoken=29590a3037d325be70b93fb8258ed29257448cfb%2B%5C&code=817420">[try in ApiSandbox]</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="s2">"createaccount"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="s2">"status"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PASS"</span><span class="p">,</span> <span class="w"> </span><span class="s2">"username"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Alice"</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> </div> <p>The account creation has finally succeeded. </p><p>If at any point account creation fails, a response with status <samp>FAIL</samp> will be returned, along with a <samp>message</samp> to display to the user. </p> <div class="mw-heading mw-heading2"><h2 id="Possible_errors">Possible errors</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=16" title="Edit section: Possible errors"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <caption> </caption> <tbody><tr> <th>Code </th> <th>Info </th></tr> <tr> <td>badtoken </td> <td>Invalid create account token </td></tr> <tr> <td>notoken </td> <td>The <var>token</var> parameter must be set. </td></tr> <tr> <td>mustpostparams </td> <td>The following parameter was found in the query string, but must be in the POST body: createtoken. </td></tr> <tr> <td>missingparam </td> <td>At least one of the parameters "createcontinue" and "createreturnurl" is required. </td></tr> <tr> <td>authmanager-create-no-primary </td> <td>The supplied credentials could not be used for account creation. </td></tr> <tr> <td>noemailcreate </td> <td>You need to provide a valid email address. </td></tr> <tr> <td>invalidemailaddress </td> <td>The email address cannot be accepted as it appears to have an invalid format. <p>Please enter a well-formatted address or empty that field. </p> </td></tr> <tr> <td>badretype </td> <td>The passwords you entered do not match. </td></tr> <tr> <td>userexists </td> <td>Username entered already in use. <p>Please choose a different name. </p> </td></tr> <tr> <td>captcha-createaccount-fail </td> <td>Incorrect or missing CAPTCHA. </td></tr> <tr> <td>acct_creation_throttle_hit </td> <td>Visitors to this wiki using your IP address have created <b>num</b> accounts in the last day, which is the maximum allowed in this time period. <p>As a result, visitors using this IP address cannot create any more accounts at the moment. </p><p>If you are at an event where contributing to Wikimedia projects is the focus, please see <a href="https://meta.wikimedia.org/wiki/Mass_account_creation#Requesting_temporary_lift_of_IP_cap" class="extiw" title="m:Mass account creation">Requesting temporary lift of IP cap</a> to help resolve this issue. </p> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Additional_notes">Additional notes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=17" title="Edit section: Additional notes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Account creations are recorded in <a href="/wiki/Special:Log/newusers" title="Special:Log/newusers">Special:log/newusers</a>.</li></ul> <p>If you are logged in, your username will also be recorded when creating an account. </p> <ul><li>While executing the code snippets provided on this page, remember: <ul><li>Once an account on a wiki is created, it cannot be deleted.</li> <li>Always use <a class="external text" href="https://test.wikipedia.org"><code>https://test.wikipedia.org/w/api.php</code></a> as the endpoint, so that you don't accidentally create accounts on production wikis.</li></ul></li> <li>MediaWiki <b>site administrators</b> and <b>extension developers</b> can disable this API feature by inserting the following line in the configuration file:</li></ul> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgAPIModules</span><span class="p">[</span><span class="s1">'createaccount'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'ApiDisabled'</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API:Account_creation&action=edit&section=18" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Special:MyLanguage/API:Restricting_API_usage" title="Special:MyLanguage/API:Restricting API usage">How to restrict API usage</a><span style="display:none"><a href="/wiki/API:Restricting_API_usage" title="API:Restricting API usage"> </a></span></li></ul> <!-- NewPP limit report Parsed by mw‐web.codfw.canary‐74567ccdbd‐g8bvg Cached time: 20241127093327 Cache expiry: 2947 Reduced expiry: true Complications: [show‐toc] CPU time usage: 0.621 seconds Real time usage: 0.834 seconds Preprocessor visited node count: 6677/1000000 Post‐expand include size: 83287/2097152 bytes Template argument size: 33405/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 34/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 93414/5000000 bytes Lua time usage: 0.116/10.000 seconds Lua memory usage: 1544129/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 448.579 1 -total 47.70% 213.971 1 Template:API 41.21% 184.878 66 Template:Ll 38.06% 170.716 1 Template:Sidebar 25.30% 113.500 133 Template:Translatable 24.40% 109.468 82 Template:Pagelang 13.39% 60.076 1 Template:Api_help 11.57% 51.911 1 Special:ApiHelp/createaccount 8.42% 37.786 1 Template:Mbox 7.34% 32.948 6 Template:ApiEx --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:643758-0!canonical and timestamp 20241127093327 and revision id 6728511. 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:Account_creation&oldid=6728511">https://www.mediawiki.org/w/index.php?title=API:Account_creation&oldid=6728511</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">Category</a>: <ul><li><a href="/wiki/Category:MediaWiki_action_API" title="Category:MediaWiki action API">MediaWiki action 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:35.</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:Account_creation&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.canary-74567ccdbd-g8bvg","wgBackendResponseTime":952,"wgPageParseReport":{"limitreport":{"cputime":"0.621","walltime":"0.834","ppvisitednodes":{"value":6677,"limit":1000000},"postexpandincludesize":{"value":83287,"limit":2097152},"templateargumentsize":{"value":33405,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":34,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":93414,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 448.579 1 -total"," 47.70% 213.971 1 Template:API"," 41.21% 184.878 66 Template:Ll"," 38.06% 170.716 1 Template:Sidebar"," 25.30% 113.500 133 Template:Translatable"," 24.40% 109.468 82 Template:Pagelang"," 13.39% 60.076 1 Template:Api_help"," 11.57% 51.911 1 Special:ApiHelp/createaccount"," 8.42% 37.786 1 Template:Mbox"," 7.34% 32.948 6 Template:ApiEx"]},"scribunto":{"limitreport-timeusage":{"value":"0.116","limit":"10.000"},"limitreport-memusage":{"value":1544129,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.canary-74567ccdbd-g8bvg","timestamp":"20241127093327","ttl":2947,"transientcontent":true}}});});</script> </body> </html>