http://localhost:9130
API for loans and requests
Creates a loan by checking out an item to a loanee
POST /circulation/check-out-by-barcode
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to check out an item to a loanee using barcodes",
"properties": {
"itemBarcode": {
"description": "Barcode of the item to be lent to the patron",
"type": "string"
},
"userBarcode": {
"description": "Barcode of the user (representing the patron) the item is to be lent to",
"type": "string"
},
"proxyUserBarcode": {
"description": "Barcode of the user representing a proxy for the patron",
"type": "string"
},
"loanDate": {
"description": "When the loan is to begin, defaults to current date and time",
"type": "string",
"format": "date-time"
},
"servicePointId": {
"description": "Service point where the item has been checked out",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"overrideBlocks": {
"description": "Blocks to override",
"type": "object",
"$ref": "override-blocks.json"
}
},
"required": [
"itemBarcode",
"userBarcode",
"servicePointId"
]
}
Example:
{
"userBarcode": "466983136459401",
"proxyUserBarcode": "693750137582350",
"itemBarcode": "2887532577331",
"servicePointId": "3260a6f0-0b53-4d9c-ad74-2dba3830d69f"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Creates a loan by checking out an item to a loanee
POST /circulation/override-check-out-by-barcode
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to check out an item to a loanee using barcodes",
"properties": {
"itemBarcode": {
"description": "Barcode of the item to be lent to the patron",
"type": "string"
},
"userBarcode": {
"description": "Barcode of the user (representing the patron) the item is to be lent to",
"type": "string"
},
"proxyUserBarcode": {
"description": "Barcode of the user representing a proxy for the patron",
"type": "string"
},
"loanDate": {
"description": "When the loan is to begin, defaults to current date and time",
"type": "string",
"format": "date-time"
},
"servicePointId": {
"description": "Service point where the item has been checked out",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
},
"comment": {
"description": "Comment to override action stored in loan history",
"type": "string"
}
},
"required": [
"itemBarcode",
"userBarcode",
"servicePointId",
"dueDate",
"comment"
]
}
Example:
{
"userBarcode": "466983136459401",
"proxyUserBarcode": "693750137582350",
"itemBarcode": "2887532577331",
"servicePointId": "3260a6f0-0b53-4d9c-ad74-2dba3830d69f",
"dueDate": "2018-12-21T13:30:00Z",
"comment": "Checkout override"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Updates the due date of an existing loan
POST /circulation/renew-by-barcode
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to renew an existing loan, found by barcodes of item and loanee",
"properties": {
"itemBarcode": {
"description": "Barcode of the item to be renewed",
"type": "string"
},
"userBarcode": {
"description": "Barcode of the user (representing the patron) the item has been loaned to",
"type": "string"
},
"overrideBlocks": {
"description": "Blocks to override",
"$ref": "override-blocks.json"
}
},
"additionalProperties": false,
"required": [
"itemBarcode",
"userBarcode"
]
}
Example:
{
"userBarcode": "466983136459401",
"itemBarcode": "2887532577331"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Updates the due date of an existing loan
POST /circulation/renew-by-id
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to renew an existing loan, found by the IDs of item and loanee",
"properties": {
"itemId": {
"description": "ID of the item to be renewed",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"userId": {
"description": "ID of the user (representing the patron) the item has been loaned to",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
}
},
"additionalProperties": false,
"required": [
"itemId",
"userId"
]
}
Example:
{
"userId": "6c4706ad-3a76-4251-b030-4609027a7918",
"itemId": "51763f82-c8e6-4486-9fdc-1c1664352550"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Updates the due date of an existing loan
POST /circulation/override-renewal-by-barcode
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to override renewal of an existing loan, found by barcodes of item and loanee",
"properties": {
"itemBarcode": {
"description": "Barcode of the item to be renewed",
"type": "string"
},
"userBarcode": {
"description": "Barcode of the user (representing the patron) the item has been loaned to",
"type": "string"
},
"dueDate": {
"description": "New due date for renewed loan",
"type": "string",
"format": "date-time"
},
"comment": {
"description": "Comment to override action stored in loan history",
"type": "string"
},
"servicePointId": {
"description": "Service point id where override happens",
"type": "string",
"$ref": "raml-util/schemas/uuid.schema"
}
},
"additionalProperties": false,
"required": [
"itemBarcode",
"userBarcode",
"comment"
]
}
Example:
{
"userBarcode": "466983136459401",
"itemBarcode": "2887532577331",
"comment": "Renewal override",
"dueDate": "2018-12-21T13:30:00Z",
"servicePointId": "f0e919e7-1f91-4d9f-920f-9ea2d9c7451c"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Updates the status of an existing loan
POST /circulation/check-in-by-barcode
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Request to check in an item at a service point (including when a loan is returned)",
"properties": {
"itemBarcode": {
"description": "Barcode of the item to be checked in",
"type": "string"
},
"servicePointId": {
"description": "Service point where the item is being processed",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"checkInDate": {
"description": "When the item was checked in",
"type": "string",
"format": "date-time"
},
"claimedReturnedResolution": {
"description": "Describes how the library resolved the situation where an item that was claimed returned",
"type": "string",
"enum": [
"Found by library",
"Returned by patron"
]
}
},
"additionalProperties": false,
"required": [
"itemBarcode",
"checkInDate",
"servicePointId"
]
}
Example:
{
"itemBarcode": "2887532577331",
"servicePointId": "8359f2bc-b83e-48e1-8a5b-ca1a74e840de",
"checkInDate": "2018-03-05T14:23:41.000Z"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"description": "Success response for checking in an item at a service point",
"properties": {
"loan": {
"description": "Loan affected by the check in (may be none, if a receiving check in)",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
},
"item": {
"description": "Additional information about the item",
"type": "object",
"properties": {
"id": {
"description": "ID of the item",
"type": "string"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string"
},
"callNumber": {
"description": "The call number from the holdings record",
"type": "string"
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"properties": {
"name": {
"description": "Name of the material type",
"type": "string"
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string"
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string"
},
"barcode": {
"description": "The barcode of the item",
"type": "string"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"properties": {
"name": {
"description": "The name of the location",
"type": "string"
}
},
"additionalProperties": false
},
"status": {
"description": "Overall status of the item",
"type": "object",
"properties": {
"name": {
"description": "Name of the item status",
"type": "string"
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time"
}
},
"additionalProperties": false
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string"
},
"chronology": {
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"type": "string"
},
"volume": {
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"type": "string"
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"properties": {
"name": {
"description": "Name of the service point",
"type": "string"
}
}
}
},
"additionalProperties": false
},
"staffSlipContext": {
"description": "Context for staff slip tokens",
"type": "object"
},
"inHouseUse": {
"type": "boolean",
"description": "Defines whether the current check-in operation considered as in-house use or not."
}
},
"additionalProperties": false
}
Example:
{
"loan": {
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
},
"staffSlipContext": {
"requester": {
"firstName": "James",
"lastName": "Smith"
},
"item": {
"title": "The Long Way to a Small, Angry Planet",
"callNumber": "TK7871.15.F4 S67 1988"
}
}
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error
Retrieve a list of loan items.
GET /circulation/loans
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
by title (using CQL)
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
userId="cf23adf0-61ba-4887-bf82-956c4aae2260"
Requested language. Optional. [lang=en]
Returns a list of loan items
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Collection of loans",
"description": "Collection of loans",
"type": "object",
"properties": {
"loans": {
"description": "Paged collection of loans",
"id": "loans",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
},
"totalRecords": {
"description": "Total number of loan records",
"type": "integer"
}
},
"required": [
"loans",
"totalRecords"
]
}
Example:
{
"loans": [
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
}
},
"loanDate": "2017-03-01T22:34:11Z",
"dueDate": "2017-04-01T22:34:11.000Z",
"status": {
"name": "Open"
},
"location": {
"name": "Main Library"
},
"action": "checkedout",
"renewalCount": 1,
"loanPolicyId" : "e2af3ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "109322966913845"
}
},
{
"id": "1d09af65-aeaa-499c-80cb-d52847b75a60",
"userId": "15054e48-03e8-4ed5-810b-7192b86accab",
"itemId": "94838fa2-288a-45c2-ad19-9102f5645127",
"item": {
"title": "Nod",
"barcode": "565578437802",
"status": {
"name": "Available"
},
"location": {
"name": "Annex"
}
},
"loanDate": "2017-01-14T19:14:36Z",
"returnDate": "2017-01-16T09:15:23Z",
"status": {
"name": "Closed"
},
"action": "checkedin",
"loanPolicyId" : "e2af3ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933845"
}
}
],
"totalRecords": 2
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
unable to list loans -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list loans -- unauthorized
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Create a new loan item.
POST /circulation/loans
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created loan item
Media type: application/json
Type: any
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to add loan -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create loans -- unauthorized
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
DELETE /circulation/loans
Requested language. Optional. [lang=en]
All loans deleted
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Retrieve loan item with given {loanId}
GET /circulation/loans/{loanId}
Requested language. Optional. [lang=en]
Returns item with a given ID
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"loan not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Update loan item with given {loanId}
PUT /circulation/loans/{loanId}
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"title": "Loan",
"description": "Links the item with the patron and applies certain conditions based on policies",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"userId": {
"description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"borrower": {
"description": "Additional information about the borrower of the item, taken from the user referred to by the userId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode used to identify the borrower (read only, defined by the server)",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item lent to the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicyId": {
"description": "ID of last policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"loanPolicy": {
"description": "Additional information about the loan policy of the item, taken from the loan loanPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"overdueFinePolicyId": {
"description": "ID of last overdue fine policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"overdueFinePolicy": {
"description": "Additional information about the overdue fine policy of the item, taken from the loan overdueFinePolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last overdue fine policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"lostItemPolicyId": {
"description": "ID of last lost item policy used in relation to this loan",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"lostItemPolicy": {
"description": "Additional information about the lost item policy of the item, taken from the loan lostItemPolicyId",
"readonly": true,
"type": "object",
"properties": {
"name": {
"readonly": true,
"description": "Name of last lost item policy used in relation to this loan (read only, defined by the server)",
"type": "string"
}
}
},
"item": {
"description": "Additional information about the item",
"type": "object",
"readonly": true,
"properties": {
"id": {
"description": "ID of the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"title": {
"description": "The title of the item lent to the patron",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"materialType": {
"description": "The material type from the item record",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the material type",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"contributors": {
"description": "Contributors from the instance record",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"properties": {
"name": {
"description": "Name of the contributor",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
}
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"barcode": {
"description": "The barcode of the item",
"type": "string",
"readonly": true
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The name of the location",
"type": "string",
"readonly": true
}
}
},
"status": {
"description": "Overall status of the item",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the item status",
"type": "string",
"readonly": true
},
"date": {
"type": "string",
"description": "Date time when status was last changed",
"format": "date-time",
"readonly": true
}
},
"additionalProperties": false
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"inTransitDestinationServicePoint": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
}
}
},
"enumeration": {
"description": "Item`s enumeration",
"type": "string",
"readonly": true
},
"chronology": {
"description": "Item`s chronology",
"type": "string",
"readonly": true
},
"volume": {
"description": "Item`s volume",
"type": "string",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"itemEffectiveLocationIdAtCheckOut": {
"description": "The effective location, at the time of checkout, of the item loaned to the patron.",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Overall status of the loan",
"type": "object",
"properties": {
"name": {
"description": "Name of the status (currently can be any value, values commonly used are Open and Closed)",
"type": "string"
}
}
},
"loanDate": {
"description": "Date and time when the loan began",
"type": "string",
"format": "date-time"
},
"dueDate": {
"description": "Date and time when the item is due to be returned",
"type": "string",
"format": "date-time"
},
"returnDate": {
"description": "Date and time when the item was returned",
"type": "string",
"format": "date-time"
},
"systemReturnDate": {
"description": "Date and time when return was processed",
"type": "string",
"format": "date-time"
},
"action": {
"description": "Last action performed on a loan (currently can be any value, values commonly used are checkedout and checkedin)",
"type": "string"
},
"renewalCount": {
"description": "Count of how many times a loan has been renewed (incremented by the client)",
"type": "integer",
"minimum": 0
},
"checkoutServicePointId": {
"description": "ID of the Service Point where the last checkout occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkinServicePointId": {
"description": "ID of the Service Point where the last checkin occured",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"checkoutServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "The unique name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"checkinServicePoint": {
"description": "The Service Point where the last checkout occurred",
"type": "object",
"readonly": true,
"properties": {
"name": {
"description": "Name of the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "The short code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "The human readable name",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "The time to shelving",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this a pickup location",
"type": "boolean",
"readonly": true
}
}
},
"patronGroupAtCheckout": {
"description": "Patron Group at checkout",
"type": "object",
"properties": {
"id": {
"description": "Unique ID (generated UUID) of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"name": {
"description": "Patron group name",
"type": "string",
"readonly": true
}
},
"additionalProperties": false
},
"feesAndFines": {
"description": "Fees and fines associated with loans",
"type": "object",
"properties": {
"amountRemainingToPay": {
"type": "number",
"description": "Total remaining amount due on fees and fines for the loan (read only, defined by the server)",
"readonly": true
}
},
"additionalProperties": false
},
"declaredLostDate": {
"description": "Date and time the item was declared lost during this loan",
"type": "string",
"format": "date-time"
},
"metadata": {
"description": "Metadata about creation and changes to loan, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
}
},
"required": [
"itemId",
"loanDate",
"action"
]
}
Example:
{
"id": "cf23adf0-61ba-4887-bf82-956c4aae2260",
"userId": "df7f4993-8c14-4a0f-ab63-93975ab01c76",
"proxyUserId": "346ad017-dac1-417d-9ed8-0ac7eeb886aa",
"itemId": "cb20f34f-b773-462f-a091-b233cc96b9e6",
"item": {
"title": "The Long Way to a Small, Angry Planet",
"barcode": "036000291452",
"status": {
"name": "Checked out"
},
"location": {
"name": "Main Library"
},
"materialType": {
"name": "Book"
},
"contributors": [
{
"name": "Steve Jones"
}
]
},
"loanPolicyId" : "e9af4ba4-6801-4722-be45-d7a49d13564d",
"loanPolicy": {
"name" : "Can Circulate Rolling"
},
"overdueFinePolicyId": "b59fe39f-efdc-4a88-993a-04fb405e5ecc",
"overdueFinePolicy": {
"name": "Overdue fine policy"
},
"lostItemPolicyId": "ea77439c-9ff5-4c37-8c92-0df02576c873",
"lostItemPolicy": {
"name": "Lost item policy"
},
"borrower" : {
"firstName" : "FirstName",
"lastName" : "LastName",
"middleName" : "MiddleName",
"barcode" : "102322966933815"
},
"loanDate": "2017-03-01T23:11:00.000Z",
"dueDate": "2017-04-01T23:11:00.000Z",
"checkoutServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"checkinServicePointId": "e9af4ba4-6801-4722-bf45-d7a49d54564d",
"status": {
"name": "Open"
},
"action": "checkedout",
"renewalCount": 0
}
Item successfully updated
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to update loan -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"loan not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Delete loan item with given {loanId}
DELETE /circulation/loans/{loanId}
Requested language. Optional. [lang=en]
Item deleted successfully
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to delete loan -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"loan not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Not implemented yet
Retrieve a list of request items.
GET /circulation/requests
Skip over a number of elements by specifying an offset value for the query
Example:
0
Limit the number of elements returned in the response
Example:
10
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
by using CQL
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
requesterId="cf23adf0-61ba-4887-bf82-956c4aae2260"
Requested language. Optional. [lang=en]
Returns a list of request items
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Collection of item requests",
"description": "Collection of item requests",
"type": "object",
"properties": {
"requests": {
"description": "Paged collection of item requests",
"id": "requests",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
},
"totalRecords": {
"description": "Total number of item requests",
"type": "integer"
}
},
"required": [
"requests",
"totalRecords"
]
}
Example:
{
"requests": [
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"position": 1
},
{
"id": "f5cec279-0da6-4b44-a3df-f49b0903f325",
"requestType": "Hold",
"requestDate": "2017-08-05T11:43:23Z",
"requesterId": "61d939e4-f2ae-4c53-95d2-224a802fa2a6",
"itemId": "3e5d5433-a271-499c-94f4-5f3e4652e537",
"fulfilmentPreference": "Delivery",
"requestExpirationDate": "2017-08-31T22:25:37Z",
"holdShelfExpirationDate": "2017-09-01T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"copyNumber": "cp2"
},
"requester": {
"firstName": "Stephen",
"lastName": "Jones",
"middleName": "Anthony",
"barcode": "567023127436"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
],
"totalRecords": 2
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
unable to list requests -- malformed parameter 'query', syntax error at column 6
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to list requests -- unauthorized
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Create a new request item.
POST /circulation/requests
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"location": {
"name": "Main Library"
},
"copyNumber": "cp.1"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
Returns a newly created item, with server-controlled fields like 'id' populated
URI to the created request item
Media type: application/json
Type: any
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"location": {
"name": "Main Library"
},
"copyNumber": "cp.1"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to add request -- malformed JSON at 13:3"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
unable to create requests -- unauthorized
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Not implemented yet
DELETE /circulation/requests
Requested language. Optional. [lang=en]
All requests deleted
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Not implemented yet
Retrieve request item with given {requestId}
GET /circulation/requests/{requestId}
Requested language. Optional. [lang=en]
Returns item with a given ID
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"location": {
"name": "Main Library"
},
"copyNumber": "cp.1"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"request not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Update request item with given {requestId}
PUT /circulation/requests/{requestId}
Requested language. Optional. [lang=en]
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"location": {
"name": "Main Library"
},
"copyNumber": "cp.1"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
Item successfully updated
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to update request -- malformed JSON at 13:4"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"request not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Not implemented yet
Delete request item with given {requestId}
DELETE /circulation/requests/{requestId}
Requested language. Optional. [lang=en]
Item deleted successfully
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to delete request -- constraint violation"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"request not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
Not implemented yet
Retrieve queue item with given {queueId}
GET /circulation/requests/queue/{itemId}
Requested language. Optional. [lang=en]
Returns item with a given ID
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Collection of item requests",
"description": "Collection of item requests",
"type": "object",
"properties": {
"requests": {
"description": "Paged collection of item requests",
"id": "requests",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
},
"totalRecords": {
"description": "Total number of item requests",
"type": "integer"
}
},
"required": [
"requests",
"totalRecords"
]
}
Example:
{
"requests": [
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"position": 1
},
{
"id": "f5cec279-0da6-4b44-a3df-f49b0903f325",
"requestType": "Hold",
"requestDate": "2017-08-05T11:43:23Z",
"requesterId": "61d939e4-f2ae-4c53-95d2-224a802fa2a6",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Delivery",
"position": 2
},
{
"id": "666e788f-1d9c-4846-b347-c40e711153fb",
"requestType": "Hold",
"requestDate": "2018-01-02T16:35:27Z",
"requesterId": "08876b22-8572-4b35-b25e-afc45c8e6e61",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"position": 3
}
],
"totalRecords": 2
}
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Media type: text/plain
Type: any
Example:
"unable to list queue -- malformed parameter 'query', syntax error at column 6"
Not authorized to perform requested action
Media type: text/plain
Type: any
Example:
"unable to list queue -- unauthorized"
Item with a given ID not found
Media type: text/plain
Type: any
Example:
"queue not found"
Internal server error, e.g. due to misconfiguration
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Reorder requests in the item queue
POST /circulation/requests/queue/{itemId}/reorder
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Reordered queue",
"description": "New positions for all requests in the queue",
"type": "object",
"properties": {
"reorderedQueue" : {
"type": "array",
"description": "All request from the item queue and their's new positions in the queue.",
"items": {
"description": "Reorder request",
"type": "object",
"properties": {
"id" : {
"description": "Request id",
"type": "string",
"pattern" : "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"newPosition": {
"description": "New position for the request",
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false,
"required": [
"id",
"newPosition"
]
}
}
},
"additionalProperties": false,
"required": [
"reorderedQueue"
]
}
Example:
{
"reorderedQueue": [
{
"id": "2ffd3f92-2947-4944-927b-20c986acb9e3",
"newPosition": 1
},
{
"id": "7d182699-cde9-4546-bae4-975ca04ab385",
"newPosition": 2
},
{
"id": "8e239a98-f7e4-4a62-b096-a2e69ac01ca5",
"newPosition": 3
},
{
"id": "d70e3358-c3ac-48ad-960f-e8db9aeadf4a",
"newPosition": 4
}
]
}
Queue has been reordered successfully
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Collection of item requests",
"description": "Collection of item requests",
"type": "object",
"properties": {
"requests": {
"description": "Paged collection of item requests",
"id": "requests",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
},
"totalRecords": {
"description": "Total number of item requests",
"type": "integer"
}
},
"required": [
"requests",
"totalRecords"
]
}
Example:
{
"requests": [
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"position": 1
},
{
"id": "f5cec279-0da6-4b44-a3df-f49b0903f325",
"requestType": "Hold",
"requestDate": "2017-08-05T11:43:23Z",
"requesterId": "61d939e4-f2ae-4c53-95d2-224a802fa2a6",
"itemId": "3e5d5433-a271-499c-94f4-5f3e4652e537",
"fulfilmentPreference": "Delivery",
"requestExpirationDate": "2017-08-31T22:25:37Z",
"holdShelfExpirationDate": "2017-09-01T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"copyNumber": "cp2"
},
"requester": {
"firstName": "Stephen",
"lastName": "Jones",
"middleName": "Anthony",
"barcode": "567023127436"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
],
"totalRecords": 2
}
Queue for item not found.
Validation errors.
Media type: text/plain
Type: any
Example:
Page requests can not be displaced from position 1.
Internal server error.
Media type: text/plain
Type: any
Example:
Internal server error.
Creates a request for a specific item from the given instance ID
POST /circulation/requests/instances
Requested language. Optional. [lang=en]
Media type: application/json
Type:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item based on the specified instance ID",
"description": "Request for an item selected from the that might be at a different location or already checked out to another patron",
"type": "object",
"properties": {
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"instanceId": {
"description": "ID of the instance being requested",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"requesterId",
"requestDate",
"pickupServicePointId"
]
}
Example:
{
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"instanceId": "195efae1-588f-47bd-a181-13a2eb437701",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"pickupServicePointId": "8359f2bc-b83e-48e1-8a5b-ca1a74e840de"
}
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "A request for an item",
"description": "Request for an item that might be at a different location or already checked out to another patron",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the user who made the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the request reason",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"cancellationAdditionalInformation": {
"description": "Additional information about a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "position of the request in a per-item request queue",
"type": "integer",
"minimum": 1
},
"item": {
"description": "Information about the requested item (some of which is stored and used for searching and sorting)",
"readOnly": true,
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Item status at the request creation time.",
"readonly": true
},
"title": {
"description": "title of the item (stored)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the item (stored)",
"type": "string",
"readonly": true
},
"callNumber": {
"description": "Deprecated call number from the holdings record, use callNumberComponents.callNumber instead",
"type": "string",
"readonly": true
},
"holdingsRecordId": {
"description": "The ID of the holdings for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"instanceId": {
"description": "The ID of the instance for the item",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"location": {
"description": "The effective location of the item",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the location",
"readonly": true
},
"libraryName": {
"type": "string",
"description": "The name of the library of the location",
"readonly": true
},
"code": {
"type": "string",
"description": "The location code",
"readonly": true
}
}
},
"contributorNames": {
"description": "A list of contributor names",
"type": "array",
"readonly": true,
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"description": "The contributor name",
"type": "string",
"readonly": true
}
}
}
},
"copyNumber": {
"type": "string",
"description": "Copy number for the item",
"readonly": true
},
"enumeration": {
"description": "The volume and/or issue number for the item",
"type": "string",
"readonly": true
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes).",
"readonly": true
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial.",
"readonly": true
},
"callNumberComponents": {
"description": "Elements of a full call number",
"readonly": true,
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"callNumber": {
"type": "string",
"description": "Call number for item",
"readonly": true
},
"prefix": {
"description": "Call number prefix for item",
"type": "string",
"readonly": true
},
"suffix": {
"description": "Call number suffix for item",
"type": "string",
"readonly": true
}
}
},
"identifiers": {
"type": "array",
"description": "An extensible set of resource identifiers",
"readonly": true,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value",
"readonly": true
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting), will be taken from the user referred to by the requesterId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patron group that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patron group",
"type": "object",
"additionalProperties": false,
"readonly": true,
"properties": {
"id": {
"description": "ID of the patron group",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patron group",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patron group",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting), will be taken from the user referred to by the proxyUserId",
"readonly": true,
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"lastName": {
"description": "last name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"middleName": {
"description": "middle name of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"barcode": {
"description": "barcode of the proxy patron (read only, defined by the server)",
"type": "string",
"readonly": true
},
"patronGroupId": {
"description": "UUID for the patrongroup that this user belongs to",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"patronGroup": {
"description": "record for the user's patrongroup",
"type": "object",
"readonly": true,
"additionalProperties": false,
"properties": {
"id": {
"description": "ID of the patrongroup",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"group": {
"description": "The unique name of the patrongroup",
"type": "string",
"readonly": true
},
"desc": {
"description": "A description of the patrongroup",
"type": "string",
"readonly": true
}
}
}
},
"additionalProperties": false
},
"fulfilmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"deliveryAddress": {
"description": "Address the item is to be delivered to (derived from requester information)",
"type": "object",
"readonly": true,
"properties": {
"addressLine1": {
"description": "Address line 1",
"type": "string",
"readonly": true
},
"addressLine2": {
"description": "Address line 2",
"type": "string",
"readonly": true
},
"city": {
"description": "City name",
"type": "string",
"readonly": true
},
"region": {
"description": "Region",
"type": "string",
"readonly": true
},
"postalCode": {
"description": "Postal code",
"type": "string",
"readonly": true
},
"countryId": {
"description": "Country code",
"type": "string",
"readonly": true
},
"addressTypeId": {
"description": "Type of address (refers to address types)",
"type": "string",
"readonly": true,
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"additionalProperties": false
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"pickupServicePoint": {
"description": "The full object of the Service Point record from pickupServicePointId",
"additionalProperties": false,
"readonly": true,
"properties": {
"name": {
"description": "Unique name for the service point",
"type": "string",
"readonly": true
},
"code": {
"description": "Unique code for the service point",
"type": "string",
"readonly": true
},
"discoveryDisplayName": {
"description": "Human-readable name for the service point",
"type": "string",
"readonly": true
},
"description": {
"description": "Description of the service point",
"type": "string",
"readonly": true
},
"shelvingLagTime": {
"description": "Shelving lag time",
"type": "integer",
"readonly": true
},
"pickupLocation": {
"description": "Is this service point a pickup location?",
"type": "boolean",
"readonly": true
}
}
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"requestProcessingParameters": {
"type": "object",
"description": "Additional parameters used for request processing and discarded afterwards. Not part of request record.",
"properties": {
"overrideBlocks": {
"type": "object",
"description": "Blocks to override if user has corresponding permissions",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"itemNotLoanableBlock": {
"description": "'Item not loanable' block",
"type": "object",
"properties": {
"dueDate": {
"description": "Due date for a new loan",
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"required": [
"dueDate"
]
},
"patronBlock": {
"description": "Automated patron block",
"type": "object",
"additionalProperties": false
},
"itemLimitBlock": {
"description": "Item limit block",
"type": "object",
"additionalProperties": false
},
"comment": {
"description": "Reason for override",
"type": "string"
}
},
"additionalProperties": false
}
}
}
},
"additionalProperties": false,
"required": [
"itemId",
"requesterId",
"requestType",
"requestDate",
"fulfilmentPreference"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfilmentPreference": "Hold Shelf",
"requestExpirationDate": "2017-07-25T22:25:37Z",
"position": 1,
"item": {
"status": "Checked out",
"title": "Children of Time",
"barcode": "760932543816",
"location": {
"name": "Main Library"
},
"copyNumber": "cp.1"
},
"tags": {
"tagList": [
"new",
"important"
]
}
}
Validation errors
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of extended errors",
"type": "object",
"properties": {
"errors": {
"description": "List of extended errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An extended error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"type": "object",
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
},
"overridableBlock": {
"type": "object",
"description": "Details of an overridable block the error is related to",
"properties": {
"name": {
"type": "string",
"description": "Name of the block",
"enum": [
"patronBlock",
"itemLimitBlock",
"itemNotLoanableBlock"
]
},
"missingPermissions": {
"type": "array",
"description": "Missing Okapi permissions required to override the block",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"missingPermissions"
]
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
Internal server error
Media type: text/plain
Type: any
Example:
Internal server error