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
Known 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
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp