API:Client code

From MediaWiki.org
Jump to: navigation, search
Tools clipart.png This page is part of the MediaWiki API documentation.
Language: English  • 日本語 • русский
MediaWiki API

Quick overview:

v · d · e

API Access Libraries[edit | edit source]

Notes to library developers

  • Please use GZip compression when making API calls (Accept-Encoding: gzip).
Bots eat up a lot of bandwidth, which is not free.
Please include your username and wiki or email address.
  • You should attempt to minimize the number of API calls by asking for multiple items in one request. Use titles=PageA|PageB|PageC and get all the needed lists and properties at the same time. Only ask for what you actually need.
  • We are planning to migrate to JSON-only API, removing all other formats like XML, YAML, and PHP.
  • When querying, use the new continue parameter. (March 2013)

Bash[edit | edit source]

C++[edit | edit source]

Clojure[edit | edit source]

Common Lisp[edit | edit source]

  • cl-mediawiki is a Common Lisp wrapper for the mediawiki API. It is available as a direct download, or (more conveniently) via quicklisp.

Delphi/Object Pascal[edit | edit source]

Go[edit | edit source]

  • go-mediawiki Go wrapper for the MediaWiki API
  • go-mwclient another Go wrapper for the MediaWiki API (supports maxlag)

Haskell[edit | edit source]

Java[edit | edit source]

JavaScript[edit | edit source]

  • https://github.com/macbre/nodemw - Node.js client.
  • mediawiki.api.js - A module that ships with MediaWiki core, abstracts many API calls into simple one liners (uses jQuery.ajax internally).
  • jQuery.ajax - Not specifically made for the MediaWiki API, but most queries are very simple with one or two lines of using $.getJSON( .. ) or $.ajax( .. ).
  • JsMwApi A convenience wrapper around raw requests, with some helpers for editing and parsing.
  • mwapilib - A kind of crappy layer overtop of the requests. Make JS gadgets easier.
  • Luasóg - A framework of standard requests (e.g. log in, log out, read, edit, etc.) as well as a general wrapper method. Includes some helpful stuff like throttling. Project includes a rudimentary IDE for off-site development and execution.

.NET[edit | edit source]

  • AutoWikiBrowser's WikiFunctions library has classes for editing and getting lists of pages via the API. See ApiEdit
  • WikiAccess - a C#-library that makes some API functions accessible, has write API.
  • DotNetWikiBot Framework - written in C#, based on Microsoft® .NET Framework 3.5 (Tutorial)
  • MorebitsDotNet contains C# code for uploading files through the API.
  • LinqToWiki, strongly typed library for accessing most of MediaWiki API, with support for autocompletion

OCaml[edit | edit source]

Perl[edit | edit source]

PHP[edit | edit source]

There are many PHP frameworks for the api, see here for a full list and comparison of frameworks.

  • SxWiki - a lightweight, simple MediaWiki bot framework. (Unmaintained since 2008)
  • Apibot - a modular, somewhat ambitious bot with overlayed UNIX-like framework
  • wikibase-api-php - Specifically for querying Wikidata
  • wikidrain - A wrapper for the WikiMedia API centralized around easily and simply querying Wikipedia articles. (Still actively being developed)

Python[edit | edit source]

  • Pywikipediabot - A collection of python scripts. Seems up to date (Nov 2013) (IRC)
  • mwclient - A Python library that makes most of the API functions accessible. (PyPI)
  • wikitools - Provides several layers of abstraction around the API. Should be up to date (PyPI)
  • Wikipedia -  A Python library that makes it easy to access and parse data from Wikipedia. (PyPI)
  • simplemediawiki - A simple, no-abstraction interface to the API. Handles cookies and other extremely basic things. Python 2.6+ and 3.3+ compatible. (PyPI)
  • supersimplemediawiki - Very similar to simplemediawiki.
  • python-mwapi - A simple wrapper around the Mediawiki API, meant to closely mirror its interface. Last update: Dec 2012 (PyPI)

Ruby[edit | edit source]

  • wikipedia-client - Ruby framework using the API.
  • MediaWiki::Gateway - Ruby framework for the API. Maintained, tested up to MediaWiki 1.22, compatible with Wikimedia wikis.
  • RWikiBot - a Ruby framework using the API. No releases since 2008.
  • rbmediawiki - Another Ruby framework that uses the API. No releases since 2009.

Tcl[edit | edit source]

Support Matrix[edit | edit source]

A support-matrix of many of the actively developed packages from this page for some of the more used API features can be found on the Wikia API Wiki.

See Also[edit | edit source]