Hi Marwa,

Access to the APIs for every Primo installation (which the system is hosted by the customer or Ex Libris) are IP restricted by default and unfortunately there are security concerns with opening up them to anything but a few trusted clients so looking at an alternate open search API like NLM (with much richer metadata) may be the way to go for your project. 


Kevin Reiss

On Friday, February 14, 2014 1:27 AM, jason bengtson <[log in to unmask]> wrote:
Hi Marwa,

We’re in the process of adopting Primo on the Health Sciences Campus of the University of Oklahoma. I think you may want to use a mechanism other than Primo for something like this. The reason I say this is that Primo is, essentially, an aggregator from multiple sources. As part of this aggregation process it reduces (in a very literal sense) incoming data streams in various formats, such as MARC or Dublin Core, to “PNX” records . . . essentially a proprietary XML format designed around the display and delivery needs of the Primo tool. As such, the resultant data isn’t nearly as rich or useful for your personalization purposes (I suspect) as the source data would be. Now, depending on the way the PNX is normalized by the institution using the tool, the PNX record could contain more information, or different types of information, than it would out of the box, but other than customizing location information, or similar facets of a record, there
 really isn’t much reason for an institution to perform significant enrichment of the PNX data set. Primo is a pretty blunt instrument. If you really want to see the PNX for an individual record you don’t need any kind of api, just add &showPnx=true to the end of the url (although that’s not a full solution for you, in and of itself, since that won’t work on the list of returns, only on single records). Beyond that, I’m not sure there is an API to do what you want. Most of the Primo apis seem to exist to augment some lacking baked in functionality. There is a Primo Central api, though I haven’t really explored it much beyond using it in our system view. Remember, Primo is the bottom of the funnel . . . what’s left of the metadata at that point is largely lowest common denominator, IMHO.

If you want a richer data set to work with for purposes of experimental personalization (I’m guessing you’re building or preparing to build some kind of adaptive algorithm for this project) you would probably be better off grabbing query dependent records from research tools like the US National Library of Medicine’s PubMed (through the publicly available Entrez tool). PubMed is mainly used for medical research, and the metadata it employs is, in many areas, still kind of thin (the controlled vocabulary used, MeSH, is outstanding, but fields like author and affiliation are not well normalized), but it’s a much richer source than you’re likely to see from any PNX records. In addition, NLM offers some very robust apis that allow you to easily query and retrieve the records from a search in their full XML glory ( This is just an example of course; there are other publically usable apis and plenty of
 vendor apis that your library might allow you some provisional access to (although that can be a big pain in the neck for them, since access to the api usually means getting you a password other than the master account password issued by the vendor and then terminating at the end of your project, assuming there’s no licensing issue).

Of course, this is my opinion based on our experience to date and other folks may have a very different take on Primo. I hope this is helpful and good luck with your project.

Best regards,

Jason Bengtson, MLIS, MA
Head of Library Computing and Information Systems
Assistant Professor, Graduate College
Department of Health Sciences Library and Information Management
University of Oklahoma Health Sciences Center
405-271-2285, opt. 5405-271-3297 (fax)
[log in to unmask]

This e-mail is intended solely for the use of the individual to whom it is addressed and may contain information that is privileged, confidential or otherwise exempt from disclosure. If the reader of this e-mail is not the intended recipient or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by replying to the original message at the listed email address. Thank You.

On Feb 13, 2014, at 11:00 PM, Marwah Khaled H Alaofi <[log in to unmask]> wrote:

> Hi everyone,
> I'm studying at the Faculty of IT at Monash University in Melbourne,
> Australia, currently for a masters degree in IT.
> My research interest is in the applications of data mining and information
> retrieval in education and for my masters
> thesis I chose to investigate ways to personalise library search results
> for coursework students.
> My procedure is based on getting query-dependent results from Monash
> Library Exlibris Primo as complete records (i.e
> with metadata) and work from there to enhance the degree of relevance.
> In order for me to test my hypothesis I need to be able to use the API and
> fetch query-dependent results.
> I've asked for access from Monash Library but it is somehow taking so long!
> I was told that the API is
> restricted by the IP and that it is not likely I will be granted access.
> Well, I'm wondering if you could perhaps direct me to
> any educational library where Primo is used, preferably university library,
> and of which I can obtain an access to the API. If that is not likely to
> happen (or not possible in a limited time frame) I'd alternatively change
> my testing environment and look for another digital library system that can
> be easily accessed through a flexible API. I'll be glad to hear from you!
> It's a very important step in my research and any insights or
> recommendation will be highly appreciated.
> Thanks all,
> Cheers,
> Marwa