Item Storage (v8.9)

http://localhost

Table of contents

Item Storage API

Storage for items in the inventory

/item-storage

GET /item-storage/items

Retrieve a list of item items.

GET /item-storage/items
Query Parameters
  • offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)

    Skip over a number of elements by specifying an offset value for the query

    Example:

    0
  • limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)

    Limit the number of elements returned in the response

    Example:

    10
  • query: (string)

    A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.

    using CQL (indexes for item and material type)

    Example:

    (username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode
    
    title="*uproot*"
    
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns a list of item items

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "A collection of item records",
  "type": "object",
  "properties": {
    "items": {
      "description": "List of item records",
      "id": "items",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "An item record",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the item record"
          },
          "_version": {
            "type": "integer",
            "description": "Record version for optimistic locking"
          },
          "hrid": {
            "type": "string",
            "description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
          },
          "holdingsRecordId": {
            "type": "string",
            "description": "ID of the holdings record the item is a member of."
          },
          "formerIds": {
            "type": "array",
            "description": "Previous identifiers assigned to the item",
            "items": {
              "type": "string"
            },
            "uniqueItems": true
          },
          "discoverySuppress": {
            "type": "boolean",
            "description": "Records the fact that the record should not be displayed in a discovery system"
          },
          "accessionNumber": {
            "type": "string",
            "description": "Also called inventar number"
          },
          "barcode": {
            "type": "string",
            "description": "Unique inventory control number for physical resources, used largely for circulation purposes"
          },
          "effectiveShelvingOrder": {
            "type": "string",
            "description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
            "readonly": true
          },
          "itemLevelCallNumber": {
            "type": "string",
            "description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
          },
          "itemLevelCallNumberPrefix": {
            "type": "string",
            "description": "Prefix of the call number on the item level."
          },
          "itemLevelCallNumberSuffix": {
            "type": "string",
            "description": "Suffix of the call number on the item level."
          },
          "itemLevelCallNumberTypeId": {
            "type": "string",
            "description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc."
          },
          "effectiveCallNumberComponents": {
            "type": "object",
            "description": "Elements of a full call number generated from the item or holding",
            "properties": {
              "callNumber": {
                "type": "string",
                "description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
                "readonly": true
              },
              "prefix": {
                "type": "string",
                "description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item.",
                "readonly": true
              },
              "suffix": {
                "type": "string",
                "description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item.",
                "readonly": true
              },
              "typeId": {
                "type": "string",
                "description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
                "readonly": true,
                "$schema": "http://json-schema.org/draft-04/schema#",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              }
            },
            "additionalProperties": false
          },
          "volume": {
            "type": "string",
            "description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
          },
          "enumeration": {
            "type": "string",
            "description": "Enumeration is the descriptive information for the numbering scheme of a serial."
          },
          "chronology": {
            "type": "string",
            "description": "Chronology is the descriptive information for the dating scheme of a serial."
          },
          "yearCaption": {
            "type": "array",
            "description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
            "items": {
              "type": "string"
            },
            "uniqueItems": true
          },
          "itemIdentifier": {
            "type": "string",
            "description": "Item identifier number, e.g. imported from the union catalogue (read only)."
          },
          "copyNumber": {
            "type": "string",
            "description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
          },
          "numberOfPieces": {
            "type": "string",
            "description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
          },
          "descriptionOfPieces": {
            "description": "Description of item pieces.",
            "type": "string"
          },
          "numberOfMissingPieces": {
            "type": "string",
            "description": "Number of missing pieces."
          },
          "missingPieces": {
            "type": "string",
            "description": "Description of the missing pieces. "
          },
          "missingPiecesDate": {
            "type": "string",
            "description": "Date when the piece(s) went missing."
          },
          "itemDamagedStatusId": {
            "description": "Item dame status id identifier.",
            "type": "string"
          },
          "itemDamagedStatusDate": {
            "description": "Date and time when the item was damaged.",
            "type": "string"
          },
          "notes": {
            "type": "array",
            "description": "Notes about action, copy, binding etc.",
            "items": {
              "type": "object",
              "properties": {
                "itemNoteTypeId": {
                  "type": "string",
                  "description": "ID of the type of note"
                },
                "itemNoteType": {
                  "description": "Type of item's note",
                  "type": "object",
                  "folio:$ref": "itemnotetype.json",
                  "javaType": "org.folio.rest.jaxrs.model.itemNoteTypeVirtual",
                  "readonly": true,
                  "folio:isVirtual": true,
                  "folio:linkBase": "item-note-types",
                  "folio:linkFromField": "itemNoteTypeId",
                  "folio:linkToField": "id",
                  "folio:includedElement": "itemNoteTypes.0"
                },
                "note": {
                  "type": "string",
                  "description": "Text content of the note"
                },
                "staffOnly": {
                  "type": "boolean",
                  "description": "If true, determines that the note should not be visible for others than staff",
                  "default": false
                }
              }
            }
          },
          "circulationNotes": {
            "type": "array",
            "description": "Notes to be displayed in circulation processes",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The id of the circulation note"
                },
                "noteType": {
                  "type": "string",
                  "description": "Type of circulation process that the note applies to",
                  "enum": [
                    "Check in",
                    "Check out"
                  ]
                },
                "note": {
                  "type": "string",
                  "description": "Text to display"
                },
                "source": {
                  "type": "object",
                  "description": "The user who added/updated the note. The property is generated by the server and needed to support sorting. Points to /users/{id} resource.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The id of the user who added/updated the note. The user information is generated by the server and needed to support sorting. Points to /users/{id} resource."
                    },
                    "personal": {
                      "type": "object",
                      "description": "Personal information about the user",
                      "properties": {
                        "lastName": {
                          "description": "The user's last name",
                          "type": "string"
                        },
                        "firstName": {
                          "description": "The user's first name",
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "date": {
                  "type": "string",
                  "description": "Date and time the record is added/updated. The property is generated by the server and needed to support sorting."
                },
                "staffOnly": {
                  "type": "boolean",
                  "description": "Flag to restrict display of this note",
                  "default": false
                }
              },
              "additionalProperties": false
            }
          },
          "status": {
            "description": "The status of the item",
            "type": "object",
            "properties": {
              "name": {
                "description": "Name of the status e.g. Available, Checked out, In transit",
                "type": "string",
                "enum": [
                  "Aged to lost",
                  "Available",
                  "Awaiting pickup",
                  "Awaiting delivery",
                  "Checked out",
                  "Claimed returned",
                  "Declared lost",
                  "In process",
                  "In process (non-requestable)",
                  "In transit",
                  "Intellectual item",
                  "Long missing",
                  "Lost and paid",
                  "Missing",
                  "On order",
                  "Paged",
                  "Restricted",
                  "Order closed",
                  "Unavailable",
                  "Unknown",
                  "Withdrawn"
                ]
              },
              "date": {
                "description": "Date and time when the status was last changed",
                "type": "string",
                "format": "date-time",
                "readonly": true
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "materialTypeId": {
            "type": "string",
            "description": "Material type, term. Define what type of thing the item is."
          },
          "materialType": {
            "description": "Item's material type",
            "type": "object",
            "folio:$ref": "materialtype.json",
            "javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "material-types",
            "folio:linkFromField": "materialTypeId",
            "folio:linkToField": "id",
            "folio:includedElement": "mtypes.0"
          },
          "permanentLoanTypeId": {
            "type": "string",
            "description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
          },
          "temporaryLoanTypeId": {
            "type": "string",
            "description": "Temporary loan type, is the temporary loan type for a given item."
          },
          "permanentLocationId": {
            "type": "string",
            "description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
          },
          "permanentLocation": {
            "description": "The permanent shelving location in which an item resides",
            "type": "object",
            "readonly": true
          },
          "temporaryLocationId": {
            "type": "string",
            "description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
          },
          "temporaryLocation": {
            "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
            "type": "object",
            "folio:$ref": "location.json",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "locations",
            "folio:linkFromField": "temporaryLocationId",
            "folio:linkToField": "id",
            "folio:includedElement": "locations.0"
          },
          "effectiveLocationId": {
            "type": "string",
            "description": "Read only current home location for the item.",
            "readonly": true,
            "$schema": "http://json-schema.org/draft-04/schema#",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
          },
          "electronicAccess": {
            "type": "array",
            "description": "References for accessing the item by URL.",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources"
                },
                "linkText": {
                  "type": "string",
                  "description": "the value of the MARC tag field 856 2nd indicator, where the values are: no information provided, resource, version of resource, related resource, no display constant generated"
                },
                "materialsSpecification": {
                  "type": "string",
                  "description": "materials specified is used to specify to what portion or aspect of the resource the electronic location and access information applies (e.g. a portion or subset of the item is electronic, or a related electronic resource is being linked to the record)"
                },
                "publicNote": {
                  "type": "string",
                  "description": "URL public note to be displayed in the discovery"
                },
                "relationshipId": {
                  "type": "string",
                  "description": "relationship between the electronic resource at the location identified and the item described in the record as a whole"
                }
              },
              "additionalProperties": false,
              "required": [
                "uri"
              ]
            }
          },
          "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}$"
          },
          "statisticalCodeIds": {
            "type": "array",
            "description": "List of statistical code IDs",
            "items": {
              "type": "string"
            },
            "uniqueItems": true
          },
          "purchaseOrderLineIdentifier": {
            "type": "string",
            "description": "ID referencing a remote purchase order object related to this item"
          },
          "tags": {
            "description": "arbitrary tags associated with this item",
            "id": "tags",
            "type": "object",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "title": "tags",
            "properties": {
              "tagList": {
                "description": "List of tags",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          },
          "metadata": {
            "type": "object",
            "readonly": true,
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "metadata.schema",
            "title": "Metadata Schema",
            "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
            "properties": {
              "createdDate": {
                "description": "Date and time when the record was created",
                "type": "string",
                "format": "date-time"
              },
              "createdByUserId": {
                "description": "ID of the user who created the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "createdByUsername": {
                "description": "Username of the user who created the record (when available)",
                "type": "string"
              },
              "updatedDate": {
                "description": "Date and time when the record was last updated",
                "type": "string",
                "format": "date-time"
              },
              "updatedByUserId": {
                "description": "ID of the user who last updated the record (when available)",
                "type": "string",
                "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
              },
              "updatedByUsername": {
                "description": "Username of the user who last updated the record (when available)",
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "createdDate"
            ]
          },
          "holdingsRecord2": {
            "type": "object",
            "description": "Item associated holdings record object.",
            "folio:$ref": "holdingsrecord.json",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "holdings-storage/holdings",
            "folio:linkFromField": "holdingsRecordId",
            "folio:linkToField": "id",
            "folio:includedElement": "holdingsRecords.0"
          },
          "lastCheckIn": {
            "type": "object",
            "additionalProperties": false,
            "description": "Information about when an item was last scanned in the Inventory app.",
            "properties": {
              "dateTime": {
                "type": "string",
                "description": "Date and time of the last check in of the item.",
                "format": "date-time"
              },
              "servicePointId": {
                "type": "string",
                "description": "Service point ID being used by a staff member when item was scanned in Check in app.",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              },
              "staffMemberId": {
                "type": "string",
                "description": "ID a staff member who scanned the item",
                "$schema": "http://json-schema.org/draft-04/schema#",
                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
              }
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "materialTypeId",
          "permanentLoanTypeId",
          "holdingsRecordId",
          "status"
        ]
      }
    },
    "totalRecords": {
      "type": "integer"
    },
    "resultInfo": {
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "resultInfo.schema",
      "description": "Faceting of result sets",
      "type": "object",
      "properties": {
        "totalRecords": {
          "type": "integer",
          "description": "Estimated or exact total number of records"
        },
        "totalRecordsEstimated": {
          "type": "boolean",
          "description": "True if totalRecords is an estimation, false if it is the exact number"
        },
        "totalRecordsRounded": {
          "type": "integer",
          "description": "The rounded value of totalRecords if totalRecords is an estimation"
        },
        "responseTime": {
          "type": "number",
          "description": "Response time"
        },
        "facets": {
          "type": "array",
          "description": "Array of facets",
          "items": {
            "type": "object",
            "description": "A facet",
            "properties": {
              "facetValues": {
                "type": "array",
                "description": "Array of facet values",
                "items": {
                  "type": "object",
                  "description": "A facet value",
                  "properties": {
                    "count": {
                      "type": "integer",
                      "description": "Count of facet values"
                    },
                    "value": {
                      "description": "Value Object"
                    }
                  }
                },
                "additionalProperties": false
              },
              "type": {
                "type": "string",
                "description": "Type of facet"
              }
            },
            "additionalProperties": false
          }
        },
        "diagnostics": {
          "type": "array",
          "description": "Array of diagnostic information",
          "items": {
            "type": "object",
            "description": "Diagnostic information",
            "properties": {
              "source": {
                "type": "string",
                "description": "Source reporting the diagnostic information"
              },
              "code": {
                "type": "string",
                "description": "Diagnostic Code"
              },
              "message": {
                "type": "string",
                "description": "Diagnostic Message"
              },
              "module": {
                "type": "string",
                "description": "Module reporting diagnostic information"
              },
              "recordCount": {
                "type": "integer",
                "description": "Record Count for diagnostics"
              },
              "query": {
                "type": "string",
                "description": "CQL Query associated with results"
              }
            }
          }
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "items",
    "totalRecords"
  ]
}

Example:

{
  "items": [
    {
      "id": "f2901bcc-6290-417a-843b-a6d97ee9a418",
      "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
      "barcode": "456743454532",
      "status": {
        "name": "Available"
      },
      "materialTypeId": "240886da-17d9-435f-985e-21111e586fc8",
      "permanentLoanTypeId": "2e48e713-17f3-4c13-a9f8-23845bb210a4"
    },
    {
      "id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
      "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
      "barcode": "645398607547",
      "status": {
        "name": "Available"
      },
      "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
      "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
      "temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
      "temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96"
    }
  ],
  "totalRecords": 2
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

unable to list items -- malformed parameter 'query', syntax error at column 6

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to list items -- unauthorized

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

POST /item-storage/items

Create a new item item.

POST /item-storage/items
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "An item record",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique ID of the item record"
    },
    "_version": {
      "type": "integer",
      "description": "Record version for optimistic locking"
    },
    "hrid": {
      "type": "string",
      "description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
    },
    "holdingsRecordId": {
      "type": "string",
      "description": "ID of the holdings record the item is a member of."
    },
    "formerIds": {
      "type": "array",
      "description": "Previous identifiers assigned to the item",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "discoverySuppress": {
      "type": "boolean",
      "description": "Records the fact that the record should not be displayed in a discovery system"
    },
    "accessionNumber": {
      "type": "string",
      "description": "Also called inventar number"
    },
    "barcode": {
      "type": "string",
      "description": "Unique inventory control number for physical resources, used largely for circulation purposes"
    },
    "effectiveShelvingOrder": {
      "type": "string",
      "description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
      "readonly": true
    },
    "itemLevelCallNumber": {
      "type": "string",
      "description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
    },
    "itemLevelCallNumberPrefix": {
      "type": "string",
      "description": "Prefix of the call number on the item level."
    },
    "itemLevelCallNumberSuffix": {
      "type": "string",
      "description": "Suffix of the call number on the item level."
    },
    "itemLevelCallNumberTypeId": {
      "type": "string",
      "description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc."
    },
    "effectiveCallNumberComponents": {
      "type": "object",
      "description": "Elements of a full call number generated from the item or holding",
      "properties": {
        "callNumber": {
          "type": "string",
          "description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "prefix": {
          "type": "string",
          "description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "suffix": {
          "type": "string",
          "description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "typeId": {
          "type": "string",
          "description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
          "readonly": true,
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      },
      "additionalProperties": false
    },
    "volume": {
      "type": "string",
      "description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
    },
    "enumeration": {
      "type": "string",
      "description": "Enumeration is the descriptive information for the numbering scheme of a serial."
    },
    "chronology": {
      "type": "string",
      "description": "Chronology is the descriptive information for the dating scheme of a serial."
    },
    "yearCaption": {
      "type": "array",
      "description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "itemIdentifier": {
      "type": "string",
      "description": "Item identifier number, e.g. imported from the union catalogue (read only)."
    },
    "copyNumber": {
      "type": "string",
      "description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
    },
    "numberOfPieces": {
      "type": "string",
      "description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
    },
    "descriptionOfPieces": {
      "description": "Description of item pieces.",
      "type": "string"
    },
    "numberOfMissingPieces": {
      "type": "string",
      "description": "Number of missing pieces."
    },
    "missingPieces": {
      "type": "string",
      "description": "Description of the missing pieces. "
    },
    "missingPiecesDate": {
      "type": "string",
      "description": "Date when the piece(s) went missing."
    },
    "itemDamagedStatusId": {
      "description": "Item dame status id identifier.",
      "type": "string"
    },
    "itemDamagedStatusDate": {
      "description": "Date and time when the item was damaged.",
      "type": "string"
    },
    "notes": {
      "type": "array",
      "description": "Notes about action, copy, binding etc.",
      "items": {
        "type": "object",
        "properties": {
          "itemNoteTypeId": {
            "type": "string",
            "description": "ID of the type of note"
          },
          "itemNoteType": {
            "description": "Type of item's note",
            "type": "object",
            "folio:$ref": "itemnotetype.json",
            "javaType": "org.folio.rest.jaxrs.model.itemNoteTypeVirtual",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "item-note-types",
            "folio:linkFromField": "itemNoteTypeId",
            "folio:linkToField": "id",
            "folio:includedElement": "itemNoteTypes.0"
          },
          "note": {
            "type": "string",
            "description": "Text content of the note"
          },
          "staffOnly": {
            "type": "boolean",
            "description": "If true, determines that the note should not be visible for others than staff",
            "default": false
          }
        }
      }
    },
    "circulationNotes": {
      "type": "array",
      "description": "Notes to be displayed in circulation processes",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the circulation note"
          },
          "noteType": {
            "type": "string",
            "description": "Type of circulation process that the note applies to",
            "enum": [
              "Check in",
              "Check out"
            ]
          },
          "note": {
            "type": "string",
            "description": "Text to display"
          },
          "source": {
            "type": "object",
            "description": "The user who added/updated the note. The property is generated by the server and needed to support sorting. Points to /users/{id} resource.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the user who added/updated the note. The user information is generated by the server and needed to support sorting. Points to /users/{id} resource."
              },
              "personal": {
                "type": "object",
                "description": "Personal information about the user",
                "properties": {
                  "lastName": {
                    "description": "The user's last name",
                    "type": "string"
                  },
                  "firstName": {
                    "description": "The user's first name",
                    "type": "string"
                  }
                }
              }
            }
          },
          "date": {
            "type": "string",
            "description": "Date and time the record is added/updated. The property is generated by the server and needed to support sorting."
          },
          "staffOnly": {
            "type": "boolean",
            "description": "Flag to restrict display of this note",
            "default": false
          }
        },
        "additionalProperties": false
      }
    },
    "status": {
      "description": "The status of the item",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the status e.g. Available, Checked out, In transit",
          "type": "string",
          "enum": [
            "Aged to lost",
            "Available",
            "Awaiting pickup",
            "Awaiting delivery",
            "Checked out",
            "Claimed returned",
            "Declared lost",
            "In process",
            "In process (non-requestable)",
            "In transit",
            "Intellectual item",
            "Long missing",
            "Lost and paid",
            "Missing",
            "On order",
            "Paged",
            "Restricted",
            "Order closed",
            "Unavailable",
            "Unknown",
            "Withdrawn"
          ]
        },
        "date": {
          "description": "Date and time when the status was last changed",
          "type": "string",
          "format": "date-time",
          "readonly": true
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    },
    "materialTypeId": {
      "type": "string",
      "description": "Material type, term. Define what type of thing the item is."
    },
    "materialType": {
      "description": "Item's material type",
      "type": "object",
      "folio:$ref": "materialtype.json",
      "javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "material-types",
      "folio:linkFromField": "materialTypeId",
      "folio:linkToField": "id",
      "folio:includedElement": "mtypes.0"
    },
    "permanentLoanTypeId": {
      "type": "string",
      "description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "Temporary loan type, is the temporary loan type for a given item."
    },
    "permanentLocationId": {
      "type": "string",
      "description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "permanentLocation": {
      "description": "The permanent shelving location in which an item resides",
      "type": "object",
      "readonly": true
    },
    "temporaryLocationId": {
      "type": "string",
      "description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "temporaryLocation": {
      "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
      "type": "object",
      "folio:$ref": "location.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "locations",
      "folio:linkFromField": "temporaryLocationId",
      "folio:linkToField": "id",
      "folio:includedElement": "locations.0"
    },
    "effectiveLocationId": {
      "type": "string",
      "description": "Read only current home location for the item.",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "electronicAccess": {
      "type": "array",
      "description": "References for accessing the item by URL.",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources"
          },
          "linkText": {
            "type": "string",
            "description": "the value of the MARC tag field 856 2nd indicator, where the values are: no information provided, resource, version of resource, related resource, no display constant generated"
          },
          "materialsSpecification": {
            "type": "string",
            "description": "materials specified is used to specify to what portion or aspect of the resource the electronic location and access information applies (e.g. a portion or subset of the item is electronic, or a related electronic resource is being linked to the record)"
          },
          "publicNote": {
            "type": "string",
            "description": "URL public note to be displayed in the discovery"
          },
          "relationshipId": {
            "type": "string",
            "description": "relationship between the electronic resource at the location identified and the item described in the record as a whole"
          }
        },
        "additionalProperties": false,
        "required": [
          "uri"
        ]
      }
    },
    "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}$"
    },
    "statisticalCodeIds": {
      "type": "array",
      "description": "List of statistical code IDs",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "purchaseOrderLineIdentifier": {
      "type": "string",
      "description": "ID referencing a remote purchase order object related to this item"
    },
    "tags": {
      "description": "arbitrary tags associated with this item",
      "id": "tags",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    },
    "holdingsRecord2": {
      "type": "object",
      "description": "Item associated holdings record object.",
      "folio:$ref": "holdingsrecord.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "holdings-storage/holdings",
      "folio:linkFromField": "holdingsRecordId",
      "folio:linkToField": "id",
      "folio:includedElement": "holdingsRecords.0"
    },
    "lastCheckIn": {
      "type": "object",
      "additionalProperties": false,
      "description": "Information about when an item was last scanned in the Inventory app.",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "Date and time of the last check in of the item.",
          "format": "date-time"
        },
        "servicePointId": {
          "type": "string",
          "description": "Service point ID being used by a staff member when item was scanned in Check in app.",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "staffMemberId": {
          "type": "string",
          "description": "ID a staff member who scanned the item",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "materialTypeId",
    "permanentLoanTypeId",
    "holdingsRecordId",
    "status"
  ]
}

Example:

{
  "id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
  "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
  "barcode": "645398607547",
  "status": {
    "name": "In transit"
  },
  "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
  "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
  "temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
  "temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
  "inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
  "tags" : {
    "tagList" : [
      "important"
    ]
  }
}

Response 201

Returns a newly created item, with server-controlled fields like 'id' populated

Headers
  • Location: required (string)

    URI to the created item item

Body

Media type: application/json

Type: any

Example:

{
  "id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
  "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
  "barcode": "645398607547",
  "status": {
    "name": "In transit"
  },
  "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
  "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
  "temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
  "temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
  "inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
  "tags" : {
    "tagList" : [
      "important"
    ]
  }
}

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to add item -- malformed JSON at 13:3"

Response 401

Not authorized to perform requested action

Body

Media type: text/plain

Type: any

Example:

unable to create items -- unauthorized

Response 422

Validation errors

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "errors.schema",
  "description": "A set of errors",
  "type": "object",
  "properties": {
    "errors": {
      "description": "List of errors",
      "id": "errors",
      "type": "array",
      "items": {
        "type": "object",
        "$schema": "http://json-schema.org/draft-04/schema#",
        "id": "error.schema",
        "description": "An error",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message text"
          },
          "type": {
            "type": "string",
            "description": "Error message type"
          },
          "code": {
            "type": "string",
            "description": "Error message code"
          },
          "parameters": {
            "description": "Error message parameters",
            "$schema": "http://json-schema.org/draft-04/schema#",
            "id": "parameters.schema",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      }
    },
    "total_records": {
      "description": "Total number of errors",
      "type": "integer"
    }
  }
}

Example:

{
  "errors": [
    {
      "message": "may not be null",
      "type": "1",
      "code": "-1",
      "parameters": [
        {
          "key": "moduleTo",
          "value": "null"
        }
      ]
    }
  ]
}

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

DELETE /item-storage/items

DELETE /item-storage/items
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

All items deleted

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

GET /item-storage/items/{itemId}

Retrieve item item with given {itemId}

GET /item-storage/items/{itemId}
URI Parameters
  • itemId: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 200

Returns item with a given ID

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "An item record",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique ID of the item record"
    },
    "_version": {
      "type": "integer",
      "description": "Record version for optimistic locking"
    },
    "hrid": {
      "type": "string",
      "description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
    },
    "holdingsRecordId": {
      "type": "string",
      "description": "ID of the holdings record the item is a member of."
    },
    "formerIds": {
      "type": "array",
      "description": "Previous identifiers assigned to the item",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "discoverySuppress": {
      "type": "boolean",
      "description": "Records the fact that the record should not be displayed in a discovery system"
    },
    "accessionNumber": {
      "type": "string",
      "description": "Also called inventar number"
    },
    "barcode": {
      "type": "string",
      "description": "Unique inventory control number for physical resources, used largely for circulation purposes"
    },
    "effectiveShelvingOrder": {
      "type": "string",
      "description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
      "readonly": true
    },
    "itemLevelCallNumber": {
      "type": "string",
      "description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
    },
    "itemLevelCallNumberPrefix": {
      "type": "string",
      "description": "Prefix of the call number on the item level."
    },
    "itemLevelCallNumberSuffix": {
      "type": "string",
      "description": "Suffix of the call number on the item level."
    },
    "itemLevelCallNumberTypeId": {
      "type": "string",
      "description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc."
    },
    "effectiveCallNumberComponents": {
      "type": "object",
      "description": "Elements of a full call number generated from the item or holding",
      "properties": {
        "callNumber": {
          "type": "string",
          "description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "prefix": {
          "type": "string",
          "description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "suffix": {
          "type": "string",
          "description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "typeId": {
          "type": "string",
          "description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
          "readonly": true,
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      },
      "additionalProperties": false
    },
    "volume": {
      "type": "string",
      "description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
    },
    "enumeration": {
      "type": "string",
      "description": "Enumeration is the descriptive information for the numbering scheme of a serial."
    },
    "chronology": {
      "type": "string",
      "description": "Chronology is the descriptive information for the dating scheme of a serial."
    },
    "yearCaption": {
      "type": "array",
      "description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "itemIdentifier": {
      "type": "string",
      "description": "Item identifier number, e.g. imported from the union catalogue (read only)."
    },
    "copyNumber": {
      "type": "string",
      "description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
    },
    "numberOfPieces": {
      "type": "string",
      "description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
    },
    "descriptionOfPieces": {
      "description": "Description of item pieces.",
      "type": "string"
    },
    "numberOfMissingPieces": {
      "type": "string",
      "description": "Number of missing pieces."
    },
    "missingPieces": {
      "type": "string",
      "description": "Description of the missing pieces. "
    },
    "missingPiecesDate": {
      "type": "string",
      "description": "Date when the piece(s) went missing."
    },
    "itemDamagedStatusId": {
      "description": "Item dame status id identifier.",
      "type": "string"
    },
    "itemDamagedStatusDate": {
      "description": "Date and time when the item was damaged.",
      "type": "string"
    },
    "notes": {
      "type": "array",
      "description": "Notes about action, copy, binding etc.",
      "items": {
        "type": "object",
        "properties": {
          "itemNoteTypeId": {
            "type": "string",
            "description": "ID of the type of note"
          },
          "itemNoteType": {
            "description": "Type of item's note",
            "type": "object",
            "folio:$ref": "itemnotetype.json",
            "javaType": "org.folio.rest.jaxrs.model.itemNoteTypeVirtual",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "item-note-types",
            "folio:linkFromField": "itemNoteTypeId",
            "folio:linkToField": "id",
            "folio:includedElement": "itemNoteTypes.0"
          },
          "note": {
            "type": "string",
            "description": "Text content of the note"
          },
          "staffOnly": {
            "type": "boolean",
            "description": "If true, determines that the note should not be visible for others than staff",
            "default": false
          }
        }
      }
    },
    "circulationNotes": {
      "type": "array",
      "description": "Notes to be displayed in circulation processes",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the circulation note"
          },
          "noteType": {
            "type": "string",
            "description": "Type of circulation process that the note applies to",
            "enum": [
              "Check in",
              "Check out"
            ]
          },
          "note": {
            "type": "string",
            "description": "Text to display"
          },
          "source": {
            "type": "object",
            "description": "The user who added/updated the note. The property is generated by the server and needed to support sorting. Points to /users/{id} resource.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the user who added/updated the note. The user information is generated by the server and needed to support sorting. Points to /users/{id} resource."
              },
              "personal": {
                "type": "object",
                "description": "Personal information about the user",
                "properties": {
                  "lastName": {
                    "description": "The user's last name",
                    "type": "string"
                  },
                  "firstName": {
                    "description": "The user's first name",
                    "type": "string"
                  }
                }
              }
            }
          },
          "date": {
            "type": "string",
            "description": "Date and time the record is added/updated. The property is generated by the server and needed to support sorting."
          },
          "staffOnly": {
            "type": "boolean",
            "description": "Flag to restrict display of this note",
            "default": false
          }
        },
        "additionalProperties": false
      }
    },
    "status": {
      "description": "The status of the item",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the status e.g. Available, Checked out, In transit",
          "type": "string",
          "enum": [
            "Aged to lost",
            "Available",
            "Awaiting pickup",
            "Awaiting delivery",
            "Checked out",
            "Claimed returned",
            "Declared lost",
            "In process",
            "In process (non-requestable)",
            "In transit",
            "Intellectual item",
            "Long missing",
            "Lost and paid",
            "Missing",
            "On order",
            "Paged",
            "Restricted",
            "Order closed",
            "Unavailable",
            "Unknown",
            "Withdrawn"
          ]
        },
        "date": {
          "description": "Date and time when the status was last changed",
          "type": "string",
          "format": "date-time",
          "readonly": true
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    },
    "materialTypeId": {
      "type": "string",
      "description": "Material type, term. Define what type of thing the item is."
    },
    "materialType": {
      "description": "Item's material type",
      "type": "object",
      "folio:$ref": "materialtype.json",
      "javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "material-types",
      "folio:linkFromField": "materialTypeId",
      "folio:linkToField": "id",
      "folio:includedElement": "mtypes.0"
    },
    "permanentLoanTypeId": {
      "type": "string",
      "description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "Temporary loan type, is the temporary loan type for a given item."
    },
    "permanentLocationId": {
      "type": "string",
      "description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "permanentLocation": {
      "description": "The permanent shelving location in which an item resides",
      "type": "object",
      "readonly": true
    },
    "temporaryLocationId": {
      "type": "string",
      "description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "temporaryLocation": {
      "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
      "type": "object",
      "folio:$ref": "location.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "locations",
      "folio:linkFromField": "temporaryLocationId",
      "folio:linkToField": "id",
      "folio:includedElement": "locations.0"
    },
    "effectiveLocationId": {
      "type": "string",
      "description": "Read only current home location for the item.",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "electronicAccess": {
      "type": "array",
      "description": "References for accessing the item by URL.",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources"
          },
          "linkText": {
            "type": "string",
            "description": "the value of the MARC tag field 856 2nd indicator, where the values are: no information provided, resource, version of resource, related resource, no display constant generated"
          },
          "materialsSpecification": {
            "type": "string",
            "description": "materials specified is used to specify to what portion or aspect of the resource the electronic location and access information applies (e.g. a portion or subset of the item is electronic, or a related electronic resource is being linked to the record)"
          },
          "publicNote": {
            "type": "string",
            "description": "URL public note to be displayed in the discovery"
          },
          "relationshipId": {
            "type": "string",
            "description": "relationship between the electronic resource at the location identified and the item described in the record as a whole"
          }
        },
        "additionalProperties": false,
        "required": [
          "uri"
        ]
      }
    },
    "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}$"
    },
    "statisticalCodeIds": {
      "type": "array",
      "description": "List of statistical code IDs",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "purchaseOrderLineIdentifier": {
      "type": "string",
      "description": "ID referencing a remote purchase order object related to this item"
    },
    "tags": {
      "description": "arbitrary tags associated with this item",
      "id": "tags",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    },
    "holdingsRecord2": {
      "type": "object",
      "description": "Item associated holdings record object.",
      "folio:$ref": "holdingsrecord.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "holdings-storage/holdings",
      "folio:linkFromField": "holdingsRecordId",
      "folio:linkToField": "id",
      "folio:includedElement": "holdingsRecords.0"
    },
    "lastCheckIn": {
      "type": "object",
      "additionalProperties": false,
      "description": "Information about when an item was last scanned in the Inventory app.",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "Date and time of the last check in of the item.",
          "format": "date-time"
        },
        "servicePointId": {
          "type": "string",
          "description": "Service point ID being used by a staff member when item was scanned in Check in app.",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "staffMemberId": {
          "type": "string",
          "description": "ID a staff member who scanned the item",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "materialTypeId",
    "permanentLoanTypeId",
    "holdingsRecordId",
    "status"
  ]
}

Example:

{
  "id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
  "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
  "barcode": "645398607547",
  "status": {
    "name": "In transit"
  },
  "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
  "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
  "temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
  "temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
  "inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
  "tags" : {
    "tagList" : [
      "important"
    ]
  }
}

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"item not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator

DELETE /item-storage/items/{itemId}

Delete item item with given {itemId}

DELETE /item-storage/items/{itemId}
URI Parameters
  • itemId: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Response 204

Item deleted successfully

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to delete item -- constraint violation"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"item not found"

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

Internal server error, contact administrator

PUT /item-storage/items/{itemId}

Update item item with given {itemId}

PUT /item-storage/items/{itemId}
URI Parameters
  • itemId: required (string)
Query Parameters
  • lang: (string - default: en - pattern: [a-zA-Z]{2})

    Requested language. Optional. [lang=en]

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "An item record",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique ID of the item record"
    },
    "_version": {
      "type": "integer",
      "description": "Record version for optimistic locking"
    },
    "hrid": {
      "type": "string",
      "description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
    },
    "holdingsRecordId": {
      "type": "string",
      "description": "ID of the holdings record the item is a member of."
    },
    "formerIds": {
      "type": "array",
      "description": "Previous identifiers assigned to the item",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "discoverySuppress": {
      "type": "boolean",
      "description": "Records the fact that the record should not be displayed in a discovery system"
    },
    "accessionNumber": {
      "type": "string",
      "description": "Also called inventar number"
    },
    "barcode": {
      "type": "string",
      "description": "Unique inventory control number for physical resources, used largely for circulation purposes"
    },
    "effectiveShelvingOrder": {
      "type": "string",
      "description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
      "readonly": true
    },
    "itemLevelCallNumber": {
      "type": "string",
      "description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
    },
    "itemLevelCallNumberPrefix": {
      "type": "string",
      "description": "Prefix of the call number on the item level."
    },
    "itemLevelCallNumberSuffix": {
      "type": "string",
      "description": "Suffix of the call number on the item level."
    },
    "itemLevelCallNumberTypeId": {
      "type": "string",
      "description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc."
    },
    "effectiveCallNumberComponents": {
      "type": "object",
      "description": "Elements of a full call number generated from the item or holding",
      "properties": {
        "callNumber": {
          "type": "string",
          "description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "prefix": {
          "type": "string",
          "description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "suffix": {
          "type": "string",
          "description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item.",
          "readonly": true
        },
        "typeId": {
          "type": "string",
          "description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
          "readonly": true,
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      },
      "additionalProperties": false
    },
    "volume": {
      "type": "string",
      "description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
    },
    "enumeration": {
      "type": "string",
      "description": "Enumeration is the descriptive information for the numbering scheme of a serial."
    },
    "chronology": {
      "type": "string",
      "description": "Chronology is the descriptive information for the dating scheme of a serial."
    },
    "yearCaption": {
      "type": "array",
      "description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "itemIdentifier": {
      "type": "string",
      "description": "Item identifier number, e.g. imported from the union catalogue (read only)."
    },
    "copyNumber": {
      "type": "string",
      "description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
    },
    "numberOfPieces": {
      "type": "string",
      "description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
    },
    "descriptionOfPieces": {
      "description": "Description of item pieces.",
      "type": "string"
    },
    "numberOfMissingPieces": {
      "type": "string",
      "description": "Number of missing pieces."
    },
    "missingPieces": {
      "type": "string",
      "description": "Description of the missing pieces. "
    },
    "missingPiecesDate": {
      "type": "string",
      "description": "Date when the piece(s) went missing."
    },
    "itemDamagedStatusId": {
      "description": "Item dame status id identifier.",
      "type": "string"
    },
    "itemDamagedStatusDate": {
      "description": "Date and time when the item was damaged.",
      "type": "string"
    },
    "notes": {
      "type": "array",
      "description": "Notes about action, copy, binding etc.",
      "items": {
        "type": "object",
        "properties": {
          "itemNoteTypeId": {
            "type": "string",
            "description": "ID of the type of note"
          },
          "itemNoteType": {
            "description": "Type of item's note",
            "type": "object",
            "folio:$ref": "itemnotetype.json",
            "javaType": "org.folio.rest.jaxrs.model.itemNoteTypeVirtual",
            "readonly": true,
            "folio:isVirtual": true,
            "folio:linkBase": "item-note-types",
            "folio:linkFromField": "itemNoteTypeId",
            "folio:linkToField": "id",
            "folio:includedElement": "itemNoteTypes.0"
          },
          "note": {
            "type": "string",
            "description": "Text content of the note"
          },
          "staffOnly": {
            "type": "boolean",
            "description": "If true, determines that the note should not be visible for others than staff",
            "default": false
          }
        }
      }
    },
    "circulationNotes": {
      "type": "array",
      "description": "Notes to be displayed in circulation processes",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the circulation note"
          },
          "noteType": {
            "type": "string",
            "description": "Type of circulation process that the note applies to",
            "enum": [
              "Check in",
              "Check out"
            ]
          },
          "note": {
            "type": "string",
            "description": "Text to display"
          },
          "source": {
            "type": "object",
            "description": "The user who added/updated the note. The property is generated by the server and needed to support sorting. Points to /users/{id} resource.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The id of the user who added/updated the note. The user information is generated by the server and needed to support sorting. Points to /users/{id} resource."
              },
              "personal": {
                "type": "object",
                "description": "Personal information about the user",
                "properties": {
                  "lastName": {
                    "description": "The user's last name",
                    "type": "string"
                  },
                  "firstName": {
                    "description": "The user's first name",
                    "type": "string"
                  }
                }
              }
            }
          },
          "date": {
            "type": "string",
            "description": "Date and time the record is added/updated. The property is generated by the server and needed to support sorting."
          },
          "staffOnly": {
            "type": "boolean",
            "description": "Flag to restrict display of this note",
            "default": false
          }
        },
        "additionalProperties": false
      }
    },
    "status": {
      "description": "The status of the item",
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the status e.g. Available, Checked out, In transit",
          "type": "string",
          "enum": [
            "Aged to lost",
            "Available",
            "Awaiting pickup",
            "Awaiting delivery",
            "Checked out",
            "Claimed returned",
            "Declared lost",
            "In process",
            "In process (non-requestable)",
            "In transit",
            "Intellectual item",
            "Long missing",
            "Lost and paid",
            "Missing",
            "On order",
            "Paged",
            "Restricted",
            "Order closed",
            "Unavailable",
            "Unknown",
            "Withdrawn"
          ]
        },
        "date": {
          "description": "Date and time when the status was last changed",
          "type": "string",
          "format": "date-time",
          "readonly": true
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false
    },
    "materialTypeId": {
      "type": "string",
      "description": "Material type, term. Define what type of thing the item is."
    },
    "materialType": {
      "description": "Item's material type",
      "type": "object",
      "folio:$ref": "materialtype.json",
      "javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "material-types",
      "folio:linkFromField": "materialTypeId",
      "folio:linkToField": "id",
      "folio:includedElement": "mtypes.0"
    },
    "permanentLoanTypeId": {
      "type": "string",
      "description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
    },
    "temporaryLoanTypeId": {
      "type": "string",
      "description": "Temporary loan type, is the temporary loan type for a given item."
    },
    "permanentLocationId": {
      "type": "string",
      "description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "permanentLocation": {
      "description": "The permanent shelving location in which an item resides",
      "type": "object",
      "readonly": true
    },
    "temporaryLocationId": {
      "type": "string",
      "description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
    },
    "temporaryLocation": {
      "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
      "type": "object",
      "folio:$ref": "location.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "locations",
      "folio:linkFromField": "temporaryLocationId",
      "folio:linkToField": "id",
      "folio:includedElement": "locations.0"
    },
    "effectiveLocationId": {
      "type": "string",
      "description": "Read only current home location for the item.",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "electronicAccess": {
      "type": "array",
      "description": "References for accessing the item by URL.",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources"
          },
          "linkText": {
            "type": "string",
            "description": "the value of the MARC tag field 856 2nd indicator, where the values are: no information provided, resource, version of resource, related resource, no display constant generated"
          },
          "materialsSpecification": {
            "type": "string",
            "description": "materials specified is used to specify to what portion or aspect of the resource the electronic location and access information applies (e.g. a portion or subset of the item is electronic, or a related electronic resource is being linked to the record)"
          },
          "publicNote": {
            "type": "string",
            "description": "URL public note to be displayed in the discovery"
          },
          "relationshipId": {
            "type": "string",
            "description": "relationship between the electronic resource at the location identified and the item described in the record as a whole"
          }
        },
        "additionalProperties": false,
        "required": [
          "uri"
        ]
      }
    },
    "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}$"
    },
    "statisticalCodeIds": {
      "type": "array",
      "description": "List of statistical code IDs",
      "items": {
        "type": "string"
      },
      "uniqueItems": true
    },
    "purchaseOrderLineIdentifier": {
      "type": "string",
      "description": "ID referencing a remote purchase order object related to this item"
    },
    "tags": {
      "description": "arbitrary tags associated with this item",
      "id": "tags",
      "type": "object",
      "$schema": "http://json-schema.org/draft-04/schema#",
      "title": "tags",
      "properties": {
        "tagList": {
          "description": "List of tags",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "metadata": {
      "type": "object",
      "readonly": true,
      "$schema": "http://json-schema.org/draft-04/schema#",
      "id": "metadata.schema",
      "title": "Metadata Schema",
      "description": "Metadata about creation and changes to records, provided by the server (client should not provide)",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "type": "string",
          "format": "date-time"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "createdByUsername": {
          "description": "Username of the user who created the record (when available)",
          "type": "string"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "type": "string",
          "format": "date-time"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "type": "string",
          "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
        },
        "updatedByUsername": {
          "description": "Username of the user who last updated the record (when available)",
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "createdDate"
      ]
    },
    "holdingsRecord2": {
      "type": "object",
      "description": "Item associated holdings record object.",
      "folio:$ref": "holdingsrecord.json",
      "readonly": true,
      "folio:isVirtual": true,
      "folio:linkBase": "holdings-storage/holdings",
      "folio:linkFromField": "holdingsRecordId",
      "folio:linkToField": "id",
      "folio:includedElement": "holdingsRecords.0"
    },
    "lastCheckIn": {
      "type": "object",
      "additionalProperties": false,
      "description": "Information about when an item was last scanned in the Inventory app.",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "Date and time of the last check in of the item.",
          "format": "date-time"
        },
        "servicePointId": {
          "type": "string",
          "description": "Service point ID being used by a staff member when item was scanned in Check in app.",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        },
        "staffMemberId": {
          "type": "string",
          "description": "ID a staff member who scanned the item",
          "$schema": "http://json-schema.org/draft-04/schema#",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "materialTypeId",
    "permanentLoanTypeId",
    "holdingsRecordId",
    "status"
  ]
}

Example:

{
  "id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
  "holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
  "barcode": "645398607547",
  "status": {
    "name": "In transit"
  },
  "materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
  "permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
  "temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
  "temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
  "inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
  "tags" : {
    "tagList" : [
      "important"
    ]
  }
}

Response 204

Item successfully updated

Response 400

Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.

Body

Media type: text/plain

Type: any

Example:

"unable to update item -- malformed JSON at 13:4"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"item not found"

Response 409

Optimistic locking version conflict

Body

Media type: text/plain

Type: any

Example:

version conflict

Response 500

Internal server error, e.g. due to misconfiguration

Body

Media type: text/plain

Type: any

Example:

internal server error, contact administrator