Creating OpenSearch Descriptions

Zotero uses OpenSearch 1.1 and OpenURL with some extensions to allow easy specification of locate engines. For a simple OpenURL endpoint, one can use something like:

<OpenSearchDescription xmlns="">
<Description>CrossRef Search Engine</Description>
<Image width="16" height="16" type="image/x-icon"></Image>
<Url type="text/html" method="GET"

For a more complicated service:

<OpenSearchDescription xmlns="">
<ShortName>Google Scholar</ShortName>
<Description>Google Scholar Search Engine</Description>
<Image width="16" height="16" type="image/x-icon"></Image>
<Url type="text/html" method="GET"

Zotero supports most of the fields specified by the OpenURL specification in any of the following namespaces:

  • info:ofi/fmt:kev:mtx:journal
  • info:ofi/fmt:kev:mtx:book
  • info:ofi/fmt:kev:mtx:patent
  • info:ofi/fmt:kev:mtx:sch_svc
  • info:ofi/fmt:kev:mtx:dissertation

These namespaces are treated interchangeably. For a full list of fields, see the OpenURL documentation.

Zotero also supports any Zotero field in the Zotero namespace ( The following special fields are also supported:

  • openURL - the full OpenURL 1.0 context object
  • year - the year extracted from the Zotero date field

Zotero fields should be used sparingly, as they may not be compatible with other implementations.

For more general details on the OpenSearch description format, see the OpenSearch documentation.

Advertising Engines

You can advertise locate engines by adding

<link rel="search" type="application/x-openurl-opensearchdescription+xml" title="Engine Name" href="" />

to the <head> section of any webpage (with the title and href attribute contents modified). The user can then install the locate engine under the locate menu when visiting the webpage.


An example OpenSearch description for is available here.

dev/creating_locate_engines_using_opensearch.txt ยท Last modified: 2017/11/22 06:05 by bwiernik