A MediaWiki API wrapper for PHP based wikibots that [shouldn't] be confusing to use
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Wikimate is a wrapper for the MediaWiki API that aims to be very easy to use. It currently consists of two classes:

  • Wikimate – Serves as a loader and manager for different wiki objects (e.g. pages).
  • WikiPage – Provides an interface to getting/editing pages or sections of them.
  • WikiFile – Provides an interface to downloading/uploading files and getting their properties.

The latest released version of Wikimate is v0.12.0, released on Feb 3, 2017. See CHANGELOG.md for the detailed version history.


Requirements: PHP, and Composer.

Before anything else, since Wikimate is written in PHP, a server-side language, you will need to have PHP installed to run it. Install it with your preferred package management tool (for example, on Ubuntu Linux you can run: sudo apt-get install php5)

Install Composer by following the instructions at https://getcomposer.org/doc/00-intro.md

Then, download Wikimate, and initialise it by running composer install (or composer.bat install if you're on Windows).

To use Wikimate within another project, you can add it as a composer dependency by adding the following to your composer.json file:

"hamstar/Wikimate": "0.12.0"


In your script file (e.g. index.php), include the globals.php file, and create a new Wikimate object with the target wiki's API address. Then provide a username and password to Wikimate's login method, to login to that wiki.

include 'globals.php';

$api_url = 'http://example.com/api.php';
$username = 'bot';
$password = 'password';

$wiki = new Wikimate($api_url);

// You can also pass the domain name:
// $wiki->login($username, $password, $domainName)
if ($wiki->login($username, $password))
	echo 'Success: user logged in.' ;
else {
	$error = $wiki->getError();
	echo "<b>Wikimate error</b>: ".$error['login'];

This example uses echo statements to output any potential errors. You should get a meaningful error message if the authentication fails.

Instead of using echo statements, you can enable/disable debugging with the $wiki->debugMode($boolean) method. Currently only output from the logon process is printed for debugging.

Assuming you were able to login, you're now ready to fully use the API.

See USAGE.md for detailed example code to perform common tasks.


This project is licensed under the MIT license. See LICENSE.md for details.