Response

Output Formats

The response contains a list of availability items corresponding to the id parameters given. An availability item may have multiple availability statuses if there is more than one catalog item for a given availability ID. The basic XML and JSON formats produce the entire response as a single element or object, respectively. The streaming JSON response type returns each availability item as a single JSON object, and each each object is separated by a linefeed (‘\n’) character.

Elements in the displayString will display based on the customized configuration of your OPAC. If displayString is not present for a given catalog item, then it is probably best to display a link to the catalog directly to find the item status that way. The Availability API returns the following fields:
  • status – The status of the item. One of ‘available’, ‘not available’, ‘possibly available’ or ‘unknown’
  • statusMessage – A status message provided by the library.
  • location – The library or storage where the item is located.
  • callNumber – The item call number if applicable.
  • locationString – A string providing possible location and / or call number information.

If the displayString fails to satisfy the requirements of a particular UI, the other fields may be used to algorithmically generate a custom availability display string. If you choose this option, keep in mind that these fields are not guaranteed to appear in all availability items, and the exact content of each field varies from library to library.

Example – A basic XML Availability API response

<?xml version="1.0" encoding="UTF-8"?> 
<response 
 version="1.1.0" 
 sessionId="a83cc71f-4d86-4812-913c-b82952642d60" 
 totalRequestTime="0"> 
  <availabilityItems> 
    <availabilities 
     id="10563933"> 
      <availability 
       displayString="AVAILABLE, OFF-SITE STORAGE" 
       status="available" 
       statusMessage="AVAILABLE" 
       locationString="OFF-SITE STORAGE"/> 
      <availability 
       displayString="available, University Library" 
       status="available" 
       location="University Library" 
       callNumber="RC465 .C67 1996" 
       locationString="University Library, RC465 .C67 1996"/> 
    </availabilities> 
    <availabilities 
     id="10529706"> 
      <availability 
       displayString="DUE 12-10-2009, University Library" 
       status="not available" 
       statusMessage="DUE 12-10-2009" 
       locationString="University Library"/> 
    </availabilities> 
    <availabilities 
     id="10827389"> 
      <availability 
       displayString="available, OFF-SITE STORAGE" 
       status="available" 
       location="OFF-SITE STORAGE"/> 
    </availabilities> 
  </availabilityItems> 
</response>

Example – A basic JSON Availability API response

{ 
  "version":"1.1.0", 
  "sessionId":"a83cc71f-4d86-4812-913c-b82952642d60", 
  "totalRequestTime":0, 
  "availabilityItems":[ 
    { 
      "id":"10563933", 
      "availabilities":[ 
        { 
          "displayString":"AVAILABLE, OFF-SITE STORAGE", 
          "status":"available", 
          "statusMessage":"AVAILABLE", 
          "locationString":"OFF-SITE STORAGE" 
        }, 
        { 
          "displayString":"available, University Library", 
          "status":"available", 
          "location":"University Library", 
          "callNumber":"RC465 .C67 1996", 
          "locationString":"University Library, RC465 .C67 1996" 
        } 
      ] 
    }, 
    { 
      "id":"10529706", 
      "availabilities":[ 
        { 
          "displayString":"DUE 12-10-2009, University Library", 
          "status":"not available", 
          "statusMessage":"DUE 12-10-2009", 
          "locationString":"University Library" 
        } 
      ] 
    }, 
    { 
      "id":"10827389", 
      "availabilities":[ 
        { 
          "displayString":"available, OFF-SITE STORAGE", 
          "status":"available", 
          "location":"OFF-SITE STORAGE" 
        } 
      ] 
    } 
  ] 
}

The streaming JSON format is the content of the availabilityItems array from the basic JSON format, with each object separated by a linefeed (‘\n’).

Example – A streaming JSON Availability API response

{“id”:”10563933″,”availabilities”:[{“displayString”:”AVAILABLE, OFF-SITE STORAGE”,”status”:”available”,”statusMessage”:”AVAILABLE”,”locationString”:”OFF-SITE STORAGE”},{“displayString”:”available, University Library”,”status”:”available”,”location”:”University Library”,”callNumber”:”RC465 .C67 1996″,”locationString”:”University Library, RC465 .C67 1996″}]}
{“id”:”10529706″,”availabilities”:[{“displayString”:”DUE 12-10-2009, University Library”,”status”:”not available”,”statusMessage”:”DUE 12-10-2009″,”locationString”:”University Library”}]}
{“id”:”10827389″,”availabilities”:[{“displayString”:”available, OFF-SITE STORAGE”,”status”:”available”,”location”:”OFF-SITE STORAGE”}]}]}