Search the OAPEN Library using a REST API

Search syntax

You can search the OAPEN Library using a REST API, using the following syntax: https://library.oapen.org/rest/search?query=[search query]

Examples:

  • Full text query: “water AND fire” - https://library.oapen.org/rest/search?query=%22water+AND+fire%22
  • Query using dc.title: “The deliverance of open access books” - https://library.oapen.org/rest/search?query=dc.title:%22the+deliverance+of+open+access+books%22
  • Query using HANDLE: “20.500.12657/25287” - https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22

List all available metadata

To list all available metadata, use:

https://library.oapen.org/rest/search?query=[search query]&expand=metadata

Examples:

  • Full text query: “water AND fire” - https://library.oapen.org/rest/search?query=%22water+AND+fire%22&expand=metadata
  • Query using dc.title: “The deliverance of open access books” - https://library.oapen.org/rest/search?query=dc.title:%22the+deliverance+of+open+access+books%22&expand=metadata
  • Query using HANDLE: “20.500.12657/25287” - https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22&expand=metadata

List all available bitstream objects

To list all available bitstream objects, use:

https://library.oapen.org/rest/search?query=[search query]&expand=bitstreams

Examples:

  • Full text query: “water AND fire” - https://library.oapen.org/rest/search?query=%22water+AND+fire%22&expand=bitstreams
  • Query using dc.title: “The deliverance of open access books” - https://library.oapen.org/rest/search?query=dc.title:%22the+deliverance+of+open+access+books%22&expand=bitstreams
  • Query using HANDLE: “20.500.12657/25287” - https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22&expand=bitstreams

List all available metadata and bitstream objects

To list both metadata and bitstream objects at once, use:

https://library.oapen.org/rest/search?query=[search query]&expand=metadata,bitstreams

Examples:

  • Full text query: “water AND fire” - https://library.oapen.org/rest/search?query=%22water+AND+fire%22&expand=metadata,bitstreams
  • Query using dc.title: “The deliverance of open access books” - https://library.oapen.org/rest/search?query=dc.title:%22the+deliverance+of+open+access+books%22&expand=metadata,bitstreams
  • Query using HANDLE: “20.500.12657/25287” - https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22&expand=metadata,bitstreams

Selecting fields for your query

To find out which metadata field to use:

  • Select in the web UI an item that corresponds to a possible result of your query
  • Open its full view, using one of these options: Click the “Show full item record” link under the thumbnail or append ?show=full to the item’s URL
  • Select the metadata fields and their corresponding value.

For date fields, best to append the suffix “_dt” after the field’s name, e.g. dc.date.issued_dt if you want the filter to behave as a date and not as text.

Examples:

  • All titles, added in the last week. Query using dc.date.accessioned_dt - https://library.oapen.org/rest/search?query=dc.date.accessioned_dt:[NOW-7DAY/DAY+TO+NOW]
  • All titles, classified as “Politics & Government”, added in the last week. Query using dc.subject.classification, dc.date.accessioned_dt - https://library.oapen.org/rest/search?query=dc.subject.classification:%22Politics+%26+Government%22+AND+dc.date.accessioned_dt:[NOW-7DAY/DAY+TO+NOW]
  • All titles, added between 1 May 2020 and 10 May 2020. Query using dc.date.accessioned_dt - https://library.oapen.org/rest/search?query=dc.date.accessioned_dt:[2020-05-01T00:00:00Z+TO+2020-05-10T23:59:59Z]
  • Find the most recently added title, classified as “Politics & Government”. Query using dc.subject.classification, dc.date.accessioned_dt - https://library.oapen.org/rest/search?query=dc.subject.classification:%22Politics+%26+Government%22&sort=dc.date.accessioned_dt&limit=1

If needed, you can expand metadata, bitstreams or both.

Collections

If you want to expose collections, query the oapen.collection field (using the collection label, not an ID). The same expand options are available.

Example:

  • Find the collection “European Research Council” - https://library.oapen.org/rest/search?query=oapen.collection:%22European+Research+Council%22

Funders

Retrieving all publications by a funder can be achieved via the relationship metadata fields. To find the actual ID for a funder, search by funder name, using the grantor.name field.

Example:

  • Find the funder “Austrian Science Fund (FWF)“ - https://library.oapen.org/rest/search?query=grantor.name:Austrian+Science+Fund+%28FWF%29&expand=metadata
  • The ID can be found with the tag: <UUID>6c9e728b-5e84-472c-a792-21775da55aa0</UUID>

Expose the publications, by querying the oapen.relation.isFundedBy field

Example:

  • The ID of funder Austrian Science Fund is 6c9e728b-5e84-472c-a792-21775da55aa0 - https://library.oapen.org/rest/search?query=oapen.relation.isFundedBy:%226c9e728b-5e84-472c-a792-21775da55aa0%22

If needed, you can expand metadata, bitstreams or both.

Note that querying grantor.name also lists all publications funded by that funder - under the repeated “oapen.relation.funds” field – without the details. Therefore, use the above query to get all details at once instead of using one query per item to get their detailed metadata / files.

Publishers

Retrieving all publications by a publisher can be achieved via the relationship metadata fields. To find the actual ID for a publisher, search by publisher name, using the publisher.name field.

Example:

  • Find the publisher “Oxford University Press“ - https://library.oapen.org/rest/search?query=publisher.name:Oxford+University+Press&expand=metadata
  • The ID can be found with the tag: <UUID>b9501915-cdee-4f2a-8030-9c0b187854b2</UUID>

Expose the publications, by querying the oapen.relation.isPublishedBy field

Example:

  • The ID of publisher Oxford University Press is b9501915-cdee-4f2a-8030-9c0b187854b2 - https://library.oapen.org/rest/search?query=oapen.relation.isPublishedBy:%22b9501915-cdee-4f2a-8030-9c0b187854b2%22

If needed, you can expand metadata, bitstreams or both.

Note that querying publisher.name also lists all publications from that publisher - under the repeated “oapen.relation.isPublisherOf” field – without the details. Therefore, use the above query to get all details at once instead of using one query per item to get their detailed metadata / files.

Communities and collections

The contents of the OAPEN Library are divided into “communities”, and the communities are subdivided into “collections”.

  • List all communities - https://library.oapen.org/rest/communities/
  • List all collections - https://library.oapen.org/rest/collections/

XML or JSON format

You must set your request header’s “Accept” property to either JSON (application/json) or XML (application/xml) depending on the format you prefer to work with. 

Example:

  • JSON format - curl -s -H "Accept: application/json" "https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22&expand=metadata,bitstreams"
  • XML format - curl -s -H "Accept: application/xml" "https://library.oapen.org/rest/search?query=handle:%2220.500.12657/25287%22&expand=metadata,bitstreams"

More information

You can find more information on the REST API in this file.