Administering Sierra API Client Keys
Sierra API client key administration enables you to create, edit, refresh, and delete client keys for Sierra REST API access. The Sierra API Keys page presents a list of existing client keys with the following information:
Client
The name of the designated user of the client key.
API Key
The unique API key.
Expiration Date
The specified expiration date for the API key. This field is blank for keys that don't expire.
Status
The status of the API key:
Pending
The API key exists, but the client secret has not been created.
Enabled
The API key is enabled.
Disabled
The API key is disabled.
Creating a New Client Key
To create a new client key:
- In the Sierra Administration application, click Sierra API Keys from the Other Web Applications group.
- On the Sierra API Keys administration page, click CREATE NEW. The Create New API Key page opens.
- Enter the Client name.
- Enter the Client Email address.
Client Email
When Sierra generates the API Key, it sends an email to the specified address. The client must verify the address and create a client secret to complete registration. For more information, see the Creating a Client Secret section of this page.
- Specify an expiration date in the format M/D/YY or select No Expiration.
- (Optional) To retrieve or update specific patron accounts only, do the following:
- Select the Patron-specific Authentication option.
- Enter a redirect URL to associate with the key.
- In the Roles section, select the API read/write permissions to authorize for the key. See Roles below for information on which endpoints are associated with each role.
- Click GENERATE API KEY. The New API Key page opens.
- Review the API key client information, and then select one of the following:
- Done - Returns to the Sierra API Keys page.
- Generate another - Returns to the Create New API Key page.
- Edit this record - Opens the API Key Info page in which you can edit the client name, email address, and status.
For more information about this option, see Patron Permission - Patron-Specific Authentication below.
Editing or Deleting an Existing Client Key
To edit an existing client key:
- On the Sierra API Keys administration page, click the client you want to edit. (The client name is a link.) The API Key Info page opens.
- Click EDIT. You can then:
- Change the client name.
- Change the client email address.
- Reset the API key. (Resetting the API key sends a new verification email.)
- Enable or disable the API key.
- Specify a new expiration date for the client key.
- Click SAVE to preserve your changes or Discard Changes to cancel your edits.
- (Optional) Click Delete Record if you want to remove the client key from the system.
Creating a Client Secret
When Sierra generates the API Key, it sends a verification email to the specified address. To complete the registration, the client must do the following within one week of receiving the registration email:
- Click the Continue Registration link in the verification email. The link verifies the client email address and directs the default browser to the API Key Registration webpage.
- Enter and confirm a client secret that is at least eight characters.
- Click Register.
Upon successful registration, a Registration Complete notice appears. The notice includes both the API Key and the API Client Secret.
Refreshing an Existing API Key
New permissions are occasionally added to existing roles with new releases of Sierra. Rather than regenerating or creating a new key, you can refresh the key to pick up any new permissions associated with the role(s) assigned to that key.
To refresh a key:
- On the Sierra API Keys administration page, click the client you want to edit. (The client name is a link.) The API Key Info page appears.
- Click EDIT.
- Select Expiration Date, and enter an expiration date.
- Click SAVE.
- Edit the key again.
- Select No Expiration.
- Click SAVE.
Sierra refreshes the key.
API Access Keys Permissions and Roles
Patron Permissions and Roles are used to manage the patron data access level permissions for API keys. Some additional details about these settings are provided below.
Patron Permission - Patron-Specific Authentication
This option requires the API consumer to redirect the user to the Innovative authentication service for authentication and, when authentication is successful, the Sierra REST API redirects the user back to the API consumer’s interface through the redirect URL. When enabling this option, a redirect URL is required to complete the process.
The Patrons Read and Patrons Write permissions allow the API consumer to retrieve and/or update any patron's account information.
Roles
Specifies the API read/write permissions authorized for the key. The following list identifies the available roles and associated API endpoints:
- POST /v6/acquisitions/orders - Create a new acquisition.
- POST /v6/acquisitions/orders/validate - Validate the order data.
- GET /v6/agencies - Get a list of agencies.
- GET /v6/authorities - Get a list of authority records.
- POST /v6/authorities/query - Filter the records by a query in JSON format.
- GET /v6/authorities/{id} - Get an authority record by record ID.
- GET /v6/authorities/{id}/marc - Get the MARC data for a single authority record.
- GET /v6/bibs - Get a list of bibs.
- GET /v6/bibs/marc - Generate a binary MARC data file of bibs.
- GET /v6/bibs/metadata - Get a list of metadata.
- POST /v6/bibs/query - Filter the records by a query in JSON format.
- GET /v6/bibs/search - Find bib information using Advanced Word Search (AWS) by author, title, or keyword.
- GET /v6/bibs/{id} - Get a bib by record ID.
- GET /v6/bibs/{id}/marc - Get the MARC data for a single bib record.
- GET /v6/bibs/marc/files/{id} - Get the generated binary MARC data file.
- GET /v6/bibs/marc/files/upload/status - Get Marc file upload status.
- GET /v6/bibs/marc/files/uploaded - Get uploaded MARC files.
- POST /v6/bibs - Create a bib record.
- DELETE /v6/bibs/marc - Delete expired MARC data files.
- DELETE /v6/bibs/{id} - Delete a bib by record ID.
- PUT /v6/bibs/{id} - Update a bib record.
- POST /v6/bibs/marc/files/upload - Upload a MARC data file for batch bib creation.
- DELETE /v6/bibs/marc/files/uploaded/{id} - Delete an uploaded MARC file by ID.
- DELETE /v6/bibs/marc/files/{id} - Delete a MARC data file.
- GET /v6/branches - Get a list of branches.
- GET /v6/branches/pickupLocations - Get a list of pickup locations.
- GET /v6/branches/{id} - Get a branch by branch ID.
- GET /v6/courses - Get a list of course reserves.
- GET /v6/currencies - Get a list of foreign currencies.
- GET /v6/fines - Get a list of fines.
- GET /v6/funds - Get a list of funds.
- GET /v6/holdings - Get a list of holdings.
- GET /v6/holdings - Generate a binary MARC data file of holdings.
- GET /v6/patrons/holds - Get all patrons holds data.
- GET /v6/info/holdsConfig - Get place hold configuration.
- GET /v6/info/token - Get token information.
- GET /v6/invoices - Get a list of invoices.
- GET /v6/invoices/lineItems/{id} - Get a line item record by line ID.
- GET /v6/invoices/metadata - Get a list of metadata.
- GET /v6/invoices/sessions - Get a list of invoice sessions.
- GET /v6/invoices/sessions/{id} - Get an invoice session by ID.
- GET /v6/invoices/{id} - Get an invoice by record ID.
- GET /v6/invoices/{id}/lineItems - Get the line item data for a single invoice record.
- POST /v6/invoices - Create an invoice record.
- POST /v6/invoices/validate - Validate the invoice data.
- PUT /v6/invoices/{id} - Update an invoice record.
- PUT /v6/invoices/sessions/{id}/post - Post invoice records of a session.
- POST /v6/items/query - Filter the records by a query in JSON format.
- GET /v6/items - Get a list of items.
- GET /v6/items/checkouts - Get checkout item data.
- GET /v6/items/{id} - Get an item by record ID.
- GET /v6/items/{id}/checkouts - Get checkout data by item record ID.
- GET /v6/itemscans - Get a list of item scans.
- POST /v6/items - Create an item record.
- DELETE /v6/items/checkouts/{barcode} - Check-in an item (returns to the library).
- DELETE /v6/items/{id} - Delete an item by record ID.
- PUT /v6/items/{id} - Update an item by record ID.
- GET /v6/orders - Get a list of orders.
- GET /v6/orders/funds/{acctUnit}/{fundCodeNum} - Get the properties of a given Fund.
- POST /v6/orders/query - Filter the records by a query in JSON format.
- GET /v6/orders/{id} - Get an order by record ID.
- DELETE /v6/patrons/holds/{holdId} - Delete a hold by hold ID.
- DELETE /v6/patrons/{id}/holds - Cancel all holds for the specified patron.
- GET /v6/patrons/{id}/holds - Get the holds data for a single patron record.
- GET /v6/patrons/holds/{holdId} - Get a hold record by hold ID.
- POST /v6/patrons/{id}/holds/requests - Place a new hold request.
- GET /v6/patrons/{id}/holds/request/form - Get the hold request form for a bib record.
- PUT /v6/patrons/holds/{holdId} - Modify a hold.
- GET /v6/patrons - Get a list of patrons.
- GET /v6/patrons/checkouts/{checkoutId} - Get a checkout by checkout ID.
- GET /v6/patrons/find - Find a patron by varField fieldTag and varField content.
- GET /v6/patrons/fines/{fineId} - Get a fine record by fine ID.
- GET /v6/patrons/holds/{holdId} - Get a hold record by hold ID.
- GET /v6/patrons/metadata - Get a list of metadata.
- POST /v6/patrons/query - Filter the records by a query in JSON format.
- GET /v6/patrons/validate/authmethods - Available methods for authentication.
- GET /v6/patrons/{id} - Get a patron by record ID.
- GET /v6/patrons/{id}/checkouts - Get checkout data for a single patron record.
- GET /v6/patrons/{id}/checkouts/history - Get checkout/read history for a single patron record.
- GET /v6/patrons/{id}/checkouts/history/activationStatus - Get the patron's reading history status.
- GET /v6/patrons/{id}/fines - Get the fines data for a single patron record.
- GET /v6/patrons/{id}/holds - Get the holds data for a single patron record.
- GET /v6/patrons/{id}/holds/request/form - Get the hold request form for a bib record.
- POST /v6/patrons/validate - Validate patron by barcode and PIN.
- POST /v6/patrons - Create a patron record.
- POST /v6/patrons/auth - Validate patron credentials.
- POST /v6/patrons/checkout - Make a checkout by patron and item barcode.
- POST /v6/patrons/checkouts/{checkoutId}/renewal - Request to renew a checkout.
- DELETE /v6/patrons/holds/{holdId} - Delete a hold by hold ID.
- PUT /v6/patrons/holds/{holdId} - Modify a hold.
- POST /v6/patrons/upload - Upload a csv file for batch patron creation.
- POST /v6/patrons/validate - Validate patron by barcode and PIN.
- DELETE /v6/patrons/{id} - Delete a patron record.
- PUT /v6/patrons/{id} - Update the patron record.
- DELETE /v6/patrons/{id}/checkouts/history - Delete checkout/read history for a single patron record.
- POST /v6/patrons/{id}/checkouts/history/activationStatus - Change the patron's reading history status.
- DELETE /v6/patrons/{id}/checkouts/history/{checkoutHistoryId} - Delete single checkout/read history.
- POST /v6/patrons/{id}/fines/charge - Add a manual fine to a patron.
- PUT /v6/patrons/{id}/fines/payment - Pay a patron's fines.
- DELETE /v6/patrons/{id}/holds - Cancel all holds for the specified patron.
- POST /v6/patrons/{id}/holds/requests - Place a new hold request.
- PUT /v6/fines/payment - Pay multiple patron fines.
- GET /v6/titlepaging/reports - Get a list of title paging reports.
- GET /v6/titlepaging/reports/{id} - Get a list of titles belonging to a title paging report.
- POST /v6/users/validate - Validate a Sierra user by username and password.
- GET /v6/vendors - Get a list of vendors.
- GET /v6/volumes - Get a list of volume records.
- GET /v6/volumes/{id} - Get a volume by record ID.