Third parties can submit search requests using Search/Retrieval via URL (SRU), a standard protocol that provides an HTTP REST API for search queries. SRU is the evolution of Z39.50, using HTTP instead of the custom Z39.50 communications protocol.

Emerald's supports SRU version 2.0 and recommends using SRU in place of the legacy Z39.50 service.

The SRU endpoint can be found here:

Technical documentation for the API, highlighting which parameters and operations are supported, etc. can be found here:

In a more human-readable form, the basic details of our SRU implementation are:

Our initial implementation supports two operations, searchRetrieve and explain. The following fields (indexes in the SRU nomenclature) are available for searching:


Searches in



All content fields



Content title



Contributor fields



Content DOI



Abstract field

Note that for technical reasons, this search does not query the subject keywords assigned to content. Instead, it searches in the abstract, to offer some compatibility with this search type.


Abstract field

Content publication date



Abstract field


There is no support for use of dc.type or dcterms.isPartOf fields for searching. We also currently do not support any fields for sorting. In addition, no facets are returned in the search results.

Pagination is supported, so the query parameters maximumRecords and startRecord are available.

SRU documentation

SRU: Search/Retrieval via URL -- SRU, CQL and ZeeRex (Standards, Library of Congress) 

Context Query Language (CQL):
searchRetrieve: Part 5. CQL: The Contextual Query Language 

An example query:

Related information 

Search/Retrieval via URL (SRU)

If you require additional support regarding SRU itself, please contact the Library of Congress in the first instance.