It's better when it's simple

User Tools

Site Tools


Extension Repository

Extension Repository API

An API allows to query the list of available DokuWiki extensions. It's available at

This API is used by the Extension Manager Plugin.

/lib/plugins/pluginrepo/api.php?fmt=php&ext[]=plugin1&ext[]=plugin2 /lib/plugins/pluginrepo/api.php?fmt=php with &ext[]=plugin1, &tag[]=tag1, &mail[]=mail1, &type[]=4 and/or &q=text.


Using the cmd parameter defines what is returned by the API.

  • ping – just returns a single 1 to show the connection is working
  • query – default query action described below


Defines the output format and is specified by the fmt parameter. Can be:

  • debug – print_r for easy browsing
  • xml – XML, should not be used if can be avoided
  • yaml – YAML encoded data
  • php – PHP serialized data
  • json – JSON encoded data (default)
    • give a callback name as cb parameter and it's JSONP

example: api.php?fmt=json&cb=my_callback


All filters can be combined and will be ANDed together.

Extension Name

Provide one or multiple names in the ext[] parameter. Prefix with template: for templates.

Only full matches currently.

example: api.php?ext[]=wrap&ext[]=template:ach

The parameter q allows to specify a full text query (with query expansion). If no limit was given, the limit is set to 50. If no order was given the result is sorted by the result score.

The fulltext index uses the fields plugin, name, description, author and tag.

example: api.php?q=wrap


To filter by the type use the type parameter, multiple types can be added together.


  • 1 ⇒ 'Syntax',
  • 2 ⇒ 'Admin',
  • 4 ⇒ 'Action',
  • 8 ⇒ 'Render',
  • 16 ⇒ 'Helper',
  • 32 ⇒ 'Template',
  • 64 ⇒ 'Remote',
  • 128 ⇒ 'Auth'

example: api.php?type=5


Filter by one or multiple tags (OR) using the tag[] parameter.

Only full matches currently.

example: api.php?tag[]=media&tag[]=video


We do not expose email addresses to avoid spamming. Instead the MD5 of the lowercased email address is used. You can use it to query by email address(es) using the mail parameter.

example: api.php?mail[]=4933823dc5f71300a20a506869fcf4d9


You can influence the ordering of the results using the order parameter.

Supported fields:

  • lastupdate
  • popularity
  • plugin ('default')
  • all other non-derived DB fields

example: api.php?order=lastupdate


You can limit the number of results using the limit parameter.

example: api.php?limit=5

Old Repository API

/lib/plugins/pluginrepo/repository.php returns plugin/template data as XML. Same syntax as for sorting/filtering the repository table can be used as well as querying for an array of named plugins.

Still in use by e.g. Translate Tool
(see for code with url [wiki]/lib/plugins/pluginrepo/repository.php?includetemplates=yes)

Available filters:

  • plugins – [array of string] returns only named plugins
  • plugintype – [integer] 1, 2, 4, 8, 16, 32=templates
  • plugintag – [string] filters result by plugins with matching tag. It is possible to filter by tag and type at the same time although the table syntax component normally doesn't use this feature.
  • pluginsort – [author/lastupdate/type/popularity/compatibility] result sorted by named field. Shortcuts also available (author=a).
  • showall – [yes] returns plugins regardless of security or obsolete status, normally skipped.
  • includetemplates – [yes] returns templates AND plugins, normally only plugins returned. Combine with plugintype=32 to return templates only.

Example call to get data about syntax plugins:

Example output:

    <name>CAPTCHA Plugin</name>
    <description>Use an image verification (CAPTCHA) to defeat spambots</description>
    <author>Andreas Gohr</author>
    <type>Action, Helper</type>
plugin/repository/api.txt · Last modified: 2020-10-05 22:40 by Klap-in