Primo VE API results - interpretation of results, refining your query, constructing links back to HOLLIS
We upgraded to Primo VE in March 2026, and some parameters for the API have changed. Notably, you must now use these parameter values:
vid=01HVD_INST:HVD2
scope=MyInst_and_CI
You can test these in the Apigee sandbox.
THIS PAGE HAS BEEN UPDATED TO REFLECT INFO FOR PRIMO VE. To see old Back Office API documentation visit https://harvardwiki.atlassian.net/wiki/spaces/LibraryStaffDoc/pages/708968449
This page is populated as questions about the API results are asked. If you don't see what you're looking for, please ask. Interpreting results can be complex, because the data can be complex.
If you are using the Ex Libris Primo API tool in Harvard APIgee’s SANDBOX/Stage environment, and want to compare results to the HOLLIS UI, don't go to HOLLIS production. Instead, go to HOLLIS Sandbox at https://hvd-psb.primo.exlibrisgroup.com/discovery/search?vid=01HVD_INST:HVD2&lang=en
- 1 Format and send a HOLLIS Primo VE query through Harvard APIgee
- 2 General information on the search API from Ex Libris
- 3 Required Harvard-specific parameters
- 4 Definitions of PNX elements you may encounter in each record
- 5 Linking back to a HOLLIS record
- 5.1 Domain
- 5.2 Path and identifiers
- 6 Refining your query
Format and send a HOLLIS Primo VE query through Harvard APIgee
Using the Primo API through Harvard APIgee: Instructions
General information on the search API from Ex Libris
https://developers.exlibrisgroup.com/primo/apis/search/
Required Harvard-specific parameters
vid=01HVD_INST:HVD2
tab=Everything
scope=MyInst_and_CI
(These tab and scope values search “Catalog and Articles” in HOLLIS)inst=01HVD_INST
To search the Library Catalog scope instead of Everything, use:
tab=LibraryCatalog
scope=MyInstitution
Note: additional parameters are needed to fully mimic the UI if you wish to include: non-fulltext CDI content, ‘search inside’ results, suggested search alternatives, etc. The best way to determine the parameters you need are to craft the search you want in HOLLIS, and then mimic those parameters in your API query.
Definitions of PNX elements you may encounter in each record
Notes
All data sources are converted from their original metadata schema into "Primo Normalized XML" or PNX records during ingest.
Some display values contain "$$Q" which is used to indicate that the subsequent string is used to construct a search URL for this field.
Some elements contain limited HTML markup for display rendering
Display elements used in HOLLIS search results
display/title [Title]
display/vertitle [Vernacular title][Alma data only]
display/lds28 [Number of images][Image dataset only]
isplay/creator [Primary personal author]
display/lds82 [Primary corporate/conference author if no personal author present][Alma data only]
display/edition [Edition]
display/lds11 [Publisher][Alma data only]
display/lds19 [Series, formatted for brief result display][Alma data only]
display/ispartof [Host information for Article/Article-like records][CDI data only]
All elements
Linking back to a HOLLIS record
To construct a link to guide the user to a specific record in the HOLLIS UI, use the information below.
Note: to use a Harvard Library permalink in the id.lib.harvard.edu form (recommended for citations in LibGuides, wikipedia, etc.), which will persist through platform migrations, visit: Persistent links to HOLLIS records
Domain
Environment | Domain | Note |
|---|---|---|
VE sandbox, ExL hosted | hvd-psb.primo.exlibrisgroup.com |
|
VE sandbox, Harvard domain | qa.hollis.harvard.edu | Only available after migration to VE spring 2026 |
VE production, ExL hosted | hvd.primo.exlibrisgroup.com |
|
VE production, Harvard domain | hollis.harvard.edu | Only available after migration to VE spring 2026 |
Path and identifiers
Each item in “docs” is a HOLLIS record. You will need to evaluate these elements in order to construct a link to the record in the UI:
adaptor
@idThe path in the permalink will vary based on which adaptor is present:
adaptor | path |
|---|---|
Local Search Engine | permalink/01HVD_INST/1vs5jgf/ |
Primo Central | permalink/01HVD_INST/k2rufo/ |
Complete the link by using the final value in the “@id” element, adding a prefix of “alma” to the identifier if the adaptor was ‘Local Search Engine.”
Local search engine example:
adaptor": "Local Search Engine",
"@id": "https://na03-psb.alma.exlibrisgroup.com/primaws/rest/pub/pnxs/L/99158783974503941"Permalink: https://hvd-psb.primo.exlibrisgroup.com/permalink/01HVD_INST/1vs5jgf/alma99158787432903941
CDI record example:
"adaptor": "Primo Central",
@id": "https://na03-psb.alma.exlibrisgroup.com/primaws/rest/pub/pnxs/PC/cdi_unpaywall_primary_10_1016_j_applanim_2025_106819"
Refining your query
When performing queries in the UI, you can use browser developers tools to very how the query is sent to the API. This is because the Primo UI consumes the API. This will allow you to experiment with how searches in the UI can be sent to the API. In the example below, the Date Limit feature in the UI has been used. By using the developer tools, you can see how this was constructed when sent to the API.
Vendor documentation is available at https://developers.exlibrisgroup.com/primo/apis/.
To filter by DATE, you can use the parameter "&facet=searchcreationdate,include,DATE,TO,DATE" which is the qInclude parameter in the API. Example:
qInclude=facet_searchcreationdate,exact,%5B2020+TO+2025%5D