CINXE.COM
API:Client code - 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:Client code - 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":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"2824bc19-840d-4985-b44f-cab6eb1482dc","wgCanonicalNamespace":"API","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":104,"wgPageName":"API:Client_code","wgTitle":"Client code","wgCurRevisionId":6826982,"wgRevisionId":6826982,"wgArticleId":16467,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["MediaWiki action API","Libraries"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"API:Client_code","wgRelevantArticleId":16467,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["autoconfirmed"],"wgRestrictionMove":["autoconfirmed"],"wgNoticeProject":"mediawiki","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault": true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgTranslatePageTranslation":"source","wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"personal","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["architecture","bitness","brands","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","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"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=["site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.translate.pagetranslation.uls","ext.gadget.syntaxhighlight-copy","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.translate%2CwikimediaBadges%7Cext.translate.edit.documentation.styles%7Cext.translate.tag.languages%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%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.3"> <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:Client code - 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:Client_code"> <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:Client_code"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> <link rel="alternate" type="application/atom+xml" title="MediaWiki Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-104 ns-subject page-API_Client_code rootpage-API_Client_code 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%3AClient+code" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/MediaWiki" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/mediawikiwiki.svg" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="MediaWiki" src="/static/images/mobile/copyright/mediawikiwiki-wordmark.svg" style="width: 7.5em; height: 1.125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search MediaWiki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search MediaWiki" aria-label="Search MediaWiki" autocapitalize="sentences" title="Search MediaWiki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-uls" class="mw-list-item active user-links-collapsible-item"><a data-mw="interface" href="#" class="uls-trigger cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>English</span></a> </li> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=API%3AClient+code" 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%3AClient+code" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=API%3AClient+code" 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%3AClient+code" 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_client_libraries" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#API_client_libraries"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>API client libraries</span> </div> </a> <button aria-controls="toc-API_client_libraries-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 API client libraries subsection</span> </button> <ul id="toc-API_client_libraries-sublist" class="vector-toc-list"> <li id="toc-Awk" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Awk"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Awk</span> </div> </a> <ul id="toc-Awk-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Bash" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Bash"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Bash</span> </div> </a> <ul id="toc-Bash-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-C++" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C++"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>C++</span> </div> </a> <ul id="toc-C++-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Common_Lisp" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Common_Lisp"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>Common Lisp</span> </div> </a> <ul id="toc-Common_Lisp-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Elixir" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Elixir"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.5</span> <span>Elixir</span> </div> </a> <ul id="toc-Elixir-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Go" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Go"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6</span> <span>Go</span> </div> </a> <ul id="toc-Go-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Haskell" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Haskell"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.7</span> <span>Haskell</span> </div> </a> <ul id="toc-Haskell-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.8</span> <span>Java</span> </div> </a> <ul id="toc-Java-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">1.9</span> <span>JavaScript</span> </div> </a> <ul id="toc-JavaScript-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lua" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Lua"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.10</span> <span>Lua</span> </div> </a> <ul id="toc-Lua-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-MATLAB" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MATLAB"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.11</span> <span>MATLAB</span> </div> </a> <ul id="toc-MATLAB-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-.NET" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#.NET"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.12</span> <span>.NET</span> </div> </a> <ul id="toc-.NET-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-OCaml" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#OCaml"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.13</span> <span>OCaml</span> </div> </a> <ul id="toc-OCaml-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Perl" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Perl"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.14</span> <span>Perl</span> </div> </a> <ul id="toc-Perl-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">1.15</span> <span>PHP</span> </div> </a> <ul id="toc-PHP-sublist" class="vector-toc-list"> </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">1.16</span> <span>Python</span> </div> </a> <ul id="toc-Python-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-R" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#R"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.17</span> <span>R</span> </div> </a> <ul id="toc-R-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ruby" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ruby"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.18</span> <span>Ruby</span> </div> </a> <ul id="toc-Ruby-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Rust" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Rust"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.19</span> <span>Rust</span> </div> </a> <ul id="toc-Rust-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Scala" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scala"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.20</span> <span>Scala</span> </div> </a> <ul id="toc-Scala-sublist" class="vector-toc-list"> </ul> </li> </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">2</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">Client code</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:Client_code" 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:Client_code" 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:Client_code"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Client_code&action=edit" title="This page is protected. You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=API:Client_code&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:Client_code"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Client_code&action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=API:Client_code&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:Client_code" 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:Client_code" 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:Client_code&oldid=6826982" 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:Client_code&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%3AClient_code&id=6826982&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%3AClient_code"><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%3AClient_code"><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%3AClient+code"><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%3AClient_code&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:Client_code&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%3AClient+code&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:Client_code/de" class="mw-pt-progress mw-pt-progress--complete" title="API:Client-Code (100% translated)" lang="de" dir="ltr">Deutsch</a></li> <li><a href="/wiki/API:Client_code/de-formal" class="mw-pt-progress mw-pt-progress--med" title="API:Client-Code (54% translated)" lang="de-x-formal" dir="ltr">Deutsch (Sie-Form)</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:Client_code/eo" class="mw-pt-progress mw-pt-progress--med" title="API:Client code/eo (20% translated)" lang="eo" dir="ltr">Esperanto</a></li> <li><a href="/wiki/API:Client_code/tr" class="mw-pt-progress mw-pt-progress--med" title="API:İstemci kodu (51% translated)" lang="tr" dir="ltr">Türkçe</a></li> <li><a href="/wiki/API:Client_code/diq" class="mw-pt-progress mw-pt-progress--med" title="API:Client code/diq (20% translated)" lang="diq" dir="ltr">Zazaki</a></li> <li><a href="/wiki/API:Client_code/es" class="mw-pt-progress mw-pt-progress--high" title="API:Código de cliente (92% translated)" lang="es" dir="ltr">español</a></li> <li><a href="/wiki/API:Client_code/fr" class="mw-pt-progress mw-pt-progress--complete" title="API:code client (100% translated)" lang="fr" dir="ltr">français</a></li> <li><a href="/wiki/API:Client_code/pl" class="mw-pt-progress mw-pt-progress--med" title="API:Client code/pl (54% translated)" lang="pl" dir="ltr">polski</a></li> <li><a href="/wiki/API:Client_code/cs" class="mw-pt-progress mw-pt-progress--high" title="API:Kód klienta (99% translated)" lang="cs" dir="ltr">čeština</a></li> <li><a href="/wiki/API:Client_code/ru" class="mw-pt-progress mw-pt-progress--low" title="API:Client code/ru (1% translated)" lang="ru" dir="ltr">русский</a></li> <li><a href="/wiki/API:Client_code/uk" class="mw-pt-progress mw-pt-progress--med" title="API:Клієнтський код (51% translated)" lang="uk" dir="ltr">українська</a></li> <li><a href="/wiki/API:Client_code/th" class="mw-pt-progress mw-pt-progress--med" title="API:Client code (53% translated)" lang="th" dir="ltr">ไทย</a></li> <li><a href="/wiki/API:Client_code/zh" class="mw-pt-progress mw-pt-progress--med" title="API:客户端代码 (40% translated)" lang="zh" dir="ltr">中文</a></li> <li><a href="/wiki/API:Client_code/ja" class="mw-pt-progress mw-pt-progress--high" title="API:クライアント コード (77% translated)" lang="ja" dir="ltr">日本語</a></li> <li><a href="/wiki/API:Client_code/ko" class="mw-pt-progress mw-pt-progress--med" title="API:클라이언트 코드 (51% 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><a href="/wiki/Special:MyLanguage/API:Account_creation" title="Special:MyLanguage/API:Account creation">Create an account</a><span style="display:none"><a href="/wiki/API:Account_creation" title="API:Account creation"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Block" title="Special:MyLanguage/API:Block">Block or unblock a user</a><span style="display:none"><a href="/wiki/API:Block" title="API:Block"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Userinfo" title="Special:MyLanguage/API:Userinfo">Get info about the current user</a><span style="display:none"><a href="/wiki/API:Userinfo" title="API:Userinfo"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Watchlist_feed" title="Special:MyLanguage/API:Watchlist feed">Get the current user's watchlist as a feed</a><span style="display:none"><a href="/wiki/API:Watchlist_feed" title="API:Watchlist feed"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Options" title="Special:MyLanguage/API:Options">Change user options</a><span style="display:none"><a href="/wiki/API:Options" title="API:Options"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:User_group_membership" title="Special:MyLanguage/API:User group membership">Change user group membership</a><span style="display:none"><a href="/wiki/API:User_group_membership" title="API:User group membership"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/API:Emailuser" title="Special:MyLanguage/API:Emailuser">Send an email</a><span style="display:none"><a href="/wiki/API:Emailuser" title="API:Emailuser"> </a></span></li></ul></td> </tr><tr class="tpl-sidebar-heading"> <th class="" style="font-size: 16px; font-weight: 700; padding-top: 1em;;">Page Operations</th> </tr><tr class="tpl-sidebar-content"> <td class="" style=";"> <ul><li><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><b><a href="/wiki/Special:MyLanguage/API:Client_code" title="Special:MyLanguage/API:Client code">Access libraries</a></b><span style="display:none"><a class="mw-selflink selflink"> </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> <p>Client libraries contain code that developers can use to help with common and basic tasks, so that they don't have to write the code from scratch when their projects interact with an API. </p><p>This page contains a set of lists, by language, of several recommended client libraries that can be used with the MediaWiki Action API. The recommendations are based on evaluations using <a href="/wiki/Special:MyLanguage/API:Client_code/Gold_standard" title="Special:MyLanguage/API:Client code/Gold standard">API:Client code/Gold standard</a><span style="display:none"><a href="/wiki/API:Client_code/Gold_standard" title="API:Client code/Gold standard"> </a></span>. </p> <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">New and/or unevaluated libraries can be added to <a href="/wiki/Special:MyLanguage/API:Client_code/All" title="Special:MyLanguage/API:Client code/All">API:Client_code/All</a><span style="display:none"><a href="/wiki/API:Client_code/All" title="API:Client code/All"> </a></span>.</div> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="API_client_libraries">API client libraries</h2></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info"><i>Last activity</i> refers to the last commit in the repository.<br /> Dates and version numbers were updated on 2019-06-19.</div> <div class="mw-heading mw-heading3"><h3 id="Awk">Awk</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/greencardamom/BotWikiAwk">BotWikiAwk</a> </td> <td>Framework and libraries for creating bots. Includes example bots. </td> <td> </td> <td> </td> <td><time datetime="2019-3-27">27 March 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/greencardamom/Wikiget">Wikiget</a> </td> <td>Awk CLI program to interface with MediaWiki API for read/write including OAuth. </td> <td> </td> <td> </td> <td><time datetime="2019-6-8">8 June 2019</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Bash">Bash</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/BorderCloud/bash-mediawiki">bash-mediawiki</a> </td> <td>An example with Curl that allows easy editing/uploading of a wiki through the MediaWiki API. </td> <td> </td> <td> </td> <td><time datetime="2021-8-17">17 August 2021</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="C++"><span id="C.2B.2B"></span>C++</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://techbase.kde.org/Development/Tutorials/Libmediawiki">libmediawiki</a> </td> <td>A library that allows easy editing of a wiki through the MediaWiki API. </td> <td> </td> <td> </td> <td><time datetime="2017-9-9">9 September 2017</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Common_Lisp">Common Lisp</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/AccelerationNet/cl-mediawiki">cl-mediawiki</a> </td> <td>A Common Lisp wrapper for the MediaWiki API. </td> <td> </td> <td> </td> <td><time datetime="2016-11-10">10 November 2016</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Elixir">Elixir</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release Date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://gitlab.com/adamwight/mediawiki_client_ex">mediawiki_client_ex</a> </td> <td>Adapter for the Action API, EventStreams, and ORES. (<a rel="nofollow" class="external text" href="https://hexdocs.pm/mediawiki_client/readme.html">Documentation</a>) </td> <td>0.4.1 </td> <td><time datetime="2022-12-20">20 December 2022</time> </td> <td><time datetime="2022-12-21">21 December 2022</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Go">Go</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/sadbox/go-mediawiki">go-mediawiki</a> </td> <td>Go wrapper for the MediaWiki API. </td> <td>v0.1 </td> <td><time datetime="2013-11-4">4 November 2013</time> </td> <td><time datetime="2017-2-8">8 February 2017</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/cgt/go-mwclient">go-mwclient</a> </td> <td>Wrapper for the MediaWiki API (supports maxlag, query continuations, OAuth). </td> <td>v1.2.0 </td> <td><time datetime="2020-6-3">3 June 2020</time> </td> <td><time datetime="2020-6-3">3 June 2020</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Haskell">Haskell</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://hackage.haskell.org/package/mediawiki">haskell mediawiki</a> </td> <td>A complete Haskell binding to the MediaWiki API letting you programmatically access (read and write) MediaWiki content. </td> <td>0.2.6 </td> <td><time datetime="2013-11-20">20 November 2013</time> </td> <td><time datetime="2013-11-20">20 November 2013</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Java">Java</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/eldur/jwbf">JavaWikiBotFramework</a> </td> <td>A library to retrieve data from and maintain MediaWiki-based wikis such as Wikipedia. </td> <td>4.0.0 </td> <td><time datetime="2016-9-13">13 September 2016</time> </td> <td><time datetime="2019-2-15">15 February 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/fastily/jwiki">jwiki</a> </td> <td>A library for effortlessly interacting with Wikipedia/MediaWiki. </td> <td>1.8.0 </td> <td><time datetime="2020-4-14">14 April 2020</time> </td> <td><time datetime="2020-5-6">6 May 2020</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/axkr/info.bliki.wikipedia_parser">Bliki Engine</a> </td> <td>Can convert wikicode to HTML, DocBook or PDF. Has a <a rel="nofollow" class="external text" href="https://bitbucket.org/axelclk/info.bliki.wiki/wiki/MediaWikiAPISupport">helper library</a> for API calls. </td> <td> </td> <td> </td> <td><time datetime="2019-4-27">27 April 2019</time> </td></tr></tbody></table> <p>More Java libraries available at <a href="/wiki/API:Client_code/All#Java" title="API:Client code/All">API:Client_code/All#Java</a>. </p> <div class="mw-heading mw-heading3"><h3 id="JavaScript">JavaScript</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.npmjs.com/package/mwn">mwn</a> (Node.js) </td> <td>Mwn is a modern and feature-rich API client with support for both JavaScript and TypeScript. Has classes for conveniently working with page titles and parsing wikitext. Supports both OAuth and BotPasswords. </td> <td>v2.0.2 </td> <td><time datetime="2023-09-30">30 September 2023</time> </td> <td><time datetime="2024-04-06">6 April 2024</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/Fannon/mwbot">mwbot</a> (Node.js) </td> <td>MWBot uses the Promise pattern and other ES6 methodologies, optimised for creating bots that make edits. Works with any MediaWiki site. </td> <td>v2.0.0 </td> <td><time datetime="2017-10-30">30 October 2017</time> </td> <td><time datetime="2021-02-01">1 February 2021</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/macbre/nodemw">nodemw</a> (Node.js) </td> <td>A generic MediaWiki API client for Node.js. </td> <td>v0.16.0 </td> <td><time datetime="2018-09-16">16 September 2018</time> </td> <td><time datetime="2021-10-29">29 October 2021</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/kanasimi/wikiapi">wikiapi</a> (Node.js) </td> <td>A simple way to access MediaWiki API via JavaScript with simple wikitext parser. </td> <td>v1.16.0 </td> <td><time datetime="2020-10-01">1 October 2020</time> </td> <td><time datetime="2021-10-22">22 October 2021</time> </td></tr> <tr> <td><a class="external text" href="https://doc.wikimedia.org/mediawiki-core/master/js/mw.Api.html">mediawiki.api</a> (browser) </td> <td>Generic MediaWiki API client for client-side JavaScript. It ships with MediaWiki core as a ResourceLoader module bundle. It abstracts some high-level concepts and provides a generic client for other queries. </td> <td colspan="3">Maintained as part of MediaWiki. </td></tr></tbody></table> <p>In-wiki JavaScript clients: </p> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a href="https://en.wikinews.org/wiki/User:Bawolff/mwapilib2.js" class="extiw" title="n:User:Bawolff/mwapilib2.js">mwapilib2</a> </td> <td>A layer overtop of the requests. Make JS gadgets easier. </td> <td> </td> <td> </td> <td><time datetime="2016-9-25">25 September 2016</time> </td></tr> <tr> <td><a href="https://en.wiktionary.org/wiki/User_talk:Conrad.Irwin/Api.js" class="extiw" title="wikt:User talk:Conrad.Irwin/Api.js">JsMwApi</a> </td> <td>A convenience wrapper around raw requests, with some helpers for editing and parsing. </td> <td> </td> <td> </td> <td><time datetime="2014-6-11">11 June 2014</time> </td></tr> </tbody></table> <p>More JavaScript libraries available at <a href="/wiki/API:Client_code/All#JavaScript" title="API:Client code/All">API:Client_code/All#JavaScript</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Lua">Lua</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/trougnouf/dtMediaWiki/blob/master/dtMediaWiki.lua">dtMediaWiki</a> </td> <td>Makes query (tokens, userinfo), clientlogin, upload, and logout calls. It handles HTTPS requests and cookies and can be used to upload files to Wikimedia Commons. </td> <td> </td> <td> </td> <td><time datetime="2018-9-20">20 September 2018</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="MATLAB">MATLAB</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/JRCSTU/MatWiki">MatWiki</a> </td> <td>A preliminary (as of Feb 2019) MATLAB R2016b(9.1.x) client supporting just bot-logins & semantic #ask queries. </td> <td>v1.0.0 </td> <td><time datetime="2019-2-19">19 February 2019</time> </td> <td><time datetime="2019-2-19">19 February 2019</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id=".NET">.NET</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a href="https://en.wikipedia.org/wiki/Wikipedia:WikiFunctions" class="extiw" title="w:Wikipedia:WikiFunctions">WikiFunctions</a> </td> <td>Library with classes for editing and getting lists of pages via the API, used by <a href="https://en.wikipedia.org/wiki/WP:AWB" class="extiw" title="w:WP:AWB">AutoWikiBrowser</a>. </td> <td>6.2.1.0 </td> <td><time datetime="2021-6-8">8 June 2021</time> </td> <td><time datetime="2023-10-5">5 October 2023</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/svick/LINQ-to-Wiki">LinqToWiki</a> </td> <td>Strongly typed library for accessing most of MediaWiki API, with support for autocompletion. </td> <td>1.5.0 </td> <td><time datetime="2015-5-7">7 May 2015</time> </td> <td><time datetime="2015-5-7">7 May 2015</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/CXuesong/WikiClientLibrary">WikiClientLibrary</a> </td> <td>A .NET Standard & asynchronous MediaWiki API client library for wiki sites. The library also supports Flow/Wikibase/Wikia-specific API. </td> <td>v0.7.5 </td> <td><time datetime="2021-1-31">31 January 2021</time> </td> <td><time datetime="2022-11-5">5 November 2022</time> </td></tr></tbody></table> <p>More .NET libraries available at <a href="/wiki/Special:MyLanguage/API:Client_code/All#.NET" title="Special:MyLanguage/API:Client code/All">API:Client code/All#.NET</a>. </p> <div class="mw-heading mw-heading3"><h3 id="OCaml">OCaml</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/ppedrot/ocaml-mediawiki">ocaml-mediawiki</a> </td> <td>A high-level binding for the MediaWiki API written in OCaml. </td> <td> </td> <td> </td> <td><time datetime="2012-8-29">29 August 2012</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Perl">Perl</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://metacpan.org/pod/MediaWiki::Bot">MediaWiki::Bot</a> </td> <td>A higher-level Perl module with read and write functions. Easily extensible with plugins, for example <a rel="nofollow" class="external text" href="https://metacpan.org/pod/MediaWiki::Bot::Plugin::Admin">to provide administrator functions</a> (<a href="/wiki/Special:MyLanguage/API:Client_code/Evaluations/MediaWiki-Bot" title="Special:MyLanguage/API:Client code/Evaluations/MediaWiki-Bot">Evaluation</a>). <p><a rel="nofollow" class="external text" href="https://github.com/MediaWiki-Bot/MediaWiki-Bot">source code on GitHub</a>. </p> </td> <td>5.006003 </td> <td><time datetime="2016-7-7">7 July 2016</time> </td> <td><time datetime="2016-7-7">7 July 2016</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://metacpan.org/pod/MediaWiki::API">MediaWiki::API</a> </td> <td>A Perl module for interfacing with the MediaWiki API with file upload/download and editing support. (<a rel="nofollow" class="external text" href="https://packages.debian.org/libmediawiki-api-perl">Debian package</a>). (<a href="/wiki/Special:MyLanguage/API:Client_code/Evaluations/MediaWiki-API" title="Special:MyLanguage/API:Client code/Evaluations/MediaWiki-API">Evaluation</a>). </td> <td>0.41 </td> <td><time datetime="2015-11-13">13 November 2015</time> </td> <td><time datetime="2015-11-13">13 November 2015</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="PHP">PHP</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/addwiki/mediawiki-api-base">mediawiki-api-base</a> </td> <td>Library for basic <a href="/wiki/Special:MyLanguage/MediaWiki" title="Special:MyLanguage/MediaWiki">MediaWiki</a> api use. </td> <td>2.4.0 </td> <td><time datetime="2017-11-2">2 November 2017</time> </td> <td><time datetime="2019-7-9">9 July 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/addwiki/mediawiki-api">mediawiki-api</a> </td> <td>A simple library for interacting with the MediaWiki API. </td> <td>0.7.2 </td> <td><time datetime="2017-11-20">20 November 2017</time> </td> <td><time datetime="2019-4-6">6 April 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/addwiki/wikibase-api">wikibase-api</a> </td> <td>Library for querying <a href="/wiki/Special:MyLanguage/Wikidata" title="Special:MyLanguage/Wikidata">Wikidata</a>. </td> <td>0.7 </td> <td><time datetime="2016-7-4">4 July 2016</time> </td> <td><time datetime="2018-8-17">17 August 2018</time> </td></tr> </tbody></table> <p>More PHP libraries available at <a href="/wiki/Special:MyLanguage/API:Client_code/All#PHP" title="Special:MyLanguage/API:Client code/All">API:Client code/All#PHP</a>. </p> <style data-mw-deduplicate="TemplateStyles:r6824882">.mw-parser-output table.ambox{margin:0 10%;width:unset;border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output table.ambox+table.ambox,.mw-parser-output table.ambox+link+table.ambox,.mw-parser-output table.ambox+style+table.ambox{margin-top:-1px}.mw-parser-output .ambox td.mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox th.mbox-text,.mw-parser-output .ambox td.mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox td.mbox-image{padding:2px 0 2px 0.5em}.mw-parser-output .ambox td.mbox-imageright{padding:2px 0.5em 2px 0}.mw-parser-output table.ambox-notice{border-left-color:#36c}.mw-parser-output table.ambox-speedy{background-color:var(--background-color-error-subtle,#fee7e6)}.mw-parser-output table.ambox-delete,.mw-parser-output table.ambox-speedy{border-left-color:var(--background-color-error--active,#b32424)}.mw-parser-output table.ambox-content{border-left-color:#f28500}.mw-parser-output table.ambox-style{border-left-color:#fc3}.mw-parser-output table.ambox-move{border-left-color:#9932cc}.mw-parser-output table.ambox-protection{border-left-color:#a2a9b1}html body.mediawiki .mw-parser-output .ambox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;box-sizing:border-box;width:238px;font-size:88%;line-height:1.25em}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;box-sizing:border-box;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}</style><table class="ambox-notice box-Notice ambox plainlinks metadata" role="presentation"><tbody><tr><td class="mbox-image"><div style="width:52px"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/40px-OOjs_UI_icon_information-progressive.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/60px-OOjs_UI_icon_information-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/80px-OOjs_UI_icon_information-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">Sometimes people try to use these kind of libraries to access a MediaWiki installation on the same server. This is often unnecessary because MediaWiki itself is written in PHP, especially when the only purpose of the script is interacting with MediaWiki. With <code>require</code> <a href="/wiki/Special:MyLanguage/Manual:WebStart.php" title="Special:MyLanguage/Manual:WebStart.php">WebStart.php</a><span style="display:none"><a href="/wiki/Manual:WebStart.php" title="Manual:WebStart.php"> </a></span> (<code>MW_INSTALL_PATH</code> may need to be set beforehand, see <a href="/wiki/Special:MyLanguage/Manual:$IP" title="Special:MyLanguage/Manual:$IP">Manual:$IP</a><span style="display:none"><a href="/wiki/Manual:$IP" title="Manual:$IP"> </a></span>), a script gets access to <a href="/wiki/Special:MyLanguage/Manual:Code" title="Special:MyLanguage/Manual:Code">MediaWiki components</a> and consequently it can <a href="/wiki/Special:MyLanguage/API:Calling_internally" title="Special:MyLanguage/API:Calling internally">call the API internally</a> or use other MediaWiki classes and functions directly, which greatly reduces server load.</div></td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Python">Python</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Type hints </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a href="/wiki/Special:MyLanguage/Manual:Pywikibot" title="Special:MyLanguage/Manual:Pywikibot">Pywikibot</a><span style="display:none"><a href="/wiki/Manual:Pywikibot" title="Manual:Pywikibot"> </a></span> (<a class="external text" href="https://doc.wikimedia.org/pywikibot/stable/">docs</a>) </td> <td style="background:#9F9;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>A collection of Python scripts and a powerful library for bot writing. (<a rel="nofollow" class="external text" href="https://pypi.python.org/pypi/pywikibot/">PyPI</a>) (<a href="https://gerrit.wikimedia.org/g/pywikibot/core" class="extiw" title="git:pywikibot/core">Git repository</a>) (<style data-mw-deduplicate="TemplateStyles:r6651115">.mw-parser-output .irc-connect>a{color:green}@media screen{html.skin-theme-clientpref-night .mw-parser-output .irc-connect>a{color:#12c812}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .irc-connect>a{color:#12c812}}</style><span class="plainlinks" style="font-family: monospace,Courier; white-space: pre-wrap !important; word-wrap: break-word; max-width: 1200px; overflow: auto;" title="#pywikibot on Libera.Chat IRC"><a rel="nofollow" class="external text" href="ircs://irc.libera.chat:6697/pywikibot">#pywikibot</a></span> <sup class="plainlinks irc-connect"><a rel="nofollow" class="external text" href="https://web.libera.chat/?channel=#pywikibot">connect</a></sup>) (<a href="/wiki/Special:MyLanguage/API:Client_code/Evaluations/Pywikibot" title="Special:MyLanguage/API:Client code/Evaluations/Pywikibot">Evaluation</a>). </td> <td>9.5.0 </td> <td><time datetime="2024-10-30">30 October 2024</time> </td> <td><time datetime="2024-11">November 2024</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/fastily/pwiki">pwiki</a> (<a rel="nofollow" class="external text" href="https://fastily.github.io/pwiki/">docs</a>) </td> <td style="background:#9F9;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>A Python library for developing bots/tools, focused on ease of use and simplicity. </td> <td>1.1.1 </td> <td><time datetime="2021-10-15">15 October 2021</time> </td> <td><time datetime="2022-5-28">28 May 2022</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/mwclient/mwclient">mwclient</a> (<a rel="nofollow" class="external text" href="https://mwclient.readthedocs.io/">docs</a>) </td> <td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No </td> <td>Python library that makes most of the API functions accessible. (<a rel="nofollow" class="external text" href="https://pypi.python.org/pypi/mwclient/">PyPI</a>) (<a href="/wiki/Special:MyLanguage/API:Client_code/Evaluations/mwclient" title="Special:MyLanguage/API:Client code/Evaluations/mwclient">Evaluation</a>). </td> <td>0.10.1 </td> <td><time datetime="2020-5-28">28 May 2020</time> </td> <td><time datetime="2021-9-26">26 September 2021</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/lahwaacz/wiki-scripts">wiki-scripts</a> (<a rel="nofollow" class="external text" href="https://lahwaacz.github.io/wiki-scripts/">docs</a>) </td> <td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No </td> <td>Framework for writing bots, maintenance scripts or performing data analysis. </td> <td>1.2 </td> <td><time datetime="2017-12-31">31 December 2017</time> </td> <td><time datetime="2019-6-13">13 June 2019</time> </td></tr></tbody></table> <p>Simple Python wrappers for no-abstraction interfaces to the MediaWiki API and basic session handling: </p> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Type hints </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://pypi.org/project/pywikiapi/">pywikiapi</a> </td> <td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No </td> <td>A minimalistic library that handles some of the core MediaWiki API complexities like handling continuations, login, errors, and warnings, but does not impose any additional abstraction layers. </td> <td>1.3.2 </td> <td><time datetime="2019-4-13">13 April 2019</time> </td> <td><time datetime="2019-4-13">13 April 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/goldsmith/Wikipedia">Wikipedia</a> (<a rel="nofollow" class="external text" href="https://wikipedia.readthedocs.io/">docs</a>) </td> <td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No </td> <td>A Python library that makes it easy to access and parse data from Wikipedia. </td> <td>v1.1 </td> <td><time datetime="2013-12-24">24 December 2013</time> </td> <td><time datetime="2016-11-11">11 November 2016</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/alexz-enwp/wikitools">wikitools</a> </td> <td style="background:#F99;vertical-align:middle;text-align:center;" class="table-no">No </td> <td>Provides several layers of abstraction around the API. Doesn't support Python 3. </td> <td>0.41 </td> <td><time datetime="2015-6-7">7 June 2015</time> </td> <td><time datetime="2016-8-28">28 August 2016</time> </td></tr></tbody></table> <p>More Python libraries available at <a href="/wiki/Special:MyLanguage/API:Client_code/All#Python" title="Special:MyLanguage/API:Client code/All">API:Client code/All#Python</a>. </p> <div class="mw-heading mw-heading3"><h3 id="R">R</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://cran.r-project.org/web/packages/WikipediR/index.html">WikipediR</a> </td> <td>A wrapper for the MediaWiki API, aimed particularly at the Wikimedia 'production' wikis, such as Wikipedia. Can be used to retrieve page text, information about users or the history of pages, and elements of the category tree. </td> <td>1.5.0 </td> <td><time datetime="2017-2-15">15 February 2017</time> </td> <td><time datetime="2017-2-15">15 February 2017</time> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Ruby">Ruby</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/ftb-gamepedia/mediawiki-butt-ruby">MediaWiki::Butt</a> </td> <td>Stable and powerful Ruby framework for the API. (<a href="/wiki/Special:MyLanguage/API:Client_code/Evaluations/MediaWiki-Butt" title="Special:MyLanguage/API:Client code/Evaluations/MediaWiki-Butt">Evaluation</a>) </td> <td>3.0.0 </td> <td><time datetime="2017-10-19">19 October 2017</time> </td> <td><time datetime="2019-1-3">3 January 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/kenpratt/wikipedia-client">wikipedia-client</a> </td> <td>Ruby framework using the API. </td> <td>v1.10.0 </td> <td><time datetime="2018-3-5">5 March 2018</time> </td> <td><time datetime="2018-3-5">5 March 2018</time> </td></tr> <tr> <td><a href="https://gerrit.wikimedia.org/r/admin/projects/mediawiki/ruby/api" class="extiw" title="gerrit:admin/projects/mediawiki/ruby/api">MediaWiki Ruby API</a> </td> <td>Ruby API client library in active development by <a href="/wiki/Special:MyLanguage/Wikimedia_Release_Engineering_Team" title="Special:MyLanguage/Wikimedia Release Engineering Team">Wikimedia Foundation Release Engineering</a>. </td> <td>0.71 </td> <td><time datetime="2017-1-31">31 January 2017</time> </td> <td><time datetime="2017-12-5">5 December 2017</time> </td></tr></tbody></table> <p>More Ruby libraries available at <a href="/wiki/Special:MyLanguage/API:Client_code/All#Ruby" title="Special:MyLanguage/API:Client code/All">API:Client code/All#Ruby</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Rust">Rust</h3></div> <table class="wikitable" style="width:100%"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://crates.io/crates/wikibase">Wikibase RS</a> </td> <td>Rust library to talk to the Wikibase API and serialize data into Rust data structures. </td> <td>0.37 </td> <td><time datetime="2019-6-19">19 June 2019</time> </td> <td><time datetime="2019-6-19">19 June 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/magnusmanske/mediawiki_rust">mediawiki_rust</a> </td> <td>A MediaWiki client library in Rust. </td> <td> </td> <td> </td> <td><time datetime="2020-11-16">16 November 2020</time> </td></tr> <tr> <td><a href="/wiki/Mwbot-rs" title="Mwbot-rs">mwbot-rs</a> </td> <td>A framework for writing bots on MediaWiki </td> <td>0.4.3 </td> <td><time datetime="2022-10-15">15 October 2022</time> </td> <td><time datetime="2022-11-5">5 November 2022</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://crates.io/crates/wiki">wiki</a> </td> <td>Library for interacting with MediaWiki APIs </td> <td>0.0.3 </td> <td><time datetime="2022-8-10">10 August 2022</time> </td> <td><time datetime="2022-11-05">5 November 2022</time> </td></tr></tbody></table> <p>More Rust libraries available at <a href="/wiki/Special:MyLanguage/API:Client_code/All#Rust" title="Special:MyLanguage/API:Client code/All">API:Client code/All#Rust</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Scala">Scala</h3></div> <table class="wikitable"> <tbody><tr> <th>Name </th> <th>Description </th> <th>Last release </th> <th>Release date </th> <th>Last activity </th></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/intracer/scalawiki">scalawiki</a> </td> <td>MediaWiki client in Scala. </td> <td>0.6.3 </td> <td><time datetime="2020-9-17">17 September 2020</time> </td> <td><time datetime="2019-9-28">28 September 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/dbpedia/extraction-framework">dbpedia extraction framework</a> </td> <td>Data extraction framework for DBpedia with support Wiki source retrieved via MediaWiki API. </td> <td>DBpedia_2015-10 </td> <td><time datetime="2016-7-25">25 July 2016</time> </td> <td><time datetime="2019-4-13">13 April 2019</time> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/ritschwumm/scmw">scmw</a> </td> <td>Simple MediaWiki API wrapper for needs of <a href="https://commons.wikimedia.org/wiki/Commons:Commonist" class="extiw" title="commons:Commons:Commonist">Commonist</a> image upload tool. </td> <td>v-0.140.0 </td> <td><time datetime="2017-12-22">22 December 2017</time> </td> <td><time datetime="2017-12-22">22 December 2017</time> </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div> <ul><li><a href="/wiki/Special:MyLanguage/API:Client_code/All" title="Special:MyLanguage/API:Client code/All">API:Client code/All</a><span style="display:none"><a href="/wiki/API:Client_code/All" title="API:Client code/All"> </a></span> — All known API client libraries.</li> <li><a href="/wiki/Special:MyLanguage/API:Client_code/Gold_standard" title="Special:MyLanguage/API:Client code/Gold standard">API:Client code/Gold standard</a><span style="display:none"><a href="/wiki/API:Client_code/Gold_standard" title="API:Client code/Gold standard"> </a></span> — Describes best practices for action API client libraries.</li> <li><a href="https://en.wikipedia.org/wiki/Wikipedia:Creating_a_bot#Programming_languages_and_libraries" class="extiw" title="w:Wikipedia:Creating a bot">Collection of bot libraries on Wikipedia</a>, several of these use the API.</li> <li><a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-api-demos">mediawiki-api-demos</a> — Demo apps and code snippets in Python and JavaScript demonstrating how to use various modules of the MediaWiki Action API.</li></ul> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐648bd44df8‐tvf8r Cached time: 20241117002704 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.638 seconds Real time usage: 0.748 seconds Preprocessor visited node count: 17643/1000000 Post‐expand include size: 68273/2097152 bytes Template argument size: 28078/2097152 bytes Highest expansion depth: 17/100 Expensive parser function count: 18/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 12310/5000000 bytes Lua time usage: 0.145/10.000 seconds Lua memory usage: 1596019/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 471.674 1 -total 41.47% 195.603 1 Template:API 36.20% 170.732 83 Template:Date 32.36% 152.612 1 Template:Sidebar 30.64% 144.512 57 Template:Ll 22.02% 103.879 83 Template:I18n_month 18.65% 87.975 114 Template:Translatable 16.63% 78.442 58 Template:Pagelang 16.39% 77.324 83 Template:Int 7.62% 35.954 1 Template:Mbox --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:16467-0!canonical and timestamp 20241117002704 and revision id 6826982. Rendering was triggered because: api-parse --> </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:Client_code&oldid=6826982">https://www.mediawiki.org/w/index.php?title=API:Client_code&oldid=6826982</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:MediaWiki_action_API" title="Category:MediaWiki action API">MediaWiki action API</a></li><li><a href="/wiki/Category:Libraries" title="Category:Libraries">Libraries</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 4 November 2024, at 16:10.</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:Client_code&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-84d8f4b96-7ck9c","wgBackendResponseTime":103,"wgPageParseReport":{"limitreport":{"cputime":"0.638","walltime":"0.748","ppvisitednodes":{"value":17643,"limit":1000000},"postexpandincludesize":{"value":68273,"limit":2097152},"templateargumentsize":{"value":28078,"limit":2097152},"expansiondepth":{"value":17,"limit":100},"expensivefunctioncount":{"value":18,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":12310,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 471.674 1 -total"," 41.47% 195.603 1 Template:API"," 36.20% 170.732 83 Template:Date"," 32.36% 152.612 1 Template:Sidebar"," 30.64% 144.512 57 Template:Ll"," 22.02% 103.879 83 Template:I18n_month"," 18.65% 87.975 114 Template:Translatable"," 16.63% 78.442 58 Template:Pagelang"," 16.39% 77.324 83 Template:Int"," 7.62% 35.954 1 Template:Mbox"]},"scribunto":{"limitreport-timeusage":{"value":"0.145","limit":"10.000"},"limitreport-memusage":{"value":1596019,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-648bd44df8-tvf8r","timestamp":"20241117002704","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>