Inventory Hierarchy API (v0.2)

http://github.com/org/folio/mod-inventory-storage

Table of contents

Inventory Hierarchy API

This documents the streaming API for the data needed for Inventory Storage, RTAC and other modules

/inventory-hierarchy

GET /inventory-hierarchy/updated-instance-ids

Stream updated instances ids for Inventory

GET /inventory-hierarchy/updated-instance-ids
Query Parameters
  • startDate: (string)

    Lower bound for filtering instances by instances, items and holdings metadata update date

  • endDate: (string)

    Upper bound for filtering instances by instances, items and holdings metadata update date

  • deletedRecordSupport: (boolean - default: true)

    return deleted records

  • skipSuppressedFromDiscoveryRecords: (boolean - default: true)

    Configuration param which defines if discovery suppressed instance records should be skipped or not

  • onlyInstanceUpdateDate: (boolean - default: true)

    Configuration param which defines if discovery suppressed instance records should be skipped or not

  • 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": "Response schema for Inventory updated instances ids view",
  "type": "object",
  "properties": {
    "instanceId": {
      "description": "Inventory updated instances ids",
      "type": "string",
      "$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}$"
    },
    "source": {
      "description": "Source of metadata and format of the underlying record to the instance record",
      "type": "string"
    },
    "updatedDate": {
      "description": "The last updated date or deleted date of an instance or it's items and holdings",
      "type": "string",
      "format": "date-time"
    },
    "suppressFromDiscovery": {
      "description": "Indicates if instance is suppressed from discovery",
      "type": "boolean"
    },
    "deleted": {
      "description": "Indicates if an instance was deleted in inventory",
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Example:

{
  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
  "source": "FOLIO",
  "updatedDate": "2020-06-23T12:00:00Z",
  "suppressFromDiscovery": false,
  "deleted": false
}

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 updated-instance-ids -- 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 updated-instance-ids -- unauthorized"

Response 404

Item with a given ID not found

Body

Media type: text/plain

Type: any

Example:

"updated-instance-id not found"

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

POST /inventory-hierarchy/items-and-holdings

Stream instances view data for Inventory

POST /inventory-hierarchy/items-and-holdings
Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Define format of request data with instances ids",
  "type": "object",
  "properties": {
    "instanceIds": {
      "description": "Inventory instances identifiers",
      "type": "array",
      "items": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "description": "A universally unique identifier (UUID), this is a 128-bit number used to identify a record and is shown in hex with dashes, for example 6312d172-f0cf-40f6-b27d-9fa8feaf332f; the UUID version must be from 1-5; see https://dev.folio.org/guides/uuids/",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
      }
    },
    "skipSuppressedFromDiscoveryRecords": {
      "description": "Configuration param which defines if discovery suppressed items and holdings records should be skipped or not",
      "type": "boolean"
    }
  },
  "required": [
    "instanceIds",
    "skipSuppressedFromDiscoveryRecords"
  ],
  "additionalProperties": false
}

Example:

{
  "instanceIds": [
    "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
    "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",
    "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
    "0aaef1ea-69eb-4f6e-a077-cea159317ce3",
    "1b74ab75-9f41-4837-8662-a1d99118008d"
  ],
  "skipSuppressedFromDiscoveryRecords": false
}

Response 200

Body

Media type: application/json

Type: json

Content:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "Response schema for Inventory items and holdings view",
  "type": "object",
  "properties": {
    "instanceId": {
      "description": "Inventory updated instance identifier",
      "type": "string",
      "$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}$"
    },
    "source": {
      "description": "Source of metadata and format of the underlying record to the instance record",
      "type": "string"
    },
    "modeOfIssuance": {
      "description": "The mode of issuance would tell if the material is a serial or not",
      "type": "string"
    },
    "natureOfContent": {
      "description": "A periodical (which is a subset of serials) might also have a nature of content periodical (journal, newspaper)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "holdings": {
      "type": "array",
      "description": "Holdings record fields",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "System assigned unique ID of the holdings record",
            "type": "string",
            "$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}$"
          },
          "hrId": {
            "description": "System-assigned sequential ID which maps to the Instance ID",
            "type": "string"
          },
          "suppressFromDiscovery": {
            "description": "Indicate if record should not be displayed in a discovery system",
            "type": "boolean"
          },
          "holdingsType": {
            "description": "Name of the holdings type",
            "type": "string"
          },
          "formerIds": {
            "type": "array",
            "description": "Identifiers of previously assigned ID(s) to the holdings record",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "description": "Holdings record effective location",
            "type": "object",
            "properties": {
              "permanentLocation": {
                "type": "object",
                "description": "Permanent shelving location in which an item resides",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "campusName",
                  "libraryName",
                  "institutionName",
                  "code"
                ]
              },
              "temporaryLocation": {
                "type": "object",
                "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                }
              },
              "effectiveLocation": {
                "type": "object",
                "description": "Effective location, shelving location, or holding which is a physical place where items are stored, or an Online location",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                }
              }
            },
            "required": [
              "permanentLocation"
            ]
          },
          "callNumber": {
            "description": "Call Number is an identifier assigned to a holding",
            "type": "object",
            "properties": {
              "prefix": {
                "description": "Prefix of the call number on the holding level",
                "type": "string"
              },
              "suffix": {
                "description": "Suffix of the call number on the holding level",
                "type": "string"
              },
              "typeId": {
                "description": "Unique ID for the type of call number on a holdings record",
                "type": "string",
                "$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}$"
              },
              "typeName": {
                "description": "Name of the call number type",
                "type": "string"
              },
              "callNumber": {
                "description": "Call Number identifier assigned to a holding",
                "type": "string"
              }
            }
          },
          "shelvingTitle": {
            "description": "Indicates the shelving form of title",
            "type": "string"
          },
          "acquisitionFormat": {
            "description": "Format of holdings record acquisition",
            "type": "string"
          },
          "acquisitionMethod": {
            "description": "Method of holdings record acquisition",
            "type": "string"
          },
          "receiptStatus": {
            "description": "Receipt status (e.g. pending, awaiting receipt, partially received, fully received, receipt not required, and cancelled)",
            "type": "string"
          },
          "electronicAccess": {
            "description": "Aggregated electronic access from holdings",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "description": "Electronic access URI",
                  "type": "string"
                },
                "name": {
                  "description": "Electronic access name",
                  "type": "string"
                },
                "linkText": {
                  "description": "Electronic access link text",
                  "type": "string"
                },
                "publicNote": {
                  "description": "Electronic access public note",
                  "type": "string"
                },
                "relationshipId": {
                  "description": "Electronic access relationship id",
                  "type": "string",
                  "$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}$"
                },
                "materialsSpecification": {
                  "description": "Electronic access materials specification",
                  "type": "string"
                }
              },
              "required": [
                "uri"
              ]
            }
          },
          "notes": {
            "description": "Notes about action, copy, binding etc.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "holdingsNoteTypeName": {
                  "description": "Name of the holdings note type",
                  "type": "string"
                },
                "note": {
                  "description": "Text content of the note",
                  "type": "string"
                }
              }
            }
          },
          "illPolicy": {
            "description": "Name of the ILL policy",
            "type": "string"
          },
          "retentionPolicy": {
            "description": "Records information regarding how long we have agreed to keep something",
            "type": "string"
          },
          "digitizationPolicy": {
            "description": "Records information regarding digitization aspects",
            "type": "string"
          },
          "holdingsStatements": {
            "description": "Notes about action, copy, binding etc.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "statement": {
                  "description": "Name of the holdings note type",
                  "type": "string"
                },
                "note": {
                  "description": "Text content of the note",
                  "type": "string"
                }
              }
            }
          },
          "holdingsStatementsForIndexes": {
            "description": "Holdings record indexes statements",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "statement": {
                  "description": "Textual description of the holdings of indexes",
                  "type": "string"
                },
                "note": {
                  "description": "Note attached to a holdings statement",
                  "type": "string"
                }
              }
            }
          },
          "holdingsStatementsForSupplements": {
            "description": "Holdings record supplements statements",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "statement": {
                  "description": "Textual description of the holdings of supplementary material",
                  "type": "string"
                },
                "note": {
                  "description": "Note attached to a holdings statement",
                  "type": "string"
                }
              }
            }
          },
          "copyNumber": {
            "description": "Piece ID (usually barcode) for systems that do not use holdings record",
            "type": "string"
          },
          "numberOfItems": {
            "description": "Amount of items of holdings record",
            "type": "string"
          },
          "receivingHistory": {
            "description": "Receiving history of holdings record",
            "type": "object",
            "properties": {
              "entries": {
                "description": "Entries of receiving history",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "publicDisplay": {
                      "description": "Defines if the receiving history should be visible to the public",
                      "type": "boolean"
                    },
                    "enumeration": {
                      "description": "This is the volume/issue number (e.g. v.71:no.6-2)",
                      "type": "string"
                    },
                    "chronology": {
                      "description": "Repeated element from Receiving history - Enumeration AND Receiving history - Chronology",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "tags": {
            "description": "Arbitrary tags associated with this holding",
            "type": "object",
            "properties": {
              "tagList": {
                "description": "List of tags",
                "type": "array",
                "items": {
                  "important": {
                    "description": "Indicate if tag is important",
                    "type": "string"
                  }
                }
              }
            }
          },
          "statisticalCodes": {
            "description": "Holdings record statistical codes",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Unique ID of the statistical code",
                  "type": "string",
                  "$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}$"
                },
                "code": {
                  "description": "Statistical code, a distinct label",
                  "type": "string"
                },
                "name": {
                  "description": "Name or description of a statistical code",
                  "type": "string"
                },
                "statisticalCodeType": {
                  "description": "Name of a statistical code type",
                  "type": "string"
                },
                "source": {
                  "description": "Label indicating where the statistical code type entry originates from, i.e. 'folio' or 'local'",
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "id",
          "location"
        ]
      }
    },
    "items": {
      "type": "array",
      "description": "Item records",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the item record",
            "type": "string",
            "$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}$"
          },
          "hrId": {
            "description": "System-assigned sequential ID which maps to the Instance ID",
            "type": "string"
          },
          "holdingsRecordId": {
            "description": "Unique ID for the type of this holdings record",
            "type": "string",
            "$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}$"
          },
          "suppressFromDiscovery": {
            "description": "Indicate if record should not be displayed in a discovery system",
            "type": "boolean"
          },
          "status": {
            "description": "The status of the item",
            "type": "string"
          },
          "formerIds": {
            "type": "array",
            "description": "Previous identifiers assigned to the item",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "description": "Item location",
            "type": "object",
            "properties": {
              "location": {
                "type": "object",
                "description": "Current home location for the item",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                }
              },
              "permanentLocation": {
                "type": "object",
                "description": "Permanent shelving location in which an item resides",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                }
              },
              "temporaryLocation": {
                "type": "object",
                "description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
                "properties": {
                  "name": {
                    "description": "Name of the (shelf) location",
                    "type": "string"
                  },
                  "campusName": {
                    "description": "The name of the campus, the second-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "libraryName": {
                    "description": "The name of the library, the third-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "institutionName": {
                    "description": "The name of the institution, the first-level location unit, this (shelf) location belongs to",
                    "type": "string"
                  },
                  "code": {
                    "description": "Code of the (shelf) location, usually an abbreviation of the name",
                    "type": "string"
                  }
                }
              }
            }
          },
          "callNumber": {
            "description": "An identifier assigned to an item, usually printed on a label attached to the item",
            "type": "object",
            "properties": {
              "prefix": {
                "description": "Prefix of the call number on the item level",
                "type": "string"
              },
              "suffix": {
                "description": "Suffix of the call number on the item level",
                "type": "string"
              },
              "typeName": {
                "description": "Name of the call number type",
                "type": "string"
              },
              "callNumber": {
                "description": "Identifier assigned to an item, used to determine the items physical position in a shelving sequence",
                "type": "string"
              }
            }
          },
          "accessionNumber": {
            "description": "Inventar number of item",
            "type": "string"
          },
          "barcode": {
            "description": "Unique inventory control number for physical resources, used largely for circulation purposes",
            "type": "string"
          },
          "copyNumber": {
            "description": "Copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume",
            "type": "string"
          },
          "volume": {
            "description": "Volume is intended for monographs when a multipart monograph",
            "type": "string"
          },
          "enumeration": {
            "description": "Descriptive information for the numbering scheme of a serial",
            "type": "string"
          },
          "chronology": {
            "description": "Descriptive information for the dating scheme of a serial",
            "type": "string"
          },
          "yearCaption": {
            "description": "Character(s) used to label a level of chronology, e.g., year 1985",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "itemIdentifier": {
            "description": "Item identifier number, e.g. imported from the union catalogue",
            "type": "string"
          },
          "numberOfPieces": {
            "description": "Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)",
            "type": "string"
          },
          "descriptionOfPieces": {
            "description": "Description of item pieces",
            "type": "string"
          },
          "numberOfMissingPieces": {
            "description": "Number of missing pieces",
            "type": "string"
          },
          "missingPieces": {
            "description": "Description of the missing pieces",
            "type": "string"
          },
          "missingPiecesDate": {
            "description": "Date when the piece(s) went missing",
            "type": "string"
          },
          "itemDamagedStatus": {
            "description": "Item dame status",
            "type": "string"
          },
          "itemDamagedStatusDate": {
            "description": "Date and time when the item was damaged",
            "type": "string"
          },
          "materialType": {
            "description": "Define what type of thing the item is",
            "type": "string"
          },
          "permanentLoanType": {
            "description": "Default loan type for a given item. Loan types are tenant-defined",
            "type": "string"
          },
          "temporaryLoanType": {
            "description": "Temporary loan type for a given item",
            "type": "string"
          },
          "electronicAccess": {
            "description": "References for accessing the item by URL",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uri": {
                  "description": "Uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources",
                  "type": "string"
                },
                "name": {
                  "description": "Electronic access name",
                  "type": "string"
                },
                "linkText": {
                  "description": "Value of the MARC tag field 856 2nd indicator, where the values are",
                  "type": "string"
                },
                "publicNote": {
                  "description": "URL public note to be displayed in the discovery",
                  "type": "string"
                },
                "relationshipId": {
                  "description": "Relationship between the electronic resource at the location identified",
                  "type": "string",
                  "$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}$"
                },
                "materialsSpecification": {
                  "description": "Used to specify to what portion or aspect of the resource the electronic location and access information applies",
                  "type": "string"
                }
              },
              "required": [
                "uri"
              ]
            }
          },
          "notes": {
            "description": "Notes about action, copy, binding etc.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "itemNoteTypeName": {
                  "description": "Name of the item note type",
                  "type": "string"
                },
                "note": {
                  "description": "Text content of the note",
                  "type": "string"
                }
              }
            }
          },
          "tags": {
            "description": "Arbitrary tags associated with this item",
            "type": "object",
            "properties": {
              "tagList": {
                "description": "List of tags",
                "type": "array",
                "items": {
                  "important": {
                    "description": "Indicate if tag is important",
                    "type": "string"
                  }
                }
              }
            }
          },
          "statisticalCodes": {
            "description": "Item record statistical codes",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Unique ID of the statistical code",
                  "type": "string",
                  "$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}$"
                },
                "code": {
                  "description": "Statistical code, a distinct label",
                  "type": "string"
                },
                "name": {
                  "description": "Name or description of a statistical code",
                  "type": "string"
                },
                "statisticalCodeType": {
                  "description": "Name of a statistical code type",
                  "type": "string"
                },
                "source": {
                  "description": "Label indicating where the statistical code type entry originates from, i.e. 'folio' or 'local'",
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "id",
          "holdingsRecordId",
          "status",
          "materialType",
          "permanentLoanType"
        ]
      }
    }
  },
  "required": [
    "instanceId",
    "source"
  ],
  "additionalProperties": false
}

Example:

{
  "instanceId": "2fd27465-e6ce-4143-9b7c-606860747f03",
  "source": "FOLIO",
  "modeOfIssuance": "serial",
  "natureOfContent": [
    "journal"
  ],
  "holdings": [
    {
      "id": "7df791c5-e330-4cfe-bb0b-a5f0e555ac68",
      "hrId": "hold000000000001",
      "suppressFromDiscovery": false,
      "holdingsType": "holdingsType name",
      "formerIds": [
        "ABW4508",
        "442882"
      ],
      "location": {
        "permanentLocation": {
          "name": "Annex",
          "campusName": "City Campus",
          "libraryName": "Datalogisk Institut",
          "institutionName": "Københavns Universitet",
          "code": "KU/CC/DI/A"
        },
        "temporaryLocation": {
          "name": "Annex",
          "campusName": "City Campus",
          "libraryName": "Datalogisk Institut",
          "institutionName": "Københavns Universitet",
          "code": "KU/CC/DI/A"
        }
      },
      "callNumber": {
        "prefix": "prefix",
        "suffix": "suffix",
        "typeId": "512173a7-bd09-490e-b773-17d83f2b63fe",
        "typeName": "call number type name",
        "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
      },
      "shelvingTitle": "Title",
      "acquisitionFormat": "Order format",
      "acquisitionMethod": "Purchase",
      "receiptStatus": "Not currently received",
      "electronicAccess": [
        {
          "uri": "http://www.loc.gov/catdir/toc/ecip0718/2007020429.html",
          "name": "Version of resource",
          "linkText": "Links available",
          "publicNote": "Table of contents only",
          "relationshipId": "3b430592-2e09-4b48-9a0c-0636d66b9fb3",
          "materialsSpecification": "Table of contents"
        }
      ],
      "notes": [
        {
          "holdingsNoteTypeName": "Action note",
          "note": "Note"
        }
      ],
      "illPolicy": "illPolicy name",
      "retentionPolicy": "Permanently retained.",
      "digitizationPolicy": "Digitization policy",
      "holdingsStatements": [
        {
          "statement": "Line 1",
          "note": "Note to line 1"
        }
      ],
      "holdingsStatementsForIndexes": [
        {
          "statement": "Line 1",
          "note": "Note to line 1"
        }
      ],
      "holdingsStatementsForSupplements": [
        {
          "statement": "Line 1",
          "note": "Note to line 1"
        }
      ],
      "copyNumber": "1",
      "numberOfItems": "5",
      "receivingHistory": {
        "entries": [
          {
            "publicDisplay": true,
            "enumeration": "Enumeration",
            "chronology": "Chronology"
          }
        ]
      },
      "tags": {
        "tagList": [
          "important"
        ]
      },
      "statisticalCodes": [
        {
          "id": "775b6ad4-9c35-4d29-bf78-8775a9b42226",
          "code": "ASER",
          "name": "Active serial",
          "statisticalCodeType": "SERM (Serial management)",
          "source": "UC"
        }
      ]
    }
  ],
  "items": [
    {
      "id": "7df791c5-e330-4cfe-bb0b-a5f0e555ac69",
      "hrId": "item000000000002",
      "holdingsRecordId": "512173a7-bd09-490e-b773-17d83f2b63fe",
      "suppressFromDiscovery": false,
      "status": "Available",
      "formerIds": [
        "Former identifier"
      ],
      "location": {
        "location": {
          "name": "Annex",
          "campusName": "City Campus",
          "libraryName": "Datalogisk Institut",
          "institutionName": "Københavns Universitet",
          "code": "KU/CC/DI/A"
        },
        "permanentLocation": {
          "name": "Annex",
          "campusName": "City Campus",
          "libraryName": "Datalogisk Institut",
          "institutionName": "Københavns Universitet",
          "code": "KU/CC/DI/A"
        },
        "temporaryLocation": {
          "name": "Annex",
          "campusName": "City Campus",
          "libraryName": "Datalogisk Institut",
          "institutionName": "Københavns Universitet",
          "code": "KU/CC/DI/A"
        }
      },
      "callNumber": {
        "prefix": "prefix",
        "suffix": "suffix",
        "typeName": "call number type name",
        "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
      },
      "accessionNumber": "Accession number",
      "barcode": "A1429864347",
      "copyNumber": "copyNumber",
      "volume": "volume",
      "enumeration": "enumeration",
      "chronology": "chronology",
      "yearCaption": [
        "Year, caption"
      ],
      "itemIdentifier": "Item identifier",
      "numberOfPieces": "Number of pieces",
      "descriptionOfPieces": "Description of pieces",
      "numberOfMissingPieces": "Number of missing pieces",
      "missingPieces": "Missing pieces",
      "missingPiecesDate": "2020-07-28",
      "itemDamagedStatus": "Not Damaged",
      "itemDamagedStatusDate": "2020-07-28T09:34:40.562Z",
      "materialType": "book",
      "permanentLoanType": "Can circulate",
      "temporaryLoanType": "Can circulate",
      "electronicAccess": [
        {
          "uri": "http://www.loc.gov/catdir/toc/ecip0718/2007020429.html",
          "name": "Version of resource",
          "linkText": "Links available",
          "publicNote": "Table of contents only",
          "relationshipId": "3b430592-2e09-4b48-9a0c-0636d66b9fb3",
          "materialsSpecification": "Table of contents"
        }
      ],
      "notes": [
        {
          "itemNoteTypeName": "Action note",
          "note": "Note"
        }
      ],
      "tags": {
        "tagList": [
          "important"
        ]
      },
      "statisticalCodes": [
        {
          "id": "775b6ad4-9c35-4d29-bf78-8775a9b42226",
          "code": "ASER",
          "name": "Active serial",
          "statisticalCodeType": "SERM (Serial management)",
          "source": "UC"
        }
      ]
    }
  ]
}

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"
        }
      ]
    }
  ]
}