API:Client code

API Access Libraries
 Notes to library developers


 * Please use GZip compression when making API calls.
 * Bots eat up a lot of bandwidth, which is not free.


 * You must set a descriptive User Agent header
 * Please include your username and wiki or email address.


 * Login has changed (April 2010)
 * See 23076

Bash

 * See API:Client_code/Bash. Requires curl package.Smallman12q (talk) 00:02, 7 January 2013 (UTC)

C++

 * libmediawiki. There is a tutorial in KDE TechBase.

Clojure

 * cloki

Common Lisp

 * 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

 * MediaWiki API Wrapper, based on ICS open-source sockets, with synchronous and asynchronous (event based) requests, requires the JEDI Code Library for dependencies.

Haskell

 * http://hackage.haskell.org/package/mediawiki

Java

 * Bliki Engine - Java Wikipedia API - very complete. Can convert wikicode to HTML, DocBook or PDF.
 * JavaWikiBotFramework - a Java library that makes almost all API functions accessible.
 * Wiki.java — a simple one-class API implementation

Javascript

 * mediaWiki.Api - A ResourceLoader module that ships with MediaWiki core, abstracts many API logic calls into simple one liners.
 * jQuery.ajax - Not specifically made for the MediaWiki API, but most queries are very simple with one or two lines of using  or.
 * 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

 * 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 2.0 (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

 * ocaml-mediawiki

Perl

 * MediaWiki::API - A Perl module for interfacing with the MediaWiki API with file upload/download and editing support. (Debian package)
 * MediaWiki::Bot - A higher-level Perl module with read and write functions. Easily extensible with plugins, for example to provide administrator functions.
 * Documentation Wikibook
 * Google Code project
 * Client scripts
 * Perl MediaWiki API - An open source Perl module wrapping many of the MediaWiki API functions.

PHP
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)

Python

 * Pywikipediabot - collection of python scripts (IRC)
 * mwclient - a Python library that makes most of the API functions accessible. (SVN: https://mwclient.svn.sourceforge.net/svnroot/mwclient/trunk/mwclient)
 * wikitools - Provides several layers of abstraction around the API.
 * simplemediawiki - A simple, no-abstraction interface to the API (handles cookies and other extremely basic things)
 * supersimplemediawiki - Very similar to simplemediawiki, except Python3 compatible

Ruby

 * MediaWiki::Gateway - Ruby framework for the API. Actively maintained until August 2012, tested up to MediaWiki 1.19, 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

 * MediaWiki Tcl Bot Framework, includes IRC-RC Interface

Support Matrix
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.