MediaWiki extensions manual
OOjs UI icon advanced.svg
Release status: stable
Implementation Special page
Description Allows for elections, polls and surveys
Author(s) Tim Starlingtalk
Latest version 2.0.0 (continuous updates)
Compatibility policy Master maintains backwards compatibility.
MediaWiki 1.25+
Database changes Yes
Tables securepoll_entity
License GNU General Public License 2.0 or later
  • $wgSecurePollTempDir
  • $wgSecurePollUseLogging
  • $wgSecurePollKeepPrivateInfoDays
  • $wgSecurePollScript
  • $wgSecurePollGPGCommand
  • $wgSecurePollCreateWikiGroups
  • $wgSecurePollGpgSignKey
  • $wgSecurePollUseNamespace
  • $wgSecurePollCreateRemoteScriptPath
  • $wgSecurePollCreateWikiGroupDir
  • $wgSecurePollShowErrorDetail
  • securepoll-create-poll
Translate the SecurePoll extension if it is available at translatewiki.net

Check usage and version matrix.

Issues Open tasks · Report a bug

The SecurePoll extension is a special page extension for elections, polls and surveys. It is used for Wikimedia Foundation Board elections and arbitration committee elections, and was used for the Wikimedia license transition vote among other things.



  • Download and place the file(s) in a directory called SecurePoll in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'SecurePoll' );
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

To users running MediaWiki 1.24 or earlier:

The instructions above describe the new way of installing this extension using wfLoadExtension(). If you need to install this extension on these earlier versions (MediaWiki 1.24 and earlier), instead of wfLoadExtension( 'SecurePoll' );, you need to use:

require_once "$IP/extensions/SecurePoll/SecurePoll.php";

You will also need to assign the new 'securepoll-create-poll' user right to some user group. To assign this right to administrators, add the following to your LocalSettings.php:

$wgGroupPermissions['sysop']['securepoll-create-poll'] = true;

This allows all admins to create a poll, but it does not allow all admins to administer a particular poll (including editing a poll, viewing user data, etc.). Individual admins for a particular poll are defined when creating or editing a poll. Only members of the electionadmin group may administer a poll. To create this group, add the following to your LocalSettings.php:

$wgGroupPermissions['electionadmin'] = [];

Then assign a particular user to the electionadmin group via Special:UserRights. Note that election admins can see voter data, so only trusted users should be assigned to this group. If they are removed from the group, they will no longer be able to administer any elections.


There are two ways to create a new poll: manually create an XML file and import it, or use the poll creation interface at Special:SecurePoll.

To create a poll manually, it is required to:

  1. write an XML file
  2. import it using the import.php command-line interface command

In the test folder you can find four example files:

  • 3way-test.xml
  • approval-test.xml
  • radio-range.xml
  • schulze-test.xml

To import a poll, run the following from the cli folder:

extensions/SecurePoll/cli$ php import.php ../test/3way-test.xml

Now visit Special:SecurePoll and you will see your poll.