foliolib.folio.api.circulation.Circulation

class foliolib.folio.api.circulation.Circulation(tenant: str, okapi: Optional[foliolib.okapi.okapiClient.OkapiClient] = None)

Bases: foliolib.folio.FolioApi

Circulation Business Logic API

API for loans and requests

Parameters
  • tenant (str) – Tenant id

  • okapi (OkapiClient, optional) – Instance of OkapiClient. Defaults to None.

Methods

delete_loan(loanId)

Delete loan item with given {loanId}

delete_loans()

DELETE /circulation/loans

delete_request(requestId)

Delete request item with given {requestId}

delete_requests()

DELETE /circulation/requests

get_instances(instanceId)

Retrieve instance item with given {instanceId}

get_items(itemId)

Retrieve item item with given {itemId}

get_loan(loanId)

Retrieve loan item with given {loanId}

get_loans(**kwargs)

Retrieve a list of loan items.

get_request(requestId)

Retrieve request item with given {requestId}

get_requests(**kwargs)

Retrieve a list of request items.

modify_loan(loanId, loan)

Update loan item with given {loanId}

modify_request(requestId, request)

Update request item with given {requestId}

set_checkInByBarcode(checkInByBarcode, **kwargs)

Updates the status of an existing loan

set_checkOutByBarcode(checkOutByBarcode, ...)

Creates a loan by checking out an item to a loanee

set_instance(instance, **kwargs)

Creates a request for any item from the given instance ID

set_loan(loan)

Create a new loan item.

set_renewByBarcode(renewByBarcode, **kwargs)

Updates the due date of an existing loan

set_renewById(renewById, **kwargs)

Updates the due date of an existing loan

set_reorder(itemId, reorder)

Reorder requests in the item queue

set_reorder_for_instance(instanceId, reorder)

Reorder requests in the instance queue

set_request(request)

Create a new request item.

delete_loan(loanId: str)

Delete loan item with given {loanId}

DELETE /circulation/loans/{loanId}

Parameters

loanId (str) –

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiRequestError – Bad Request

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

delete_loans()

DELETE /circulation/loans

delete_request(requestId: str)

Delete request item with given {requestId}

DELETE /circulation/requests/{requestId}

Parameters

requestId (str) –

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiRequestError – Bad Request

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

delete_requests()

DELETE /circulation/requests

get_instances(instanceId: str)

Retrieve instance item with given {instanceId}

GET /circulation/requests/queue/instance/{instanceId}

Parameters

instanceId (str) –

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

Schema

{
  "$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",
        "$ref": "request.json"
      }
    },
    "totalRecords": {
      "description": "Total number of item requests",
      "type": "integer"
    }
  },
  "required": [
    "requests",
    "totalRecords"
  ]
}
get_items(itemId: str)

Retrieve item item with given {itemId}

GET /circulation/requests/queue/item/{itemId}

Parameters

itemId (str) –

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

Schema

{
  "$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",
        "$ref": "request.json"
      }
    },
    "totalRecords": {
      "description": "Total number of item requests",
      "type": "integer"
    }
  },
  "required": [
    "requests",
    "totalRecords"
  ]
}
get_loan(loanId: str)

Retrieve loan item with given {loanId}

GET /circulation/loans/{loanId}

Parameters

loanId (str) –

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
get_loans(**kwargs)

Retrieve a list of loan items.

GET /circulation/loans

Parameters

**kwargs (properties) – Keyword Arguments

Keyword Arguments
  • offset (int) –

    (default=0) Skip over a number of elements by specifying an offset value for the query

    Example

    • 0

  • limit (int) –

    (default=10) Limit the number of elements returned in the response

    Example

    • 10

  • query (str) –

    A query expressed as a CQL string (see [dev.folio.org/reference/glossary#cql](https://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”

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
        "$ref": "loan.json"
      }
    },
    "totalRecords": {
      "description": "Total number of loan records",
      "type": "integer"
    }
  },
  "required": [
    "loans",
    "totalRecords"
  ]
}
get_request(requestId: str)

Retrieve request item with given {requestId}

GET /circulation/requests/{requestId}

Parameters

requestId (str) –

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "requestType": {
      "description": "Whether the item should be held upon return, recalled or paged for",
      "type": "string",
      "enum": [
        "Hold",
        "Recall",
        "Page"
      ]
    },
    "requestLevel": {
      "description": "Level of the request - Item or Title",
      "type": "string",
      "enum": [
        "Item"
      ]
    },
    "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",
      "$ref": "uuid.json"
    },
    "proxyUserId": {
      "description": "ID of the user representing a proxy for the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "instanceId": {
      "description": "ID of the instance being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "holdingsRecordId": {
      "description": "ID of the holdings record being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "itemId": {
      "description": "ID of the item being requested",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "cancelledByUserId": {
      "description": "The id of the user that cancelled the request",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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
    },
    "instance": {
      "description": "Copy of some instance metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "title": {
          "description": "title of the item",
          "type": "string"
        },
        "identifiers": {
          "type": "array",
          "description": "An extensible set of name-value pairs of identifiers associated with the resource",
          "minItems": 0,
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "Resource identifier value"
              },
              "identifierTypeId": {
                "type": "string",
                "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
                "$ref": "raml-util/schemas/uuid.schema"
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "identifierTypeId"
            ]
          }
        }
      }
    },
    "item": {
      "description": "Copy of some item metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "barcode": {
          "description": "barcode of the item",
          "type": "string"
        }
      },
      "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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
    },
    "fulfillmentPreference": {
      "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        }
      },
      "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "raml-util/schemas/tags.schema"
    },
    "metadata": {
      "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
      "type": "object",
      "$ref": "raml-util/schemas/metadata.schema"
    },
    "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",
          "$ref": "override-blocks.json"
        }
      }
    },
    "searchIndex": {
      "description": "Request fields used for search",
      "type": "object",
      "$ref": "request-search-index.json"
    }
  },
  "additionalProperties": false,
  "required": [
    "requesterId",
    "requestType",
    "requestDate",
    "fulfillmentPreference"
  ]
}
get_requests(**kwargs)

Retrieve a list of request items.

GET /circulation/requests

Parameters

**kwargs (properties) – Keyword Arguments

Keyword Arguments
  • offset (int) –

    (default=0) Skip over a number of elements by specifying an offset value for the query

    Example

    • 0

  • limit (int) –

    (default=10) Limit the number of elements returned in the response

    Example

    • 10

  • query (str) –

    A query expressed as a CQL string (see [dev.folio.org/reference/glossary#cql](https://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”

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
        "$ref": "request.json"
      }
    },
    "totalRecords": {
      "description": "Total number of item requests",
      "type": "integer"
    }
  },
  "required": [
    "requests",
    "totalRecords"
  ]
}
modify_loan(loanId: str, loan: dict)

Update loan item with given {loanId}

PUT /circulation/loans/{loanId}

Parameters
  • loanId (str) –

  • loan (dict) – See Schema below

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiRequestError – Bad Request

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
modify_request(requestId: str, request: dict)

Update request item with given {requestId}

PUT /circulation/requests/{requestId}

Parameters
  • requestId (str) –

  • request (dict) – See Schema below

Raises
  • OkapiRequestNotFound – Not Found

  • OkapiRequestError – Bad Request

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "requestType": {
      "description": "Whether the item should be held upon return, recalled or paged for",
      "type": "string",
      "enum": [
        "Hold",
        "Recall",
        "Page"
      ]
    },
    "requestLevel": {
      "description": "Level of the request - Item or Title",
      "type": "string",
      "enum": [
        "Item"
      ]
    },
    "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",
      "$ref": "uuid.json"
    },
    "proxyUserId": {
      "description": "ID of the user representing a proxy for the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "instanceId": {
      "description": "ID of the instance being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "holdingsRecordId": {
      "description": "ID of the holdings record being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "itemId": {
      "description": "ID of the item being requested",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "cancelledByUserId": {
      "description": "The id of the user that cancelled the request",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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
    },
    "instance": {
      "description": "Copy of some instance metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "title": {
          "description": "title of the item",
          "type": "string"
        },
        "identifiers": {
          "type": "array",
          "description": "An extensible set of name-value pairs of identifiers associated with the resource",
          "minItems": 0,
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "Resource identifier value"
              },
              "identifierTypeId": {
                "type": "string",
                "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
                "$ref": "raml-util/schemas/uuid.schema"
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "identifierTypeId"
            ]
          }
        }
      }
    },
    "item": {
      "description": "Copy of some item metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "barcode": {
          "description": "barcode of the item",
          "type": "string"
        }
      },
      "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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
    },
    "fulfillmentPreference": {
      "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        }
      },
      "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "raml-util/schemas/tags.schema"
    },
    "metadata": {
      "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
      "type": "object",
      "$ref": "raml-util/schemas/metadata.schema"
    },
    "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",
          "$ref": "override-blocks.json"
        }
      }
    },
    "searchIndex": {
      "description": "Request fields used for search",
      "type": "object",
      "$ref": "request-search-index.json"
    }
  },
  "additionalProperties": false,
  "required": [
    "requesterId",
    "requestType",
    "requestDate",
    "fulfillmentPreference"
  ]
}
set_checkInByBarcode(checkInByBarcode: dict, **kwargs)

Updates the status of an existing loan

POST /circulation/check-in-by-barcode

Parameters
  • checkInByBarcode (dict) –

  • **kwargs (properties) – Keyword Arguments: See Schema below

Keyword Arguments

lang (str) – (default=en) Requested language. Optional. [lang=en]

Returns

See Schema below

Return type

dict

Raises
  • OkapiFatalError – Server Error

  • OkapiRequestUnprocessableEntity – Unprocessable Entity

Schema

{
  "$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",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "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"
      ]
    },
    "sessionId": {
      "description": "Randomly generated UUID which must be the same for all check-in requests issued in scope of the same check-in session ",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    }
  },
  "additionalProperties": false,
  "required": [
    "itemBarcode",
    "checkInDate",
    "servicePointId"
  ]
}
{
  "$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)",
      "$ref": "loan.json"
    },
    "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
}
set_checkOutByBarcode(checkOutByBarcode: dict, **kwargs)

Creates a loan by checking out an item to a loanee

POST /circulation/check-out-by-barcode

Parameters
  • checkOutByBarcode (dict) –

  • **kwargs (properties) – Keyword Arguments: See Schema below

Keyword Arguments

lang (str) – (default=en) Requested language. Optional. [lang=en]

Returns

See Schema below

Return type

dict

Raises
  • OkapiFatalError – Server Error

  • OkapiRequestUnprocessableEntity – Unprocessable Entity

Schema

{
  "$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"
  ]
}
{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
set_instance(instance: dict, **kwargs)

Creates a request for any item from the given instance ID

POST /circulation/requests/instances

Parameters
  • instance (dict) –

  • **kwargs (properties) – Keyword Arguments: See Schema below

Keyword Arguments

lang (str) – (default=en) Requested language. Optional. [lang=en]

Returns

See Schema below

Return type

dict

Raises
  • OkapiFatalError – Server Error

  • OkapiRequestUnprocessableEntity – Unprocessable Entity

Schema

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "A request for any item based on the specified instance ID",
  "description": "Request for any item selected from the instance 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}$"
    },
    "requestLevel": {
      "description": "Level of the request - Item or Title",
      "type": "string",
      "enum": [
        "Item",
        "Title"
      ]
    },
    "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",
    "requestLevel",
    "requesterId",
    "requestDate",
    "pickupServicePointId"
  ]
}
{
  "$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",
      "$ref": "uuid.json"
    },
    "requestType": {
      "description": "Whether the item should be held upon return, recalled or paged for",
      "type": "string",
      "enum": [
        "Hold",
        "Recall",
        "Page"
      ]
    },
    "requestLevel": {
      "description": "Level of the request - Item or Title",
      "type": "string",
      "enum": [
        "Item"
      ]
    },
    "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",
      "$ref": "uuid.json"
    },
    "proxyUserId": {
      "description": "ID of the user representing a proxy for the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "instanceId": {
      "description": "ID of the instance being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "holdingsRecordId": {
      "description": "ID of the holdings record being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "itemId": {
      "description": "ID of the item being requested",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "cancelledByUserId": {
      "description": "The id of the user that cancelled the request",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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
    },
    "instance": {
      "description": "Copy of some instance metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "title": {
          "description": "title of the item",
          "type": "string"
        },
        "identifiers": {
          "type": "array",
          "description": "An extensible set of name-value pairs of identifiers associated with the resource",
          "minItems": 0,
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "Resource identifier value"
              },
              "identifierTypeId": {
                "type": "string",
                "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
                "$ref": "raml-util/schemas/uuid.schema"
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "identifierTypeId"
            ]
          }
        }
      }
    },
    "item": {
      "description": "Copy of some item metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "barcode": {
          "description": "barcode of the item",
          "type": "string"
        }
      },
      "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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
    },
    "fulfillmentPreference": {
      "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        }
      },
      "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "raml-util/schemas/tags.schema"
    },
    "metadata": {
      "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
      "type": "object",
      "$ref": "raml-util/schemas/metadata.schema"
    },
    "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",
          "$ref": "override-blocks.json"
        }
      }
    },
    "searchIndex": {
      "description": "Request fields used for search",
      "type": "object",
      "$ref": "request-search-index.json"
    }
  },
  "additionalProperties": false,
  "required": [
    "requesterId",
    "requestType",
    "requestDate",
    "fulfillmentPreference"
  ]
}
set_loan(loan: dict)

Create a new loan item.

POST /circulation/loans

Parameters

loan (dict) – See Schema below

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiFatalError – Server Error

Headers

  • Location - URI to the created loan item

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
set_renewByBarcode(renewByBarcode: dict, **kwargs)

Updates the due date of an existing loan

POST /circulation/renew-by-barcode

Parameters
  • renewByBarcode (dict) –

  • **kwargs (properties) – Keyword Arguments: See Schema below

Keyword Arguments

lang (str) – (default=en) Requested language. Optional. [lang=en]

Returns

See Schema below

Return type

dict

Raises
  • OkapiFatalError – Server Error

  • OkapiRequestUnprocessableEntity – Unprocessable Entity

Schema

{
  "$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"
    },
    "servicePointId": {
      "description": "Service point where an 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}$"
    },
    "overrideBlocks": {
      "description": "Blocks to override",
      "$ref": "override-blocks.json"
    }
  },
  "additionalProperties": false,
  "required": [
    "itemBarcode",
    "userBarcode"
  ]
}
{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
set_renewById(renewById: dict, **kwargs)

Updates the due date of an existing loan

POST /circulation/renew-by-id

Parameters
  • renewById (dict) –

  • **kwargs (properties) – Keyword Arguments: See Schema below

Keyword Arguments

lang (str) – (default=en) Requested language. Optional. [lang=en]

Returns

See Schema below

Return type

dict

Raises
  • OkapiFatalError – Server Error

  • OkapiRequestUnprocessableEntity – Unprocessable Entity

Schema

{
  "$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"
  ]
}
{
  "$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",
      "$ref": "uuid.json"
    },
    "userId": {
      "description": "ID of the patron the item was lent to. Required for open loans, not required for closed loans (for anonymization).",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "itemId": {
      "description": "ID of the item lent to the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "loanPolicyId": {
      "description": "ID of last policy used in relation to this loan",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        },
        "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
        },
        "copyNumber": {
          "description": "Item copy number",
          "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,
          "$ref": "uuid.json"
        },
        "instanceId": {
          "description": "The ID of the instance for the item",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
          "$ref": "uuid.json",
          "readonly": true
        },
        "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",
          "$ref": "schema/call-number-components.json",
          "readonly": true
        }
      },
      "additionalProperties": false
    },
    "itemEffectiveLocationIdAtCheckOut": {
      "description": "The effective location, at the time of checkout, of the item loaned to the patron.",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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"
    },
    "actionComment": {
      "description": "Last action performed on a loan comments",
      "type": "string"
    },
    "renewalCount": {
      "description": "Count of how many times a loan has been renewed (incremented by the client)",
      "type": "integer",
      "minimum": 0
    },
    "dueDateChangedByRecall": {
      "description": "Is due date changed by recall request",
      "type": "boolean",
      "readonly": true
    },
    "dueDateChangedByNearExpireUser": {
      "description": "Indicates whether or not this loan had its due date modified by a expired user",
      "type": "boolean"
    },
    "dueDateChangedByHold": {
      "description": "Is due date changed by hold request",
      "type": "boolean",
      "readonly": true
    },
    "checkoutServicePointId": {
      "description": "ID of the Service Point where the last checkout occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkinServicePointId": {
      "description": "ID of the Service Point where the last checkin occured",
      "type": "string",
      "$ref": "uuid.json"
    },
    "checkoutServicePoint": {
      "description": "Service Point where the last checkout occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "checkinServicePoint": {
      "description": "Service Point where the last checkin occurred",
      "type": "object",
      "readonly": true,
      "$ref": "service-point.json"
    },
    "patronGroupAtCheckout": {
      "description": "Patron Group at checkout",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique ID (generated UUID) of the patron group",
          "type": "string",
          "readonly": true,
          "$ref": "uuid.json"
        },
        "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",
      "$ref": "raml-util/schemas/metadata.schema"
    }
  },
  "required": [
    "itemId",
    "loanDate",
    "action"
  ]
}
set_reorder(itemId: str, reorder: dict)

Reorder requests in the item queue

POST /circulation/requests/queue/item/{itemId}/reorder

Parameters
  • itemId (str) –

  • reorder (dict) – See Schema below

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestUnprocessableEntity – Unprocessable Entity

  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

Schema

{
  "$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"
  ]
}
{
  "$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",
        "$ref": "request.json"
      }
    },
    "totalRecords": {
      "description": "Total number of item requests",
      "type": "integer"
    }
  },
  "required": [
    "requests",
    "totalRecords"
  ]
}
set_reorder_for_instance(instanceId: str, reorder: dict)

Reorder requests in the instance queue

POST /circulation/requests/queue/instance/{instanceId}/reorder

Parameters
  • instanceId (str) –

  • reorder (dict) – See Schema below

Returns

See Schema below

Return type

dict

Raises
  • OkapiRequestUnprocessableEntity – Unprocessable Entity

  • OkapiRequestNotFound – Not Found

  • OkapiFatalError – Server Error

Schema

{
  "$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"
  ]
}
{
  "$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",
        "$ref": "request.json"
      }
    },
    "totalRecords": {
      "description": "Total number of item requests",
      "type": "integer"
    }
  },
  "required": [
    "requests",
    "totalRecords"
  ]
}
set_request(request: dict)

Create a new request item.

POST /circulation/requests

Parameters

request (dict) – See Schema below

Raises
  • OkapiRequestError – Bad Request

  • OkapiRequestUnauthorized – Authentication is required

  • OkapiFatalError – Server Error

  • OkapiFatalError – Server Error

Headers

  • Location - URI to the created request item

Schema

{
  "$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",
      "$ref": "uuid.json"
    },
    "requestType": {
      "description": "Whether the item should be held upon return, recalled or paged for",
      "type": "string",
      "enum": [
        "Hold",
        "Recall",
        "Page"
      ]
    },
    "requestLevel": {
      "description": "Level of the request - Item or Title",
      "type": "string",
      "enum": [
        "Item"
      ]
    },
    "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",
      "$ref": "uuid.json"
    },
    "proxyUserId": {
      "description": "ID of the user representing a proxy for the patron",
      "type": "string",
      "$ref": "uuid.json"
    },
    "instanceId": {
      "description": "ID of the instance being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "holdingsRecordId": {
      "description": "ID of the holdings record being requested",
      "type": "string",
      "$ref": "raml-util/schemas/uuid.schema"
    },
    "itemId": {
      "description": "ID of the item being requested",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "uuid.json"
    },
    "cancelledByUserId": {
      "description": "The id of the user that cancelled the request",
      "type": "string",
      "$ref": "uuid.json"
    },
    "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
    },
    "instance": {
      "description": "Copy of some instance metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "title": {
          "description": "title of the item",
          "type": "string"
        },
        "identifiers": {
          "type": "array",
          "description": "An extensible set of name-value pairs of identifiers associated with the resource",
          "minItems": 0,
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "Resource identifier value"
              },
              "identifierTypeId": {
                "type": "string",
                "description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
                "$ref": "raml-util/schemas/uuid.schema"
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "identifierTypeId"
            ]
          }
        }
      }
    },
    "item": {
      "description": "Copy of some item metadata (used for searching and sorting)",
      "type": "object",
      "properties": {
        "barcode": {
          "description": "barcode of the item",
          "type": "string"
        }
      },
      "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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,
          "$ref": "uuid.json"
        },
        "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,
              "$ref": "uuid.json"
            },
            "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
    },
    "fulfillmentPreference": {
      "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",
      "$ref": "uuid.json"
    },
    "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,
          "$ref": "uuid.json"
        }
      },
      "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",
      "$ref": "uuid.json"
    },
    "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",
      "$ref": "raml-util/schemas/tags.schema"
    },
    "metadata": {
      "description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
      "type": "object",
      "$ref": "raml-util/schemas/metadata.schema"
    },
    "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",
          "$ref": "override-blocks.json"
        }
      }
    },
    "searchIndex": {
      "description": "Request fields used for search",
      "type": "object",
      "$ref": "request-search-index.json"
    }
  },
  "additionalProperties": false,
  "required": [
    "requesterId",
    "requestType",
    "requestDate",
    "fulfillmentPreference"
  ]
}