{"id":"ab689401-d63f-4d49-8ce5-491f75ba4305","task":"Search the Primo catalog and retrieve a full bibliographic record via Ex Libris Primo REST API","domain":"developers.exlibrisgroup.com","steps":["Generate a Primo API key from the Ex Libris Developer Network scoped to the Primo Read service for your institution's view","GET /primo/v1/search?vid={viewId}&tab={tabId}&scope={scopeId}&q=any,contains,{encodedQuery}&apikey={key} to execute a keyword search against the configured view","Parse the docs array in the response; each element contains a pnx (Primo Normalized XML) object with brief record metadata: title, creator, format, and recordid","Extract the recordid from the brief record (e.g., alma{MMS_ID} format for Alma-backed records)","GET /primo/v1/pnxs/{scope}/{recordId}?vid={viewId}&apikey={key} to retrieve the full PNX record including all subject headings, ISBNs, holdings, and availability data","Parse the delivery section of the full PNX for physical holding location and call number, or the links section for electronic resource URLs"],"gotchas":["Primo API keys are view-scoped and institution-specific; a key issued for one institution's view will not retrieve records from another institution's Primo instance even within the same consortium","The Primo REST API daily quota is 5 calls per FTE user licensed; high-throughput search automations will exhaust this limit quickly — cache search results aggressively and design workflows to minimize repeated identical queries","Record IDs in Primo are prefixed by source type (e.g., alma, crossref, primo_central_multiple_fe) and the prefix affects which endpoint path returns the full record — always use the verbatim recordid value from the search response, never construct it manually"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/ab689401-d63f-4d49-8ce5-491f75ba4305"}