Post

Innovative Users Conference - IUG 2025 - Unlocking Sierra's REST APIs Practical Python Projects for Libraries

This year’s IUG is here, and with it another chance to talk about some of the Sierra ILS related things that have been grabbing our attention – specifically, REST APIs and Python! In the previous year, more work has gone into the sierra-ils-utils Python Library. The primary focus was on simplifying the design and use of the library, a change that I believe has made it more robust and easier to use when interacting with Sierra’s REST APIs.

This year’s IUG presentation will feature a discussion about using the Sierra ILS REST APIs along with some practical code examples in Python, utilizing the sierra-ils-utils Python library.

This material is being co-presented by both Jeremy Goldstein (Minuteman Library Network) and Ray Voelker (Cincinnati & Hamilton County Public Library).

Presentation

The PDF version of this presentation Unlocking Sierra’s REST APIs has some useful information in it about REST APIs in general, and is aimed at library folks that may want to dip their toe in the water when it comes to interacting with this Sierra feature.

sierra-ils-utils Python Library

This Python Library is available here at the following GitHub link: github.com/chimpy-me/sierra-ils-utils

Additionally, sierra-ils-utils can be found on the Python Package Index – available to install via PIP. A very basic Python quick-start is found below:

1
pip install -U sierra-ils-utils
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sierra_ils_utils import SierraRESTClient

client = SierraRESTClient(
    base_url="https://catalog.library.org/iii/sierra-api/v6/",
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET"
)

# Make a synchronous request (returns a httpx.Response)
response = client.request("GET", "info/token")  # <Response [200 200]>
response.raise_for_status()

# Or, make an async request (returns a httpx.Response)
response = await client.async_request("GET", "info/token")  # <Response [200 200]>
response.raise_for_status()

Supplemental Material

Below, you can find a Jupyter Notebook that covers a variety of topics related to working with the REST APIs.

colab.research.google.com/drive/1fwLQTMkwBQ9-TYduu3jwFDr3q7yLUttP

The Notebook can be run interactively via Google Colab – Colab, or “Colaboratory”, allows you to write and execute Python in your browser. Colab is an extraordinarily useful platform for writing and running Python – especially for those not wanting to install or maintain a Python environment on their own system.

This post is licensed under CC BY 4.0 by the author.