Every named schema in the specification, one level deep. A field that points at another schema links to it rather than being expanded, so each schema is described in one place.

153 schemas · Generated from vendor_v0_6_7.yaml Each field is listed as name, then type, then description. A type that names another schema links to it.

AdditionalIdentifier

one of AdditionalIdentifierTypeISBN | AdditionalIdentifierTypeISSN | AdditionalIdentifierTypeEAN | AdditionalIdentifierTypeBibsentBibbi

AdditionalIdentifierTypeBibsentBibbi

typerequired
string enumbibsentBibbi
valuerequired
string

AdditionalIdentifierTypeEAN

digitsrequired
string enum13
typerequired
string enumean
valuerequired
string

AdditionalIdentifierTypeISBN

digitsrequired
string enum10 · 13
typerequired
string enumisbn
valuerequired
string

AdditionalIdentifierTypeISSN

typerequired
string enumissn
valuerequired
string

Agent

one of AgentTypePerson | AgentTypeCollective

AgentPersonActiveLiteral

Date or date range the person was active. This is usually only recorded for historical persons where the birth and death dates are uncertain or unknown. A literal value, meaning there are no expected structure or format.

typerequired
string enumliteral
valuerequired
string

AgentRole

one of AgentRoleMarcRelator

Telling the role of an agent, e.g. author, illustrator, editor.

AgentRoleMarcRelator

roleCoderequired
string

A contribution role code from the MARC Code List for Relators.

typerequired
string enummarcRelator

Identifies the role code as being part of MARC Code List for Relators.

AgentTypeCollective

all of BaseAgent + object

AgentTypePerson

all of BaseAgent + object

Amount

integer

The amount is in minor unit (see ISO 4217).

BaseAgent

description
string

This is a description of the agent.

fullNamerequired
string

This is the full name of the agent.

id
string

This isn't required, but if it's set:

  • The agent is searchable through the GET /agent endpoint.
  • Or you can search using the filter plas.agent to search on this agent.
images
array of ImageAgent

Images of the agent.

BaseEventItem

eventIdrequired
string

A unique identifier for the event.

typerequired
string

The type of event.

BasicTitle

language
Language

The language of the titles in the object.

mainrequired
string

This is the main title.

part
object

This contains the information to distinguish the work.

remainder
string

This is the remainder of the title.

Binding

one of BindingTypeLiteral

BindingTypeLiteral

A literal binding, meaning there are no expected structure or format.

typerequired
string enumliteral
valuerequired
string

A displayable (human readable) representation of the binding.

CheckinCompletedWithPatronId

all of CheckinResponseBase + object

A completed checkin where the patron is known. This is what the vendor `item_checkin` event carries, since an event is only ever sent for a loan that was returned.

CheckinField

acquiredFrom
PatronLoanAcquiredFrom
dueDate
string (date)

This is the due date of the checkin item, meaning the date where item should (at the latest) be returned.

fees
array of PatronFee

The fees the library registered on the patron as part of this checkin, e.g. an overdue fine created because the item came back after dueDate. Send an empty array when the checkin created no fee. Leave the field out only when the provider cannot tell whether a fee was created, e.g. when fines are calculated later by a separate process.

itemIdrequired
string

This is the item ID of the checked in item.

loanIdrequired
LoanId
needsStaff
boolean

True when a person has to look at this item, e.g. it is damaged, or it is not the item the provider expected.

Do not set it for a reservation or for an item that belongs to another branch. Those are about where the item goes, not about something being wrong with it.

If the field is missing, the default is false.

patronId
string

The patron who had the item on loan. Leave the field out when the provider does not disclose it, or when the loan was not to a patron, e.g. an interlibrary loan.

permanentLocation
CheckinPermanentLocation
publicationIdrequired
string

This is the publication ID of the checkin item. A vendor needs it to show or print a title.

publicationMetadata
PublicationFallback
sortingCode
string

This is the sorting code, and can be used to sort checked in items, on e.g. a self service machine by reserved and not-reserved items.

PLAS defines no values for this field, they are agreed between a provider and the vendors integrating with it. It is for providers whose sorters already run on a code of their own.

A provider that also serves SIP2 can put the same value here that it puts in sort bin (CL). It is the same idea: a bin value that the library, the provider and the sorter supplier agree on between them.

transactionDateTimerequired
string (date-time)

This is the registered time and date of the checkin.

CheckinFieldWithRequiredPatronId

all of CheckinField + object

CheckinPermanentLocation

CheckOutOrInLocationWithoutNames

The location where the item is normally kept. A sorter uses it to route the item after a checkin: an item whose permanent location is another branch goes to that branch.

CheckinResponseBase

message
CheckOutOrInMessage
requestIdrequired
string

This is a unique identifier for the checkin request. This will change for each request.
It is meant for correlating logs.

statusrequired
string

This tells the outcome of the checkin, and which other fields are present.

CheckoutCompleted

all of CheckoutResponseBase + object

The item was checked out, and the loan exists.

CheckoutField

acquiredFrom
PatronLoanAcquiredFrom
dueDaterequired
string (date)

This is the due date of the checked out item.

fees
array of PatronFee

The fees the library registered on the patron as part of this checkout, e.g. a lending fee the patron accepted through acknowledgement. Send an empty array when the checkout created no fee. Leave the field out only when the provider cannot tell whether a fee was created.

itemIdrequired
string

This is the item ID of the checkout item.

loanIdrequired
LoanId
patronIdrequired
string

This is the patron ID of the patron that made the checkout.

publicationIdrequired
string

This is the publication ID of the checkout item. A vendor needs it to show or print a title.

publicationMetadata
PublicationFallback
renewed
boolean

True when the patron already had this item on loan, so this checkout extended the existing loan instead of creating a new one.

If the field is missing, this information is unknown.

transactionDateTimerequired
string (date-time)

This is the registered time and date of the checkout.

CheckOutOrInLocationWithoutNames

The object tells the location where a checkout or checkin was made. The `sections` is for specifying the location more precisely.

branchIdrequired
string

The branch ID where the checkout or checkin was made.

sections
array of LocationSectionElementWithIdNameAndType

This is specifying the location more precisely.

CheckOutOrInMessage

Both type and text are optional, but at least one of them must be set.

text
string

Message to the patron.

type
string

This can be used instead of the text field to identify the message type.
This can be used by a vendor to handle the message or control the content of the message.

PLAS defines no values for this field, they are agreed between a provider and the vendors integrating with it. A vendor that does not recognise a value should fall back to text.

CheckoutResponseBase

message
CheckOutOrInMessage
requestIdrequired
string

This is a unique identifier for the checkout request. This will change for each request.
It is meant for correlating logs.

statusrequired
string

This tells the outcome of the checkout, and which other fields are present.

Contributor

agentrequired
Agent
roles
array of AgentRole

List of roles (e.g. author, illustrator, editor) that the agent played in the creation of this entity.

Date

one of DateTypeLiteral | DateTypeRFC3339 | DateTypeYear | DateTypeYearRange | DateTypeCentury

DateTypeCentury

The *century* date can be used if we only know which century an event happened.

beforeTheCommonEra
boolean

The default value is false, meaning common era, otherwise before the common era.

centuryrequired
integer

The century e.g. 19 century CE (meaning 1801 CE to 1900 CE), 3 century BCE (meaning 300 BCE to 201 BCE)

typerequired
string enumcentury

DateTypeLiteral

A literal date, meaning there are no expected structure or format.

typerequired
string enumliteral
valuerequired
string

DateTypeRFC3339

The *rfc3339* date can be used if we now the date.

daterequired
string (date)

RFC3339 full-date format (YYYY-MM-DD).

typerequired
string enumrfc3339

DateTypeYear

The *year* date can be used if we only know which year an event happened.

typerequired
string enumyear
yearrequired
integer

Eg. 1924

DateTypeYearRange

The *yearRange* date can be used if we only know approx when an event happened. This can also be used give an open ended year range. *from* and *to* isn't required, but a least one of them should be set.

from
integer

Eg. 1924

to
integer

Eg. 1979

typerequired
string enumyearRange

Edition

one of EditionTypeLiteral | EditionTypeNumbering

EditionTypeLiteral

A literal edition, meaning there are no expected structure or format.

typerequired
string enumliteral
valuerequired
string

A displayable (human readable) representation of the edition.

EditionTypeNumbering

display
string

A displayable (human readable) representation of the edition.

numberrequired
integer

The edition number.

printing
integer

The printing number of the edition.

typerequired
string enumnumbering

Error

coderequired
ErrorCode
inforequired
ErrorInfo

ErrorCode

integer enum

A number representing the type of error. List of error codes: - \<error code\>: \<error description\> - 500: System error - 600: Unsupported Open Library API version</br>

500 · 600

ErrorInfo

string

Starts with the text matching the error code field (defined above), and a describing text could be added.

Errors

errorsrequired
array of Error

The first error should always be the most relevant.

EventConsentChanged

all of BaseEventItem + object

EventFeeDueDateIsApproaching

all of BaseEventItem + object

EventItemAddedToLoanHistory

all of BaseEventItem + object

EventItemCheckin

all of BaseEventItem + object

EventItemCheckout

all of BaseEventItem + object

EventItemPatronListCreated

all of BaseEventItem + object

EventItemPatronListDeleted

all of BaseEventItem + object

EventItemPatronListItemAddedToList

all of BaseEventItem + object

EventItemPatronListItemMovedOnList

all of BaseEventItem + object

EventItemPatronListItemRemovedFromList

all of BaseEventItem + object

EventItemPatronListUpdated

all of BaseEventItem + object

EventItemRemovedFromLoanHistory

all of BaseEventItem + object

EventLoanDueDateIsApproaching

all of BaseEventItem + object

EventPatronDeleted

all of BaseEventItem + object

EventReadyReservationExpiresSoon

all of BaseEventItem + object

EventReceiverRequest

one of EventConsentChanged | EventPatronDeleted | EventReservationReadyForPickup | EventReadyReservationExpiresSoon | EventReservationExpiresSoon | EventReservationReminder | EventLoanDueDateIsApproaching | EventFeeDueDateIsApproaching | EventItemCheckout | EventItemCheckin

EventReservationExpiresSoon

all of BaseEventItem + object

EventReservationReadyForPickup

all of BaseEventItem + object

EventReservationReminder

all of BaseEventItem + object

Extent

one of ExtentTypeLiteral | ExtentTypePages | ExtentTypePlaytime | ExtentTypeUnits

ExtentTypeLiteral

A literal extent, meaning there are no expected structure or format.

typerequired
string enumliteral
valuerequired
string

A displayable (human readable) representation of the extent.

ExtentTypePages

pagesrequired
integer

Number of physical pages.

typerequired
string enumpages

ExtentTypePlaytime

playtimerequired
integer

The total playtime in seconds.

typerequired
string enumplaytime

ExtentTypeUnits

typerequired
string enumunits
unitTyperequired
string enumvolume · dvd · cd · bluRay · cassette · lp
unitsrequired
integer

Number of physical units (volumes, dvd, cd, ...)

FeeAmount

integer

The amount is in minor unit (see ISO 4217).

FeeCreatedTime

string (date-time)

The date and time the fee was created.

FeeCurrency

string

ISO 4217

FeeDueDate

string (date)

The due date of the fee.

FeeId

string

This is the fee ID.

FeeItem

Item information related to a fee.

acquiredFrom
PatronLoanAcquiredFrom
itemIdrequired
string

The item identifier of the item that the fee is about.

publicationMetadatarequired
PublicationFallback

FeePayableState

string enum

This state tells if the fee can be paid and finalized through this API. - *payable*: The fee is payable, and can be finalized through this API. - *not_payable*: The fee cannot be finalized through this API.

payable · not_payable

FeeRemainingAmount

Amount

The remaining amount is the amount that is still payable. If this is not equal to amount, part of the fee has been paid. The amount is in minor unit (see ISO 4217).

FeeType

string enum

Defines the type of fee being applied. All fees indicate that the patron should pay, never the other way around. The possible values are: - *fee*: Indicates a regular fee, typically for a late checked-in loan. - *compensation*: Indicates a compensation fee, typically applied due to a damaged or lost item. - *send_to_debt_collector*: Indicates that the fee has been sent to a debt collector because it was not paid in time.

fee · compensation · send_to_debt_collector

GetVersionResponseBody

versionrequired
Version

This is recommended (by the vendor) version of the Open Library API, that is supported by the vendor.

ImageAgent

one of ImageTypeAgent

ImagePublication

one of ImageTypeFrontCover | ImageTypeBackCover

ImageTypeAgent

all of ImageUrl + object

ImageTypeBackCover

all of ImageUrl + object

ImageTypeFrontCover

all of ImageUrl + object

ImageUrl

height
integer

The image height in px.

mime
string enumpng · jpeg
urlrequired
string
width
integer

The image width in px.

Language

coderequired
string

A id that (if set) can be used with the filter plas.language to search on this genre.

Codes can be found at <https://www.loc.gov/marc/languages/>

name
string

A displayable (human readable) value of the language.

LoanCreatedTime

string (date-time)

The date and time the loan was made.

LoanDueDate

string (date)

The latest date on which the loan must be returned.

LoanId

string

This is the loan ID.

LoanItemId

string

This is the item identifier of the checkout item.

LoanPublicationId

string

This is the publication ID of the loan. If this is empty, the publication is unknown.

LoanRenewableState

string enum

This tells the renewable state of the loan.

renewable · not_renewable · renewable_later · unknown

LoanRenewInfo

This contain information about renewal of the loan.

count
integer

The number of times this loan can still be renewed. If the field is missing, this information is unknown.

lastDate
string (date)

The date when the loan was last renewed. If the field is missing, this information is unknown.

staterequired
LoanRenewableState

LocationSectionElementType

string

This should be the section type of the section (element) ID.

LocationSectionElementWithId

idrequired
string

This is the section (element) ID

LocationSectionElementWithIdAndName

all of LocationSectionElementWithId + object

LocationSectionElementWithIdNameAndType

all of LocationSectionElementWithIdAndName + object

MediaType

code
MediaTypeType
namerequired
string

A displayable (human readable) representation of the media type.

MediaTypeEnum

string enum book · eBook · audiobook

MediaTypeLiteral

string

MediaTypeType

any of MediaTypeEnum | MediaTypeLiteral

A code that (if set) can be used with the filter `plas.mediaTypes` to search on this media type.

PatronConsent

availablerequired
array of object

The array must only contain one consent of each type.

evaluatedrequired
PatronEvaluatedConsents

PatronConsentType

any of PatronConsentTypeEnum | PatronConsentTypeLiteral

PatronConsentTypeEnum

string enum loan_history

PatronConsentTypeLiteral

string

PatronEvaluatedConsent

givenrequired
boolean
typerequired
PatronConsentType
versionrequired
string

The version of the consent that the patron has made a choice for or against.

PatronEvaluatedConsents

array of PatronEvaluatedConsent

The array must only contain one consent of each type.

PatronFee

amountrequired
FeeAmount
createdTimerequired
FeeCreatedTime
currencyrequired
FeeCurrency
dueDate
FeeDueDate
idrequired
FeeId
items
array of FeeItem

The items this fee covers, if they are known.

payableStaterequired
FeePayableState
remainingAmount
FeeRemainingAmount
typerequired
FeeType

PatronList

idrequired
string

The ID of the list.

namerequired
string

The name of the list.

PatronListBaseItem

idrequired
string

The unique ID of the item in the list.

PatronListItem

one of PatronListItemWorkAndPublication

PatronListItemWorkAndPublication

all of PatronListBaseItem + object

PatronLoan

acquiredFrom
PatronLoanAcquiredFrom
createdTimerequired
LoanCreatedTime
dueDaterequired
LoanDueDate
idrequired
LoanId
itemIdrequired
LoanItemId
location
CheckOutOrInLocationWithoutNames
publicationIdrequired
LoanPublicationId
publicationMetadata
PublicationFallback
renewrequired
LoanRenewInfo

PatronLoanAcquiredFrom

one of PatronLoanAcquiredFromTypeLocalCirculation | PatronLoanAcquiredFromTypeInterlibraryLoan | PatronLoanAcquiredFromTypeUnknown

This tells from where (the material for) this loan was acquired. If this field are missing, the default value **local_circulation** should be assumed. * **local_circulation**: Meaning that this loan was acquired from the customers own inventory. * **interlibrary_loan**: Meaning that this loan was acquired as a interlibrary loan. * **unknown**: Meaning that this information is unknown.

PatronLoanAcquiredFromTypeInterlibraryLoan

typerequired
string enuminterlibrary_loan

PatronLoanAcquiredFromTypeLocalCirculation

typerequired
string enumlocal_circulation

PatronLoanAcquiredFromTypeUnknown

typerequired
string enumunknown

PatronLoanHistory

acquiredFrom
PatronLoanAcquiredFrom
addedToHistoryTimerequired
string (date-time)

The date and time when the loan was added to the patron loan history.

checkinTime
string (date-time)

The date and time the loan was checkin.

checkoutTime
LoanCreatedTime
dueDate
string (date)

The due date of the loan at the time of checkin.

idrequired
string

This is the loan history ID (not the loan ID).

itemId
LoanItemId
loanId
LoanId
manuallyAddedrequired
boolean

Was the loan added manually by the patron.

publicationIdrequired
LoanPublicationId
publicationMetadata
PublicationFallback

PatronReservation

createdTimerequired
ReservationCreatedTime
expirationDate
ReservationExpirationDate
fulfillmentBy
PatronReservationFulfillmentBy
idrequired
ReservationId
itemId
ReservationItemId
pickuprequired
object
publicationIdrequired
ReservationPublicationId
publicationMetadata
PublicationFallback
queueNumber
ReservationQueueNumber
staterequired
ReservationState

PatronReservationFulfillmentBy

one of PatronReservationFulfillmentByTypeLocalCirculation | PatronReservationFulfillmentByTypeInterlibraryLoan | PatronReservationFulfillmentByTypePurchase | PatronReservationFulfillmentByTypeUnknown

This tells from where the material that are expected to fulfill this reservation will be acquired from. If this field are missing, the default value **local_circulation** should be assumed. * **local_circulation**: (default) Meaning that this reservation will be fulfilling from the customers own inventory. * **interlibrary_loan**: Meaning that this reservation will be fulfilled as a interlibrary loan. * **purchase**: Meaning that reservation can not be fulfilled right away, but a request to purchase the material has been submitted. * **unknown**: Meaning that this information is unknown.

PatronReservationFulfillmentByTypeInterlibraryLoan

typerequired
string enuminterlibrary_loan

PatronReservationFulfillmentByTypeLocalCirculation

typerequired
string enumlocal_circulation

PatronReservationFulfillmentByTypePurchase

typerequired
string enumpurchase

PatronReservationFulfillmentByTypeUnknown

typerequired
string enumunknown

PickupLocation

The object tells a location where a reservation item can be picked up. The `sections` is for specifying the location more precisely. The branch name and section names are included in the response to make it easier to display the location. They are the same values as from the /locations endpoint.

branchIdrequired
string

The branch ID where a reservation should be picked up.

branchNamerequired
string

This is the name of the branch.

sections
array of LocationSectionElementWithIdNameAndType

This are specifying the location more precisely.

Publication

additionalIdentifiers
PublicationAdditionalIdentifiers
binding
Binding
contributors
PublicationContributors
creators
PublicationCreators
edition
Edition
extent
PublicationExtent
identifierrequired
PublicationIdentifier
images
PublicationImages
language
PublicationLanguage
mediaTypes
PublicationMediaTypes
publicationDate
Date

Date of publication.

publishers
array of PublisherAndPlaces

List of publishers and associated place(s) of publication.

titlesrequired
PublicationTitles
worksrequired
array of PublicationWork

PublicationAdditionalIdentifiers

array of AdditionalIdentifier

Other identifiers, like: ISBN, ISSN, ...

PublicationContributors

array of Contributor

The contributor(s) to the publication.

PublicationCreators

array of Contributor

The creator(s) of the publication.

PublicationExtent

array of Extent

Together all the Extents in the array describes the total extent of the publication.

PublicationFallback

Publication

This metadata is only intended as fallback data, for when the provider is not able to serve the metadata through the GET /publication endpoint. This can for some provider be the case when working with e.g. interlibrary loans.

PublicationIdentifier

string

Publication identifier. This is searchable through the GET /publication endpoint.

PublicationImages

array of ImagePublication

Images to use with the publication.

PublicationLanguage

array of Language

This is the language(s) of the this publication. If the publication uses multi languages this will also contain them.

PublicationMediaTypes

array of MediaType

PublicationTitles

array of Title

Title of the publication.

PublicationWork

identifierrequired
PublicationWorkIdentifier
relation
PublicationWorkRelation

PublicationWorkIdentifier

string

Work identifier of this publication. This is searchable through the GET /work endpoint.

PublicationWorkRelation

string enum

Describes the publications relation to a work. - contains: The publication contains this work, meaning the work is part of the publication. - embodies: The publication embodies this work, meaning the publication is the entire work.

contains · embodies

Publisher

id
string

The unique identifier of the publisher. It can be used to search for the other entries by the publisher

namerequired
string

The publisher's name.

PublisherAndPlaces

places
array of PublisherPlace

Place of publication. Usually one place, but can be multiple.

publisherrequired
Publisher

PublisherPlace

placerequired
string

ReservationCreatedTime

string (date-time)

The date and time the reservation was created.

ReservationExpirationDate

string (date)

The date when the reservation expires. If this is missing, the value is unknown.

ReservationId

string

This is the reservation ID.

ReservationItemId

string

This is the item identifier that actually fulfills the reservation. This can often only be set when the reservation is ready for pickup. If the reservation is on item level, it can be set earlier.

ReservationPickupExpirationDate

string (date)

The date for the last chance to pick up the reservation. If this is missing, the value is unknown.

ReservationPickupNote

string

This is the note that is used to tell the patron where to get the reservation. E.g. - a shelf number, e.g. "Shelf 9". - an instruction, e.g. "Front desk" - an identifier, e.g. "10/114"

ReservationPublicationId

string

This is the publication ID of the reservation. If this is empty, the publication is unknown.

ReservationQueueNumber

integer

The queue number tells what number in the queue the patron is. If this is missing, it represents that the queue number is unknown.

ReservationState

string enum

This represents where in the acquiring process this reservation is.

ready_for_pickup · in_queue · postponed

Title

one of TitleTypePreferred | TitleTypeVariant | TitleTypeParallel | TitleTypeOriginal

TitleTypeOriginal

all of BasicTitle + object

TitleTypeParallel

all of BasicTitle + object

TitleTypePreferred

all of BasicTitle + object

TitleTypeVariant

all of BasicTitle + object

Version

string

Open Library API version.