The API

Introduction

The Polaris library platform helps librarians serve their communities by managing resources so that everyone succeeds. The Polaris API exposes essential library functions that allow developers to build library related applications or automate processes. This is the documentation for the Polaris.ApplicationServices v1.0 API.

The API is built on HTTP and provides a set of URLs to retrieve data and perform library operations.

Getting Started

Using your browser, navigate to the API status URL:

  • https://[your server name]/Polaris.ApplicationServices/api

You should get back a JSON snippet similar to:

{
    "ServiceName": "Polaris.ApplicationServices",
    "Version": "7.8.47151.0",
    "Major": 7,
    "Minor": 8,
    "Build": 47151,
    "Revision": 0,
    "Patches": null
}

URIs

All URIs (other than API status and staff authentication) will contain the following route parts:

  • Version
  • Language
  • Product Id
  • Site Code
  • Organization Id
  • Workstation Id
Name Type Required Description
version String Yes API version.
"v1" is the only supported version
language String Yes ISO 639-2 Language Code. Defines language context for text.
"ara" - Arabic
"chi" - Chinese
"eng" - English
"fas" - Farsi/Persian
"fre" - French
"hat" - Haitian Creole
"haw" - Hawaiian
"kor" - Korean
"rus" - Russian
"spa" - Spanish
"vie" - Vietnamese
productId Integer Yes Defines the product Id
All = 0
PowerPAC = 1
ChildrensPAC = 2
ActivePAC = 3
ExpressCheck = 4
InboundTelephony = 5
OutboundTelephony = 6
Notices = 7
ILL = 8
PolarisFusion = 9
AcquisitionsExchange = 10
MobilePAC = 11
SIPService = 12
NCIPService = 13
ERMSPortal = 14
Receipts = 15
ContentXChange = 16
PolarisImport = 17 
PolarisAPIConsumerService = 18
PolarisApplicationServices = 19
StaffWebClient = 20
StaffClient = 21
PolarisDatabase = 22,
SystemOutput = 23,
Vega = 24
siteDomain String Yes Unique customer site domain. The default site domain is 'polaris'.
organizationId Integer Yes Defines the logged on organization Id
workstationId Integer Yes Defines the logged on workstation Id

The full URI will look like the following:
/api/{version}/{language}/{productId}/{siteDomain}/{organizationId}/{workstationId}/patrons/{id}/basicdata

For readability, the documentation may display a shorthand version of the URI:
/api/.../patrons/{id}/basicdata

HTTP Response Codes

Code Status Error object Description
200 OK Success
201 Created Returns the created object
204 No content Successful deletion
400 Bad Request { "Message":"The request is invalid.", "MessageDetail":"The parameters dictionary contains a null entry for parameter 'id'." } { "ErrorCode":10000, "Message":"Language in url is invalid.", "MessageDetail":null } All errors fall into this category; validation, duplicate patron, etc.
401 Unauthorized { "ErrorCode":10001, "Message":"User authentication failed.", "MessageDetail":null } User defined in http authorization header field is not authorized.
403 Forbidden {"ErrorCode":10002, "Message":"Permission(s) not granted. Patron registration: Create", "MessageDetail":null, "Data":[{"Subsystem":2, "PermissionID":83, "ControlRecordName":"Patron registration", "PermissionName":"Create", "Permitted":false, "AllowOverride":true, "Owner":0, "IsOwned":true, "Owners":null}]} Returned when the user is not privileged to perform an operation. Indicates an override is required to continue. Use the Http proxy-authorization header field to provide override credentials. See Security and Authentication for more information. The Data object returned is a DtoPermissionDescription.
404 Not Found { "Message":"No HTTP resource was found that matches the request URI.", "MessageDetail":"No action was found on the controller." } InvalidEndpoint Not Found
404 Not Found {"ErrorCode":60027, "Message":"Patron with ID 999377 not found.", "MessageDetail":null} RecordNotFound Not Found
405 Method not allowed {"Message":"The requested resource does not support http method 'GET'."} Http method is not allowed
409 Conflict {"ErrorCode":10004, "Message":"Patron record is secured.", "MessageDetail":null, "StackTrace":null, "InnerException":null, "Data":null} Object lock (ErrorCode = 70000 - 79999)
Secured record (ErrorCode = 10004)
411 Length Required The request did not specify the length of its content, which is required by the requested resource.
422 Unprocessable Entity {"error":"Unprocessable Entity", "message":"Server could not parse JSON"} May be returned if POST/PUT body data is not valid
500+ Server Errors Unhandled exceptions