API:Client code

Other languages:
English • ‎Türkçe • ‎español • ‎polski • ‎русский • ‎日本語 • ‎한국어

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.

This page contains a set of lists, by language, of up-to three recommended client libraries that can be used with the MediaWiki Action API. The recommendations are based on evaluations using API:Client_code/Gold_standard .

New and/or unevaluated libraries should be added to API:Client_code/All .

API client librariesEdit

Last activity refers to the last commit in the repository.
Dates and version numbers were updated on 2019-06-19.

AwkEdit

Name Description Last release Release date Last activity
BotWikiAwk Framework and libraries for creating bots. Includes example bots. 27 March 2019(2019-03-27)
Wikiget Awk CLI program to interface with MediaWiki API for read/write including OAuth. 8 June 2019(2019-06-08)

C++Edit

Name Description Last release Release date Last activity
libmediawiki A library that allows easy editing of a wiki through the MediaWiki API. 9 September 2017(2017-09-09)

Common LispEdit

Name Description Last release Release date Last activity
cl-mediawiki A Common Lisp wrapper for the Mediawiki API. 10 November 2016(2016-11-10)

GoEdit

Name Description Last release Release date Last activity
go-mediawiki Go wrapper for the MediaWiki API. v0.1 4 November 2013(2013-11-04) 8 February 2017(2017-02-08)
go-mwclient Wrapper for the MediaWiki API (supports maxlag, query continuations, OAuth). 1.0.3 3 August 2018(2018-08-03) 3 August 2018(2018-08-03)

HaskellEdit

Name Description Last release Release date Last activity
haskell mediawiki A complete Haskell binding to the MediaWiki API letting you programmatically access (read and write) MediaWiki content. 0.2.6 20 November 2013(2013-11-20) 20 November 2013(2013-11-20)

JavaEdit

Name Description Last release Release date Last activity
JavaWikiBotFramework A library to retrieve data from and maintain MediaWiki-based wikis such as Wikipedia. 4.0.0 13 September 2016(2016-09-13) 15 February 2019(2019-02-15)
jwiki A library for effortlessly interacting with Wikipedia/MediaWiki. 1.8.0 14 April 2020(2020-04-14) 6 May 2020(2020-05-06)
Bliki Engine Can convert wikicode to HTML, DocBook or PDF. Has a helper library for API calls. 27 April 2019(2019-04-27)

More Java libraries available at API:Client_code/All#Java.

JavaScriptEdit

Name Description Last release Release date Last activity
mwbot (Node.js) MWBot uses the Promise pattern and other ES6 methodologies, optimised for creating bots that make edits. Works with any MediaWiki site. v1.0.10 30 October 2017(2017-10-30) 20 February 2019(2019-02-20)
nodemw (Node.js) A generic MediaWiki API client for Node.js. v0.12.2 16 September 2018(2018-09-16) 16 September 2018(2018-09-16)
mediawiki.api (browser) 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. Maintained as part of MediaWiki.

In-wiki JavaScript clients:

Name Description Last release Release date Last activity
mwapilib2 A layer overtop of the requests. Make JS gadgets easier. 25 September 2016(2016-09-25)
JsMwApi A convenience wrapper around raw requests, with some helpers for editing and parsing. 11 June 2014(2014-06-11)

More JavaScript libraries available at API:Client_code/All#JavaScript.

LuaEdit

Name Description Last release Release date Last activity
mediawikiapi 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. 20 September 2018(2018-09-20)

MATLABEdit

Name Description Last release Release date Last activity
MatWiki A preliminary (as of Feb 2019) MATLAB R2016b(9.1.x) client supporting just bot-logins & semantic #ask queries. v1.0.0 19 February 2019(2019-02-19) 19 February 2019(2019-02-19)

.NETEdit

Name Description Last release Release date Last activity
WikiFunctions Library with classes for editing and getting lists of pages via the API, used by AutoWikiBrowser. 6.0.0.1 15 September 2018(2018-09-15) 16 June 2019(2019-06-16)
LinqToWiki Strongly typed library for accessing most of MediaWiki API, with support for autocompletion. 1.5.0 7 May 2015(2015-05-07) 7 May 2015(2015-05-07)
WikiClientLibrary A .NET Standard & asynchronous MediaWiki API client library for wiki sites. The library also supports Flow/Wikibase/Wikia-specific API. v0.7.0-int.7 16 November 2019(2019-11-16) 16 November 2019(2019-11-16)

More .NET libraries available at API:Client_code/All#.NET.

OCamlEdit

Name Description Last release Release date Last activity
ocaml-mediawiki A high-level binding for the MediaWiki API written in OCaml. 29 August 2012(2012-08-29)

PerlEdit

Name Description Last release Release date Last activity
MediaWiki::Bot A higher-level Perl module with read and write functions. Easily extensible with plugins, for example to provide administrator functions (Evaluation).

source code on Github.

5.006003 7 July 2016(2016-07-07) 7 July 2016(2016-07-07)
MediaWiki::API A Perl module for interfacing with the MediaWiki API with file upload/download and editing support. (Debian package). (Evaluation). 0.41 13 November 2015(2015-11-13) 13 November 2015(2015-11-13)

PHPEdit

Name Description Last release Release date Last activity
mediawiki-api-base Library for basic MediaWiki api use. 2.4.0 2 November 2017(2017-11-02) 9 July 2019(2019-07-09)
mediawiki-api A simple library for interacting with the MediaWiki API. 0.7.2 20 November 2017(2017-11-20) 6 April 2019(2019-04-06)
wikibase-api Library for querying Wikidata. 0.7 4 July 2016(2016-07-04) 17 August 2018(2018-08-17)

More PHP libraries available at API:Client_code/All#PHP.

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. By require'ing WebStart.php (MW_INSTALL_PATH may need to be set beforehand, see Manual:$IP), a script gets access to MediaWiki components and consequently it can call the API internally or use other MediaWiki classes and functions directly, which greatly reduces server load.

PythonEdit

Name Description Last release Release date Last activity
Pywikibot A collection of python scripts and a powerful library for bot writing.(Git repository) (IRC) (Evaluation). 3.0.20190722 22 July 2019(2019-07-22) 24 July 2019(2019-07-24)
mwclient Python library that makes most of the API functions accessible. (PyPI) (Evaluation). 0.9.3 23 November 2018(2018-11-23) 10 June 2019(2019-06-10)
wiki-scripts Framework for writing bots, maintenance scripts or performing data analysis. 1.2 31 December 2017(2017-12-31) 13 June 2019(2019-06-13)

Simple Python wrappers for no-abstraction interfaces to the MediaWiki API and basic session handling:

Name Description Last release Release date Last activity
pywikiapi 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. 1.3.2 13 April 2019(2019-04-13) 13 April 2019(2019-04-13)
Wikipedia A Python library that makes it easy to access and parse data from Wikipedia. v1.1 24 December 2013(2013-12-24) 11 November 2016(2016-11-11)
wikitools Provides several layers of abstraction around the API. Doesn't support Python 3. 0.41 7 June 2015(2015-06-07) 28 August 2016(2016-08-28)

More Python libraries available at API:Client_code/All#Python.

REdit

Name Description Last release Release date Last activity
WikipediR 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. 1.5.0 15 February 2017(2017-02-15) 15 February 2017(2017-02-15)

RubyEdit

Name Description Last release Release date Last activity
MediaWiki::Butt Stable and powerful Ruby framework for the API. (Evaluation) 3.0.0 19 October 2017(2017-10-19) 3 January 2019(2019-01-03)
wikipedia-client Ruby framework using the API. v1.10.0 5 March 2018(2018-03-05) 5 March 2018(2018-03-05)
Mediawiki Ruby API Ruby API client library in active development by Wikimedia Foundation Release Engineering. 0.71 31 January 2017(2017-01-31) 5 December 2017(2017-12-05)

More Ruby libraries available at API:Client_code/All#Ruby.

RustEdit

Name Description Last release Release date Last activity
Wikibase RS Rust library to talk to the Wikibase API and serialize data into Rust data structures. 0.37 19 June 2019(2019-06-19) 19 June 2019(2019-06-19)
mediawiki_rust A MediaWiki client library in Rust. 23 June 2019(2019-06-23)

More Rust libraries available at API:Client_code/All#Rust.

ScalaEdit

Name Description Last release Release date Last activity
scalawiki MediaWiki client in Scala. 0.6.0 29 May 2019(2019-05-29) 23 June 2019(2019-06-23)
dbpedia extraction framework Data extraction framework for DBpedia with support Wiki source retrived via MediaWiki API. DBpedia_2015-10 25 July 2016(2016-07-25) 13 April 2019(2019-04-13)
scmw Simple MediaWiki API wrapper for needs of Commonist image upload tool. v-0.140.0 22 December 2017(2017-12-22) 22 December 2017(2017-12-22)

See alsoEdit