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.

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

AddItemToPatronListRequestBody

PatronListItem

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

AddLoanToPatronLoanHistoryRequestBody

acquiredFrom
PatronLoanAcquiredFrom
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.

itemId
LoanItemId
loanId
LoanId
manuallyAddedrequired
boolean

Was the loan added manually by the patron.

publicationIdrequired
LoanPublicationId
publicationMetadata
PublicationFallback

Address

cityrequired
string

This field refers to the city, town, or locality where the address is located.

country
string

This field specifies the name of the country where the address is located.

postalCode
string

This field represents the numeric or alphanumeric code assigned to a specific area for efficient mail sorting and delivery.

streetrequired
string

This field represents the name of the road, street, or thoroughfare where the address is located.
The field should also contain the building number assigned to a building at the location, and the field should also contain identifiers such as apartment numbers, suite numbers, or floor numbers.

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

AllDayScheduling

All-day event scheduling information

endDaterequired
string (date)

End date in RFC3339 full-date format.

startDaterequired
string (date)

Start date in RFC3339 full-date format.

typerequired
string enumall_day

Type of scheduling for all-day events

Amount

integer

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

Audience

one of AudienceTypeLiteral | AudienceTypeAgeRange | AudienceTypeAgeGroup

AudienceTypeAgeGroup

coderequired
AudienceTypeAgeGroupCode
name
string

A displayable (human readable) audience group name.

typerequired
string enumageGroup

AudienceTypeAgeGroupCode

any of AudienceTypeAgeGroupCodeEnum | AudienceTypeAgeGroupCodeLiteral

A code that (if set) can be used with the filter `plas.audience.ageGroup` to search on this age group.

AudienceTypeAgeGroupCodeEnum

string enum child · youngAdult · adult

AudienceTypeAgeGroupCodeLiteral

string

AudienceTypeAgeRange

*from* and *to* isn't required, but a least one of them should be set.

code
string

A code that (if set) can be used with the filter plas.audience.ageRange to search on this age range.
The formatting is "from:to", "form:*" or "*:to" (replace the form and to value)

from
integer
to
integer
typerequired
string enumageRange

AudienceTypeLiteral

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

code
string

A code that (if set) can be used with the filter plas.audience.literal to search on this audience literal.

typerequired
string enumliteral
valuerequired
string

A displayable (human readable) audience literal.

AuthenticationClientAccessToken

string

The access token string, as issued by the authorization server. It is strongly recommended that this token be a JWT so that it can be validated by a business partner, if e.g. the search API is delegated.

AuthenticationClientCredentialsRequestBody

all of OAuthClientIdAndSecret + object

AuthenticationClientExpiresIn

integer

The duration (in seconds) of time the access token is granted for.

AuthenticationClientResponseBody

access_tokenrequired
AuthenticationClientAccessToken
expires_inrequired
AuthenticationClientExpiresIn
token_typerequired
AuthenticationClientTokenType

AuthenticationClientTokenType

string enum

The type of the token.

Bearer

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.

BaseSuggestionAgent

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.

images
array of ImageAgent

Images of the agent.

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.

CallbackConsent

Decoded representation of a callback consent parameter, for use in the registration request body.

typerequired
PatronConsentType
versionrequired
string

The version of the consent, decoded from the callback consent parameter.

ChangePatronCredentialRequestBody

one of ChangePatronPasswordRequestBody | ChangePatronPinRequestBody

Which credential is being changed is told by `credential`, and the current and new values are named after that credential, so that a password and a pin code can never be confused for one another.

ChangePatronPasswordRequestBody

credentialrequired
string enumpassword
currentPasswordrequired
all of PatronPassword + unknown
newPasswordrequired
all of PatronPassword + unknown

ChangePatronPinRequestBody

credentialrequired
string enumpin
currentPinrequired
all of PatronPin + unknown
newPinrequired
all of PatronPin + unknown

CheckinCompleted

all of CheckinResponseBase + object

The item was checked in.

CheckinFailed

all of CheckinResponseBase + object

The item was not checked in, and sending the same checkin again right away will not change that.

CheckinFailureReason

any of CheckinFailureReasonEnum | CheckinFailureReasonLiteral

Why the item was not checked in. This is an open enum, so values other than the known ones are allowed. A vendor that does not know a value should treat it as `unknown` and show `message` to the patron.

CheckinFailureReasonEnum

string enum

The known reasons a checkin can fail: - `item_not_found` the item ID is not known to the provider. - `item_not_on_loan` the item is not on loan, so there is nothing to check in. - `item_belongs_to_other_library` the item cannot be received here, e.g. an interlibrary loan. - `unknown` the provider cannot say why, see `message`. An offline checkin can only fail with `item_not_found` or `item_not_on_loan`, see `checkin.offline`.

item_not_found · item_not_on_loan · item_belongs_to_other_library · unknown

CheckinFailureReasonLiteral

string

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.

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.

CheckinRequestBody

checkinrequired
object

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.

CheckinResponseBody

one of CheckinCompleted | CheckinFailed

The outcome of the checkin. The `status` field says which shape the rest of the body has: - `completed` the item was checked in, and `checkin` holds the result. - `failed` the item was not checked in, and `reason` says why.

CheckoutAcknowledgement

What the patron must accept before the checkout can be carried out. The `code` covers everything in `conditions`. One code, one round trip: the provider must put every outstanding item in `conditions` rather than asking for them one at a time, and must not answer a checkout carrying a valid code with another `needs_acknowledgement`. The `code` is single use, and the provider must reject it if what `conditions` described has changed since it was issued. `expiresAt` says how long it stays valid. A checkout carrying a code the provider does not accept, expired included, is answered `failed` with the reason `acknowledgement_rejected`, and the vendor starts over by sending the checkout without `acknowledgement`. There is no message field here. Anything the patron has to accept is an entry in `conditions`, including plain text, which is `CheckoutAcknowledgementTypeMessage`. A note about the checkout that the patron does not have to accept goes in `message` on the response instead.

coderequired
string

This code must be included in the checkout request in order for the checkout to be completed.

conditionsrequired
array of one of CheckoutAcknowledgementTypeFee | CheckoutAcknowledgementTypePreviouslyCheckedOut | CheckoutAcknowledgementTypeMessage

Everything the patron must accept, in one list. A vendor must show all of it to the patron, and then send the checkout again with the single code that covers the whole list.

A provider that needs the patron to accept something PLAS does not model puts it here as a message entry.

expiresAtrequired
string (date-time)

When the code stops being valid.

CheckoutAcknowledgementType

typerequired
string

This is the type of what is to be acknowledged.

CheckoutAcknowledgementTypeFee

all of CheckoutAcknowledgementType + object

A lending fee the patron must accept before the item is checked out.

CheckoutAcknowledgementTypeMessage

all of CheckoutAcknowledgementType + object

Something the patron must accept that PLAS does not model as its own type, e.g. a local lending condition. The text is shown to the patron as it is, so it must be in the language asked for in `ui_language`.

CheckoutAcknowledgementTypePreviouslyCheckedOut

all of CheckoutAcknowledgementType + object

The patron has had this title before and must accept borrowing it again.

CheckoutCompleted

all of CheckoutResponseBase + object

The item was checked out, and the loan exists.

CheckoutFailed

all of CheckoutResponseBase + object

The item was not checked out, and sending the same checkout again right away will not change that.

CheckoutFailureReason

any of CheckoutFailureReasonEnum | CheckoutFailureReasonLiteral

Why the item was not checked out. This is an open enum, so values other than the known ones are allowed. A vendor that does not know a value should treat it as `unknown` and show `message` to the patron.

CheckoutFailureReasonEnum

string enum

The known reasons a checkout can fail: - `item_not_found` the item ID is not known to the provider. - `item_not_lendable` the item exists, but is not for loan. - `item_on_loan` the item is already on loan to another patron. - `item_reserved_for_other_patron` the item is reserved for someone else. - `item_belongs_to_other_branch` the item cannot be lent out from this branch. - `patron_not_found` the patron ID is not known to the provider. Only for a `patron` sent as `patron_id`, never for one sent as `identifier`. - `patron_authentication_failed` the patron could not be authenticated from the `identifier` that was sent. It covers an identifier the provider does not know, a credential that does not match, and a missing credential where one is required, and the provider must not let a vendor tell those apart. - `patron_blocked` the patron may not borrow at the moment. - `patron_owes_fees` the patron owes more than the library allows. - `patron_loan_limit_reached` the patron already has as many loans as the library allows. - `patron_expired` the patron's library card has expired. - `acknowledgement_rejected` the provider did not accept `acknowledgement.code`: it is unknown, expired, already used, belongs to a different `checkout`, or what it covered has changed. Send the checkout again without `acknowledgement` to get the current conditions and a new code. - `unknown` the provider cannot say why, see `message`. An offline checkout can only fail on an identity that cannot be resolved, see `checkout.offline`. `patron_blocked`, `patron_owes_fees`, `patron_loan_limit_reached` and `patron_expired` all say that the patron is real, so they are only sent once the patron has been authenticated. A patron identified by `identifier` must not be able to learn whether that identifier belongs to a real patron. Three rules keep that true: - Everything that goes wrong while identifying them is `patron_authentication_failed`, whether the identifier is unknown, the credential is wrong, or a required credential was left out. - The answer must take the same time whether or not the identifier matched, since looking a patron up and then failing is slower than failing at once. - Rate limiting must work the same way for an identifier that matches and one that does not, so a 429 says nothing either.

item_not_found · item_not_lendable · item_on_loan · item_reserved_for_other_patron · item_belongs_to_other_branch · patron_not_found · patron_authentication_failed · patron_blocked · patron_owes_fees · patron_loan_limit_reached · patron_expired · acknowledgement_rejected · unknown

CheckoutFailureReasonLiteral

string

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.

CheckoutNeedsAcknowledgement

all of CheckoutResponseBase + object

The item was not checked out. The patron must accept everything in `acknowledgement.conditions` first, and the checkout must then be sent again carrying the single `acknowledgement.code` that covers it.

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.

CheckoutPatron

one of CheckoutPatronById | CheckoutPatronByIdentifier

Who the checkout is for, told by `identifiedBy`. Either the patron ID from a successful authentication, or the same identification that is sent to POST /patron/authentication and POST /patron/authentication/no-password. The second form exists because an offline checkout cannot use the first. When the patron is identified by `identifier`, the provider applies the same rules as the authentication endpoints, as configured in `patron.login` from the GET /configuration endpoint.

CheckoutPatronById

The patron as a patron ID, which the vendor has because the patron authenticated through POST /patron/authentication, POST /patron/authentication/no-password or an identity provider.

identifiedByrequired
string enumpatron_id
patronIdrequired
string

The patron ID from a successful authentication.

CheckoutPatronByIdentifier

The patron as the identifier and optional credential that POST /patron/authentication and POST /patron/authentication/no-password take. This is the form an offline checkout has to use, since it never got a patron ID.

identifiedByrequired
string enumidentifier
identifierrequired
PatronIdentifierTypeAndValue
password
PatronPassword

CheckoutRequestBody

acknowledgement
object

This is used to acknowledge the checkout, see CheckoutNeedsAcknowledgement.

Send checkout exactly as it was in the request that returned the code, transactionDateTime included. The code belongs to that exact checkout. If anything in checkout is different, the provider answers failed with the reason acknowledgement_rejected.

checkoutrequired
object

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.

CheckoutResponseBody

one of CheckoutCompleted | CheckoutNeedsAcknowledgement | CheckoutFailed

The outcome of the checkout. The `status` field says which shape the rest of the body has: - `completed` the item was checked out, and `checkout` holds the resulting loan. - `needs_acknowledgement` the item was **not** checked out. `acknowledgement` says what the patron must accept first, and the same checkout sent again with `acknowledgement.code` completes it. - `failed` the item was not checked out, and `reason` says why.

Classification

one of ClassificationTypeDewey | ClassificationTypeDK5

ClassificationTypeDewey

name
string

A displayable (human readable) value representation of the dewey number.

numberrequired
string

The value of the dewey number.

typerequired
string enumdewey

ClassificationTypeDK5

name
string

A displayable (human readable) value representation of the dewey number.

numberrequired
string

The value of the dk5 number.

typerequired
string enumdk5

ConfigurationCirculation

This tells whether the provider supports checking items out and in, and whether it accepts the two of them being carried out while the vendor was offline. Nothing here is assumed. An absent `checkout` or `checkin` means the provider does not support that endpoint, exactly as `isEnabled` set to false does, and an absent `offline` means it does not accept an offline one. The one exception is `securityTags`, where absent means the library uses them, since that is what every machine does today. | `circulation` | What a vendor may do | | --- | --- | | absent | Neither check out nor check in | | `{}` | Neither check out nor check in | | `{"checkout":{"isEnabled":true},"checkin":{"isEnabled":true}}` | Both, but only while the provider can be reached | | `{"checkout":{"isEnabled":true,"offline":{"isAllowed":true}},"checkin":{"isEnabled":true}}` | Offline checkout, no offline checkin, and no loan period to work a due date out from | | `{"checkout":{"isEnabled":true,"offline":{"isAllowed":true,"defaultLoanPeriodDays":28}},"checkin":{"isEnabled":true,"offline":{"isAllowed":true}}}` | Everything |

checkin
object

Whether the provider supports POST /checkin/{itemId}. If this field is missing, it does not.

checkout
object

Whether the provider supports POST /checkout/{itemId}. If this field is missing, it does not.

securityTags
object

Whether the library uses the security tags in its items, the magnetic strip or RFID chip that makes the gate at the door sound when an item that is not checked out passes through.

This is one decision for the whole library, which is why it is here and not in each checkout or checkin answer. Some libraries never switch the alarm on, or have no gate, and do not want tags armed.

If this field is missing, the library uses security tags.

ConfigurationContentApi

delegated
object

ConfigurationContentResponseBody

uiLanguages
object

This contains the ui language settings.

All ui language codes should be on this list https://www.loc.gov/marc/languages/

ConfigurationContentWithApi

all of object + ConfigurationContentResponseBody

ConfigurationHolding

periodical
ConfigurationHoldingPeriodical

ConfigurationHoldingPeriodical

groupOrdering
array of HoldingPeriodicalGroupType

The default ordering of periodical group types is year, volume and number, or level1, ..., level7. It is strongly discouraged to ever mix the named types and the level* types, but if for some reason another group type order is needed, groupOrdering can be used to tell the vendor the ordering of periodicals.

ConfigurationPatron

How the provider handles patrons: how they log in, register and delete their account, what they can do with their credentials and loan history, and which patron fields the vendor can show and edit.

credentials
object

This tells what a patron can do with the credentials they use to authenticate.

Not all providers have both a password and a pin code, and a provider that has one may still not let the patron change it. If this is missing, it is unknown, and the vendor should offer neither changing nor resetting a credential.

deletion
object
fields
array of ConfigurationPatronField

This contributes with further information about some of the patron fields, like if they are updatable or not, how they are constructed and their limitations.

The array should at most contain one element of each type.

loanHistory
object
login
object
registration
object

ConfigurationPatronField

one of ConfigurationPatronFieldEmails | ConfigurationPatronFieldPhoneNumbers | ConfigurationPatronFieldPickupLocation

ConfigurationPatronFieldEmails

fieldrequired
string enumemails
maxNumberOfEmailAddresses
integer

This tells the maximum number of email addresses that a patron can have, and hence this is also the maximum numbers of email addresses there can be send in a update patron information request.

If this value is missing, there is no limits on the number of emails addresses, this is not recommended.

verification
string enumno_verification · verify_by_email
  • no_verification => No verification
  • verify_by_email => An email will be sent by the provider to verify the email

ConfigurationPatronFieldPhoneNumbers

fieldrequired
string enumphoneNumbers
landline
object
mobile
object

ConfigurationPatronFieldPickupLocation

fieldrequired
string enumpickupLocation
form
string enumbranch_id_and_sections · only_branch_id

This is the form of the pickup location, i.e. which parts/fields of the pickup location that are in use.

If this is missing 'branch_id_and_sections' is this default.

ConfigurationPatronIdentityProviderType

string enum

The identity provider type, found in GET /configuration.

norway_id_portal · norway_nl_oidc · norway_feide_oidc · denmark_mit_id · denmark_dbc_access_platform

ConfigurationPayment

initialize
object
methods
array of ConfigurationPaymentMethod

This is a list of the payment methods that the vendor supports.

If this is missing, there are no payment methods available.

partial
boolean

If this is true, the provider allows partial payments. Default is false.

ConfigurationPaymentMethod

type
ConfigurationPaymentMethodType

ConfigurationPaymentMethodType

string enum

This represents the payment method type.

mobile_pay · vipps ·

ConfigurationResponseBody

circulation
ConfigurationCirculation

What the provider supports on POST /checkout/{itemId} and POST /checkin/{itemId}.

If this field is missing, the provider supports neither endpoint. A vendor must find isEnabled set to true here before it checks anything out or in.

content
ConfigurationContentWithApi
events
object

events contain configuration data for events in the LMS.
This covers notifications sent to the user and consent changes.

holding
ConfigurationHolding
patron
ConfigurationPatron
payment
ConfigurationPayment

If this field is missing, the vendor does not support payments.

search
ConfigurationSearchWithApi
versionrequired
string

This contains the version of the Open Library API.

ConfigurationSearchApi

delegated
object

ConfigurationSearchExpression

clustering
array of array of ExpressionClusteringField

This is the providers preferred clustering of publications.
This clustering can be used to group publications together, emulating an expression level.

ConfigurationSearchResponseBody

expression
ConfigurationSearchExpression
suggestions
ConfigurationSearchSuggestions
uiLanguages
object

This contains the ui language settings.

All ui language codes should be on this list https://www.loc.gov/marc/languages/

workSearch
object

ConfigurationSearchSuggestions

available
array of ConfigurationSearchSuggestionsFilterAvailable

This tells which filters are available for the /suggestions endpoint.

disabled
boolean

This tells the Vendor if the /suggestions endpoint is disabled or not. (Default false).

If this is set to true, the Vendor should not make request to the /suggestions endpoint.

ConfigurationSearchSuggestionsFilterAvailable

description
string

This is a description of what type of filter this is.

typerequired
SuggestionsFilterType

ConfigurationSearchWithApi

all of object + ConfigurationSearchResponseBody

ConfigurationWorkSearchFacet

available
array of ConfigurationWorkSearchFacetAvailable

ConfigurationWorkSearchFacetAvailable

description
string

This is a description of what type of facet this is.

typerequired
SearchFacetType

ConfigurationWorkSearchFilter

available
array of ConfigurationWorkSearchFilterAvailable

ConfigurationWorkSearchFilterAvailable

description
string

This is a description of what type of filter this is.

typerequired
SearchFilterType

ConfigurationWorkSearchSorting

available
array of ConfigurationWorkSearchSortingAvailable

ConfigurationWorkSearchSortingAvailable

This is a description of a sorting type.

description
string

This is a description of what type of sorting this is.

typerequired
SearchSortingType

ContactInfo

Contact information for registration and tickets. At least one of the fields must be provided: `url`, `email`, `phone`, or `info`.

email
string (email)

Email for registration/tickets

info
string

Instructions on where to register/buy tickets

phone
string

Phone number with country prefix for registration/tickets

url
string (uri)

URL to registration/ticket page

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.

CreatePatronListRequestBody

PatronList

CreatePatronReservationRequestBody

pickupLocationrequired
PickupLocationWithoutNames
reserveIdrequired
ReserveId

CreatePatronReservationResponseBody

reservationrequired
PatronReservation

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

DeletePatronByCodeAndCodeVerifierRequestBody

coderequired
string

The code obtained from a SSO patron deletion.

code_verifierrequired
string

The code verifier used to create the code challenge used to obtain the code.

identity_providerrequired
ConfigurationPatronIdentityProviderType

DeletePatronById

The patron as a patron ID, and the password that goes with it.

identifiedByrequired
string enumpatron_id
passwordrequired
PatronPassword
patronIdrequired
string

The patron ID.

DeletePatronByIdentifier

The patron as one of the identifier types in `patron.deletion.identifierTypes` from GET /configuration, and the password that goes with it.

identifiedByrequired
string enumidentifier
identifierrequired
PatronIdentifierTypeAndValue
passwordrequired
PatronPassword

DeletePatronIdentification

one of DeletePatronById | DeletePatronByIdentifier

Which patron is being deleted, told by `identifiedBy`. This is for a patron who is not logged in through an identity provider, and a password is always required, since it is the only proof in the request that the caller is the patron.

DeletePatronRequestBody

acknowledgement
object

This is used to acknowledge the deletion of the patron.

patronrequired
DeletePatronIdentification

DeletePatronResponseBody

message
string

Message to the patron.

statusrequired
string enumwaiting_for_acknowledgement · pending · in_progress · done · deletion_error

This tells the state of the deletion of the patron.

The status can be:

  • waiting_for_acknowledgement, to begin the deleting process, call the deletion endpoint with the acknowledgement code.
  • pending, the deletion request is acknowledged, and we are waiting on the process to begin.
  • in_process, the deletion process is in progress.
  • done, the deletion process is done (meaning the patronId does not exist).
  • deletion_error, the deletion process failed.
  • unknown, the deletion process is in an unknown state.

Description

one of DescriptionTypeLiteral

DescriptionTypeLiteral

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

typerequired
string enumliteral
valuerequired
string

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 - 10001: Endpoint disabled - 71001: Consent has not been given for 'loan history' - 100001: Wrong patron identifier, password or pin code - 100011: New password or pin code rejected, because it does not meet the provider's requirements - 100013: The provider does not let the patron change the given credential - 100023: Patron ID not found - 100101: Patron could not be deleted, because the patron has something unresolved issue with the library (this could be anything from a loan to a fee, and so on ...) - 100211: maxNumberOfEmailAddresses exceeded - 100215: maxNumberOfPhoneNumbers exceeded - 100221: Pickup location cannot contain sections - 100411: Updating patron consent failed - 100611: Updating patron notification settings failed - 101001: Reservation ID not found - 101047: Branch ID cannot be used as pick up branch - 101053: Section ID cannot be used as pick up branch - 102001: Loan ID not found - 102301: Loan not renewable, because it is an interlibrary loan - 102311: Loan not renewable, because it is reserved - 110001: Branch ID not found - 200001: Publication ID not found - 200077: ui language not supported - 200101: missing required query parameter - 200103: invalid/unsupported query parameter value - 300001: Initialize payment should not be used - 300005: Initialize payment should be used - 300009: Payment method not supported - 300013: Payment method does not support partial payment - 300301: Finalized payment can not de changed - 300311: FinalizePaymentRequest.fees contains fees with the same ID - 310001: Loan history ID not found - 310011: Loan history ID already exists - 330001: List ID not found - 330011: List ID already exists - 330101: List item ID not found - 330111: List item ID already exists

500 · 600 · 10001 · 71001 · 100001 · 100011 · 100013 · 100023 · 100101 · 100211 · 100215 · 100221 · 100411 · 100611 · 101001 · 101047 · 101053 · 102001 · 102301 · 102311 · 110001 · 200001 · 200077 · 200101 · 200103 · 300001 · 300005 · 300009 · 300013 · 300301 · 300311 · 310001 · 310011 · 330001 · 330011 · 330101 · 330111

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.

Event

Complete event information. Only the field `description` can contain formatting.

admissionrequired
EventAdmission
audiences
array of EventAudience

Target audiences for the event

branchrequired
EventBranch
categories
array of EventCategory

Event categories

descriptionrequired
string

A detailed description of the event. Is in limited html format. Supports following html tags - b - i - p - a - ul - ol - li

idrequired
string

Unique identifier for the event.

If multi events have the same 'id' but different language, then they are the same event.

images
array of ImageTypeContent
language
string

The language of this events content (https://www.loc.gov/marc/languages/).

location
EventLocation
organizers
array of EventOrganizer

Event organizers

promoted
Promoted
relatedEvents
RelatedEvents
relevantWorks
RelevantWorks
schedulingrequired
EventScheduling
series
EventSeries
staterequired
EventState
teaser
string

A short, engaging text designed to spark interest in the event

titlerequired
string

Event title

updateTimerequired
string (date-time)

When was the event last update (or create) in RFC3339 date-time format.

url
string (uri)

URL to the event's webpage

EventAdmission

one of OpenAdmission | TicketAdmission | RegistrationAdmission

Admission and registration information for an event

EventAudience

Information about an audience target for an event

idrequired
string

Unique identifier for the audience target

labelrequired
string

Localized label for the audience target

EventBranch

Branch information, this is the main branch associated with the event.

branchIdrequired
string

The branch ID (should exist in GET /locations)

branchNamerequired
string

Name of the branch

EventCategory

Category classification for events

idrequired
string

Category identifier

labelrequired
string

Localized category label

EventLocation

one of EventLocationAtBranch | EventLocationExternal

The location where the event takes place

EventLocationAtBranch

Location information for an event at the branch location.

locationrequired
string

The internal location used for the event

typerequired
string enumat_branch

EventLocationExternal

Location information for an external venue.

address
Address

The physical address of the event location

namerequired
string

External location name

typerequired
string enumexternal

EventOrganizer

Information about an external event organizer

id
string

Unique identifier for the external organizer

namerequired
string

Name of the external organizer

EventPriceCategory

amountrequired
integer

The price for a ticket. 0 if free.

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

currencyrequired
string

The currency of the price. ISO 4217 code.

label
string

A label for the price, this can been used e.g. as prefix for the price type. E.g. "Adults" or "Children"

EventPricing

one of EventPricingSimple | EventPricingPriceCategories

Pricing information for an event

EventPricingPriceCategories

categoriesrequired
array of EventPriceCategory

Array of price categories for an event

typerequired
string enumprice_categories

EventPricingSimple

textrequired
string

Simple pricing text, e.g. "0 - 100 DKK"

typerequired
string enumsimple · value

EventScheduling

one of AllDayScheduling | TimeSpanScheduling

EventSeries

Information about an event series that this event belongs to

eventIds
array of string

An array of event ids within the series. This list is restricted to events that fall within the date range specified by the API request.
It does not include the event id of the current event itself.

seriesIdrequired
string

Identifier of the event-series. This searchId can be used with GET /content/event/series/{seriesId}.

EventState

string enum

The state of the event. There are three event state type - scheduled, Meaning that the event is scheduled and expected to be carried out as planned (See scheduling). - cancelled, Meaning that the event is cancelled. - finished, Meaning that the event is finished.

scheduled · cancelled · finished

ExpressionClusteringField

one of ExpressionClusteringFieldNamedCreators | ExpressionClusteringFieldNamedContributors | ExpressionClusteringFieldNamedCreatorsAndContributors | ExpressionClusteringFieldNamedMediaTypes | ExpressionClusteringFieldNamedLanguage

ExpressionClusteringFieldName

object

This is used to tell the providers preferred clustering of publications.

ExpressionClusteringFieldNamedContributors

all of ExpressionClusteringFieldName + object

ExpressionClusteringFieldNamedCreators

all of ExpressionClusteringFieldName + object

ExpressionClusteringFieldNamedCreatorsAndContributors

all of ExpressionClusteringFieldName + object

ExpressionClusteringFieldNamedLanguage

all of ExpressionClusteringFieldName + object

ExpressionClusteringFieldNamedMediaTypes

all of ExpressionClusteringFieldName + 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, ...)

Facet

name
string

A displayable (human readable) facet name.

termsrequired
array of FacetTerm
typerequired
SearchFacetType

FacetTerm

namerequired
string

A displayable (human readable) representation of facet term name.

occurrences
integer

The number of occurrences in the search result, based on works.

valuerequired
string

The facet terms searchable value.

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

FieldItemId

string

The item ID is the unique item identifier. This is the identifier needed to make a checkout and/or checkin. So if the LMS has an internal identifier for an item, but uses an external identifier for checkout and checkin, the itemId should be the value of the external identifier. In some LMSs, this is called the barcode.

FinalizeFeesResponseBody

Contains a mapping from each (unique) fee ID (from the request) to a response detailing how the finalize operation went for that fee.

responsesrequired
unknown

A mapping from each fee ID (from the request) to a FinalizeFee.

FinalizeFeeStatus

string enum

The results of a payment finalize operation. If any other value than the following is returned, it can be assumed that the operation was unsuccessful (i.e. it was not finalized by the current request). * **registered**: The fee was successfully finalized * **registered_by_different_payment_id**: The fee had already been finalized by a different payment ID * **fee_not_payable**: The fee was not payable, and therefore could not be finalized * **not_allowed**: The client is not authorized to finalize this fee

registered · registered_by_different_payment_id · fee_not_payable · not_allowed

FinalizePaymentFee

amount
FeeAmount

This should only be used with a partial enabled payment methods. If the partial payment is not enabled, but this field is set, the error code 300013 is returned.

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

idrequired
FeeId

FinalizePaymentRequestBody

feesrequired
array of FinalizePaymentFee

The list of fees that should be finalized.
This array must not contain any fees with the same ID. In that case, an error will be returned.

methodrequired
ConfigurationPaymentMethodType
orderId
string

Order ID from initialize payment.

If in the configuration, payment->initialize->state is use_initialize, this field is required.

paymentIdrequired
string

Payment ID from the payment gateway.

Form

id
string

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

labelrequired
string

A displayable (human readable) value of the form.

Genre

id
string

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

labelrequired
string

A displayable (human readable) value of the genre.

GetAgentsResponseBody

agentsrequired
unknown

GetContentEventsInSeriesResponseBody

eventsrequired
array of Event
totalrequired
integer

The total number of events in the series.

GetContentEventsResponseBody

endOfResultsrequired
boolean

If this is false, we haven't reached the end of the search result yet, if it's false we have, and if it's missing or null we don't know.

eventsrequired
array of Event
total
integer

The total number of events in the whole period.

GetHoldingResponseBody

holdingsrequired
unknown

GetPublicationsResponseBody

publicationsrequired
unknown

GetSuggestionsResponseBody

suggestionsrequired
array of Suggestion

GetVersionResponseBody

versionrequired
Version

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

GetWorksResponseBody

worksrequired
unknown

Holding

locationsrequired
array of HoldingLocation
numberOfReservations
integer

This tells how many reservations there exist on the publication (or periodical).

If this is unknown, the field is not set.

periodical
HoldingPeriodical
publicationIdrequired
string

The publication ID

reserveIdrequired
string

This is the Reserve ID to be used for reserving this publication (or periodical). If this is empty, the publication (or periodical) is not reservable.
If the holding represents a periodical, this reserve ID is still all that is required to reserve that issue.

HoldingItem

availableStaterequired
string enumavailable · not_available

This tells if the item is available at the shelf.

itemIdrequired
FieldItemId
lendingDays
integer

If this field is set, it should be assumed that the lending time for this item is different from other "normal" items. This field tells how many days this item can be borrowed for.

Sometimes a publication is available and reservable, but numberOfReservations is not zero. This can be because some items are not reservable, but are loanable. This would often be the case if an item has a shorter lending period than usual.

loanableStaterequired
string enumloanable · not_for_loan

This tells if the item is loanable.

pickupLocations
array of PickupLocation

This is a list of locations where a reservation on this item can be made to. This field (if set) takes precedence over all other pickup locations information.

reserveId
string

The reserve ID for reserving precisely this item. If this is empty or missing, the item is not reservable.

HoldingLocation

The field location uniquely defines a location on a branch (library), and items tells which items are associated with that location. In a holding response for a given publicationId, the unique combination of a location's branch and section elements should at most appear once. E.g. a combination of a location with 2 section items of types "floor" and "department" (in that order of relevance) and a shelfmark, would give the following path to the items: branch > section (floor) > section (department) > shelfmark.

itemsrequired
array of HoldingItem
locationrequired
Location
pickupLocations
array of PickupLocation

This is a list of locations where a reservation be made to. This field (if set) takes precedence over the pickup locations information from in /locations and /patron/{patronId}/configuration.

shelfmarkrequired
string

HoldingPeriodical

A Periodical is e.g. a magazine or a newspaper published at regular intervals. If the holding does not represent a periodical, then this field is not set.

grouping
array of HoldingPeriodicalGroup

The grouping is the natural division of periodicals based on of e.g. when a periodical is published and/or which number it has.
An example could be the periodical "Sky and telescope", let us say there exist 3 publishings for this periodical. Two in 2022, and one in 2023.
The two from 2022 could be the volumes "March" and "July", and the one from 2023 could be "February".
This will give us 2022 -> (March, July), 2023 -> February, and each can be expressed with its own grouping like this: 1. [{"type": "year", "value": "2022"}, {"type": "volume", "value": "March"}] 2. [{"type": "year", "value": "2022"}, {"type": "volume", "value": "July"}] 3. [{"type": "year", "value": "2023"}, {"type": "volume", "value": "February"}]

This makes it possible for the vendor to visualize all publishings of the periodical.

It is recommended that only the types year, volume and number are used, but if it is not enough, use the types level1, ..., level7.

The default grouping order is documented in [GET /configuration](#/Configuration/GetConfiguration), and if another ordering is needed, it can be specified there.

name
string

The issue's name for display.

HoldingPeriodicalGroup

typerequired
HoldingPeriodicalGroupType
valuerequired
string

HoldingPeriodicalGroupType

string enum

Is used to visually group and name the value.

year · volume · number · level1 · level2 · level3 · level4 · level5 · level6 · level7

Holdings

array of Holding

ImageAgent

one of ImageTypeAgent

ImageAlt

Alternative for accessibility

textrequired
string

Alternative text for accessibility

ImageCredit

Image credit information

textrequired
string

ImageFocalPoint

one of ImageFocalPointHotspot

ImageFocalPointHotspot

Describes the point of the most important part of the image

typerequired
string enumhotspot
xrequired
number

Horizontal position of hotspot (0-1)

yrequired
number

Vertical position of hotspot (0-1)

ImageOriginal

all of ImageUrl + object

The `url' is the un-cropped version of the image

ImagePublication

one of ImageTypeFrontCover | ImageTypeBackCover

ImageTypeAgent

all of ImageUrl + object

ImageTypeBackCover

all of ImageUrl + object

ImageTypeContent

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.

InitializePaymentRequestBody

initializerequired
object

InitializePaymentResponseBody

orderrequired
object

IsPatronRegistrationPossibleRequestBody

In this the password is optional, because it is not all possible registries that need it. A registry is where we check if a patron can be registered.

identifierrequired
PatronIdentifierTypeAndValue
password
PatronPassword

IsPatronRegistrationPossibleResponseBody

registriesrequired
array of object

Any entry in this array is a possible way a new patron be registered through, based on the provided identifier.

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

Location

The branch name and the 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
branchNamerequired
string
pathrequired
array of LocationSectionElementWithIdNameAndType

This contains location section elements, sorted in the same order as LocationsResponse->sections in /locations. At most one of each location section type may be present in this array, but it is not a requirement that all types are present - there should only be the needed types.

All section elements that can appear here, should be defined as an element of one of the sections in LocationsResponse->sections from /locations.

LocationBranch

coordinates
object
externals
LocationBranchExternals
idrequired
string

This is the internal ID of the library branch, used in e.g. the HoldingLocation->location object.

namerequired
string

Displayable name of the library branch.

pickup
object
tags
array of string

Can be used to add a simple custom attribute to a branch.
It is not advisable to use this, unless absolutely necessary.
There are no default tag values, and thus other vendors cannot be compatible by default, based on an Open Library API implementation.
Instead, before using, try to reach out to Open Library API with a description of the problem to be solved.

LocationBranchExternals

identifiers
array of object

This is used to inform about external identifiers, like e.g. an ISIL code.

LocationSection

All section types and elements defined here could appear in a holding location.

elementsrequired
array of LocationSectionElementWithIdNameAndParentId
typerequired
string

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

LocationSectionElementWithIdAndType

all of LocationSectionElementWithId + object

LocationSectionElementWithIdNameAndParentId

all of LocationSectionElementWithIdAndName + object

LocationSectionElementWithIdNameAndType

all of LocationSectionElementWithIdAndName + object

LocationsResponseBody

branchesrequired
array of LocationBranch
mainBranch
object
pickupLocations
array of PickupLocation

Default pickup locations provided by the LMS. These can be customized at more granular levels:

  • Item Level: Defined within the /holdings endpoint (locations->items->pickupLocations). This has the highest priority.
  • Publication Level: Defined within the /holdings endpoint (locations->pickupLocations).
  • Patron Level: Defined via the /patron/{patronId}/configuration endpoint.
  • LMS Level: Defined via the /locations (this) endpoint. This has the lowest priority.

These levels, if present, fully replaces any lower level pickup locations.

If no pickup locations are defined at any of these levels, reservations cannot be made.

sectionsrequired
array of LocationSection

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.

OAuthClientIdAndSecret

client_idrequired
string
client_secretrequired
string

OAuthToken

tokenrequired
string

The token that we want to revoke. This is always an access_token.

OpenAdmission

Open admission with no registration or tickets required

typerequired
string enumopen

Type of admission - open access

Patron

address
PatronAddress
emailsrequired
PatronEmails
fullNamerequired
PatronFullName

FullName is always provided, but givenName and surname are only specified if the data is organized in such a detailed manner.

givenName
PatronGivenName
identifiers
array of PatronIdentifierTypeAndValue
patronIdrequired
PatronId
permissions
array of object

This is a list of activities, locations, etc. that the patron is either allowed or blocked from accessing.

phoneNumbersrequired
PatronPhoneNumbers
pickupLocationrequired
PickupLocation

The object tells where a reservation item can be picked up.

This is the default pickup location for the patron.

reservation
PatronInfoReservation
surname
PatronSurname

PatronAddress

Address

PatronAuthenticationByCodeAndCodeVerifierRequestBody

coderequired
string

The code obtained from a SSO patron authentication.

code_verifierrequired
string

The code verifier use to create the code challenge use to obtained the code.

identity_providerrequired
ConfigurationPatronIdentityProviderType

PatronAuthenticationByCodeAndCodeVerifierResponseBody

patronrequired
Patron

PatronAuthenticationIdentityProviderResponseBody

urlrequired
string (uri)

PatronAuthenticationNoPasswordRequestBody

identifierrequired
PatronIdentifierTypeAndValue

PatronAuthenticationNoPasswordResponseBody

patronrequired
Patron

PatronAuthenticationRequestBody

identifierrequired
PatronIdentifierTypeAndValue
passwordrequired
PatronPassword

PatronAuthenticationResponseBody

patronrequired
Patron

PatronConfiguration

The patron configuration object tells the settings and restriction that are placed on the patron.

reservation
PatronConfigurationReservation

PatronConfigurationReservation

fee
PatronConfigurationReservationFee
limits
array of PatronConfigurationReservationLimit
pickupLocations
array of PickupLocation

This tells the locations the patron can change there default/main pickup location to. If pickupLocations is set (also if it is the empty array), it overwrites the pickup information from /locations. The pickupLocations from /holdings (if set) overwrites this information.

PatronConfigurationReservationFee

This tells that there are a default fee connected to the action of making a reservation.

amountrequired
Amount

This is the fee amount that the patron must accept when making a reservation.

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

chargedAtrequired
string enumreservation · checkout
currencyrequired
string

ISO 4217

PatronConfigurationReservationLimit

one of PatronConfigurationReservationLimitDaily | PatronConfigurationReservationLimitMax

PatronConfigurationReservationLimitDaily

This tells the daily limit of reservation the patron can make.

limitrequired
integer
typerequired
string enumdaily

PatronConfigurationReservationLimitMax

This tells the maximum number of concurrent reservations the patron have.

limitrequired
integer
typerequired
string enummax

PatronConfigurationResponseBody

configurationrequired
PatronConfiguration

PatronConsentResponseBody

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

PatronCredentialType

string enum

The kind of credential a patron uses. A credential here is the secret the patron knows. It is never the identifier: that is separate. - `password` a password. - `pin` a pin code. GET /configuration says which of these apply where: `patron.login.credentials` for what a patron can authenticate with, and `patron.credentials.changeable` and `patron.credentials.resettable` for what a patron can change or have reset.

password · pin

PatronDeletionIdentityProviderResponseBody

urlrequired
string (uri)

PatronEmail

all of PatronEmailWithoutVerified + object

PatronEmails

array of PatronEmail

The size of this array must not exceed (if specified) the ´maxNumberOfEmailAddresses´ value given in the configuration.

PatronEmailsWithoutVerified

array of PatronEmailWithoutVerified

The size of this array must not exceed (if specified) the ´maxNumberOfEmailAddresses´ value given in the configuration.

PatronEmailWithoutVerified

default
boolean

At most one email can de marked as default.

emailrequired
string

Patron email, following RFC 5322.

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

PatronFeeResponseBody

feesrequired
array of PatronFee

PatronFullName

string

Patron's full name.

PatronGivenName

string

Patron's given name.

PatronId

string

Unique patron identifier (unique for that customer).

PatronIdentifier

string

Identifier value. This information may be sensitive.

PatronIdentifierType

any of PatronIdentifierTypeEnum | PatronIdentifierTypeLiteral

A type identifier that tells which type of identifier is used. This is an open enum, so values other than the known ones are allowed. GET /configuration says which types the provider accepts for each flow, in `patron.login.identifierTypes`, `patron.registration.identifierTypes` and `patron.deletion.identifierTypes`.

PatronIdentifierTypeAndValue

This can be used to identify the user. The data contained in the object is often sensitive data. The field `type` is optional. If it is missing, the type of `value` is unknown. Which types the provider accepts depends on the flow, and GET /configuration says so per flow in `patron.login.identifierTypes`, `patron.registration.identifierTypes` and `patron.deletion.identifierTypes`.

type
PatronIdentifierType
valuerequired
PatronIdentifier

PatronIdentifierTypeEnum

string enum

The known patron identifier types. - `local` an identifier for one local library. - `email` an email address. - `phone` a phone number. Country specific: - `norway_national_library_card` the Norwegian national library card. - `norway_national_birth_number` the Norwegian "Fødselsnummer". - `denmark_cpr` the Danish CPR number.

local · email · phone · norway_national_library_card · norway_national_birth_number · denmark_cpr

PatronIdentifierTypeLiteral

string

PatronInfoReservation

postpone
object

This describes an interval (possibly an open interval, but only in one end) where the patron is not interested in reservations being fulfilled, e.g. while on vacation.

PatronInformationResponseBody

patronrequired
Patron

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

PatronListItems

array of PatronListItem

Items contained in the list.

PatronListItemWorkAndPublication

all of PatronListBaseItem + object

PatronListResponseBody

all of PatronList + object

PatronListsResponseBody

defaultrequired
string

The default patron list ID. If a vendor chooses to only use one patron list, this will be the recommended ID of that list.

If there exist no patron list with the default ID, the default list can be created.

listsrequired
array of PatronList

A list of patron lists.

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

PatronLoanHistoryResponseBody

loanHistoryrequired
array of PatronLoanHistory

PatronLoanResponseBody

loansrequired
array of PatronLoan

PatronNotificationCategory

string

This is used to suggest a way in which notifications could be visually grouped together.

PatronNotificationDeliveryChosen

PatronNotificationDeliveryMethods

This tells which delivery methods the patron has chosen

PatronNotificationDeliveryMethodEmail

methodrequired
string enumemail

PatronNotificationDeliveryMethodPostal

all of PatronAddress + object

PatronNotificationDeliveryMethods

array of one of PatronNotificationDeliveryMethodSMS | PatronNotificationDeliveryMethodEmail | PatronNotificationDeliveryMethodVendor | PatronNotificationDeliveryMethodPostal

PatronNotificationDeliveryMethodSMS

methodrequired
string enumsms

PatronNotificationDeliveryMethodVendor

The `vendor` delivery method is special compared to the other methods. Each vendor connected with the provider should have their own instance of this method for each patron, meaning that the patron could have multiple instances of this method, but only one for each vendor, and only the instance associated with that vendor should be shown to the vendor, and only that instance should be updatable by the vendor. If this delivery method is enabled, the provider sends the associated event to that vendor's event endpoint (if it is configured).

methodrequired
string enumvendor

PatronNotificationSetting

category
PatronNotificationCategory
deliveryrequired
object

This tells about delivery methods

name
string

Readable text

typerequired
PatronNotificationType

PatronNotificationSettings

array of PatronNotificationSetting

The array must only contain one notification setting of each type.

PatronNotificationSettingsResponseBody

notificationSettingsrequired
PatronNotificationSettings

PatronNotificationType

string

This identifies the type of notification. It is recommended to use the following notification types: - `checkout_receipt`, send a receipt when finished checking out items. - `checkin_receipt`, send a receipt when finished checking in items. - `reservation_ready_for_pickup`, send when a reservation is ready to be pickup by the patron. - `ready_reservation_expires_soon`, a reservation that is ready to be pickup by the patron, will expire soon. - `reservation_expires_soon`, a reservation (that is not ready to be pickup by the patron), will expire soon. - `reservation_reminder`, if it has been a long time since the reservation was placed, this notification can be sent to remind the patron. It could be that the patron is no longer interested in the reservation. - `loan_due_date_is_approaching`, the due date of a loan is approaching. - `fee_due_date_is_approaching`, the due date of a fee is approaching. The following notification types are also events, and if the `vendor` delivery method is chosen for any of these, and the vendor has configured an event receiver through /configuration/event/register/receiver, the event will be sent to the vendor. - `reservation_ready_for_pickup` - `ready_reservation_expires_soon` - `reservation_expires_soon` - `reservation_reminder` - `loan_due_date_is_approaching` - `fee_due_date_is_approaching`

PatronPassword

string

The credential for the identifier. In authentication, registration and deletion this field carries whichever credential the provider uses, so at a provider that uses pin codes the value is a pin code even though the field is named `password`. For authentication, `patron.login.credentials` in GET /configuration says which it is. In POST /patron/{patronId}/credential/change the value is always a password. That request body carries a pin code in `currentPin` and `newPin` instead.

PatronPhoneNumber

all of PatronPhoneNumberWithoutVerified + object

PatronPhoneNumbers

array of PatronPhoneNumber

The size of this array must not exceed (if specified) the ´maxNumberOfPhoneNumbers´ value given in the configuration.

PatronPhoneNumbersWithoutVerified

array of PatronPhoneNumberWithoutVerified

The size of this array must not exceed (if specified) the ´maxNumberOfPhoneNumbers´ value given in the configuration.

PatronPhoneNumberWithoutVerified

defaultrequired
boolean

At most one phone number can be marked as default.

numberrequired
string

The phone number, in ITU standard E.164 format.

typerequired
string enummobile · landline

This tells which type of phone the number is associated with

PatronPin

string

Pin code for identifier. PLAS does not state a format. The length and the character set are decided by the provider, and a pin code the provider will not accept is rejected with error code 100011.

PatronRegistrationByCodeAndCodeVerifierResponseBody

message
string

Message to the patron, with information about the registration process.

patronId
string

If status is 'done' this should be set, else the user needs to log in again.

statusrequired
string enumdone · in_progress · contact_the_library

This describes the state of the registration process.

PatronRegistrationIdentifierRequestBody

consents
array of CallbackConsent

It is the client's responsibility to ensure that the consent associated with this parameter is accepted by the patron before this request is made.

identifierrequired
PatronIdentifierTypeAndValue
passwordrequired
PatronPassword
pickupLocationrequired
PickupLocationWithoutNames
registry
string

If against GET /patron/registration/possible, it has been checked that a patron can be registered, the registry can be added here, else it is up to the provider to choose.

PatronRegistrationIdentifierResponseBody

message
string

Message to the patron, with information about the registration process.

patronId
string

If status is 'done' this should be set, else the user needs to log in again.

statusrequired
string enumdone · in_progress · contact_the_library

This describes the state of the registration process.

PatronRegistrationIdentityProviderResponseBody

message
string

Message to the patron, with information about the registration process.

patronId
string

If status is 'done' this should be set, else the user needs to log in again.

statusrequired
string enumdone · in_progress · contact_the_library

This describes the state of the registration process.

PatronRegistryType

any of PatronRegistryTypeEnum | PatronRegistryTypeLiteral

Identifies the registry which a new patron can be registered through. This is an open enum, so values other than the known ones are allowed. A registry is where the patron would be registered, and not the kind of identifier they gave, even where a registry and a PatronIdentifierType share a name.

PatronRegistryTypeEnum

string enum

The known registries. - `norway_national_library_card` the Norwegian national library card registry.

norway_national_library_card

PatronRegistryTypeLiteral

string

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

PatronReservationResponseBody

reservationsrequired
array of PatronReservation

PatronSurname

string

Patron surname.

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.

PickupLocationWithoutNames

The object tells a location where a reservation item can be pickup. The `section` is for specifying the location more exactly.

branchIdrequired
string

The branch ID where a reservation should be picked up.

sections
array of LocationSectionElementWithIdAndType

This are specifying the location more precisely.

PromotedType

any of PromotedTypeEnum | PromotedTypeLiteral

PromotedTypeEnum

string enum

Pre-defined promotion states that we can "switch" on.

promoted

PromotedTypeLiteral

string

Literal promotion states that are unknown beforehand.

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

QueryRelevantWorks

Relevant works specified as a query string

queryrequired
string

Query string to find relevant works

typerequired
string enumquery

Type of relevant works - query string

RegisterEventReceiverRequestBody

secretrequired
string

This cannot be empty. It should be randomly generated, and should be used to validate the Provider in the Vendor API.

urlrequired
string

The empty string will unregister an existing receiver for the vendor.

RegisterPatronByCodeAndCodeVerifierRequestBody

coderequired
string

The code obtained from a SSO patron registration.

code_verifierrequired
string

The code verifier used to create the code challenge used to obtain the code.

consents
array of CallbackConsent

Consents returned from the SSO callback (GET /callbacks/patron). It is the client's responsibility to ensure that the consent associated with this parameter is accepted by the patron before this request is made.

identity_providerrequired
ConfigurationPatronIdentityProviderType
pickupLocationrequired
PickupLocationWithoutNames

RegistrationAdmission

Registration-based admission with contact information

contactInforequired
ContactInfo
staterequired
TicketState

State of the registration

typerequired
string enumregistration

Type of admission - registration required

RelatedEvents

array of string

Related events

RelevantWorks

one of WorksRelevantWorks | QueryRelevantWorks

Books or other works relevant to the event

RenewPatronLoanFailure

If the renewal failed, status should be set to the reason for the failure.

statusrequired
string enumdenied · too_many_renewals · user_blocked · renewal_blocked_by_fees · reservation_blocked_renewal

There are many possible failure states a renewal attempt can have.

RenewPatronLoanResponseBody

one of RenewPatronLoanSuccess | RenewPatronLoanFailure

RenewPatronLoanSuccess

If the renewal went well, status should be set to `success`, and loan should be set to the renewed loan.

loanrequired
PatronLoan
statusrequired
string enumsuccess

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

ReserveId

string

This is the ID used to make a reservation.

ResetPatronCredentialRequestBody

credential
all of PatronCredentialType + unknown
emailrequired
string

The email address, following RFC 5322, that the reset link should be sent to.

This selects which of the patron's already registered email addresses to use. The provider must only send the reset link if this email address is already attached to the patron identified by identifier and verified there, and must never send to an address that is not. If it is not attached, or attached but not verified, nothing must be sent, and the response is unchanged.

identifierrequired
PatronIdentifierTypeAndValue

RevokeTokenRequestBody

all of OAuthClientIdAndSecret + OAuthToken

This is for revoking a token, when using OAuth grant_type *client_credentials*.

SearchAgentsResponseBody

resultsrequired
array of Agent
totalrequired
integer

The total number of results in the whole search result.

SearchFacetType

any of SearchFacetTypeEnum | SearchFacetTypeLiteral

Facet type, this is the value given to the search facet parameter. The SearchFacetType should always exists in SearchFilterType

SearchFacetTypeEnum

string enum plas.audience.literal · plas.audience.ageRange · plas.audience.ageGroup · plas.mediaTypes · plas.language · plas.subjects · plas.genres · plas.forms

SearchFacetTypeLiteral

string

SearchFilterType

any of SearchFilterTypeEnum | SearchFilterTypeLiteral

Filter type, this is the value given to the search `filter` parameter.

SearchFilterTypeEnum

string enum plas.audience.literal · plas.audience.ageRange · plas.audience.ageGroup · plas.mediaTypes · plas.language · plas.subjects · plas.genres · plas.forms

SearchFilterTypeLiteral

string

SearchResultEntry

This search entry, represents one entry in a search result. It's partial build with data from a work, with additional data from the works underlying publications.

workrequired
SearchResultEntryWork

SearchResultEntryPublication

identifierrequired
PublicationIdentifier
language
PublicationLanguage
mediaTypes
PublicationMediaTypes

SearchResultEntryWork

creationDate
Date
creators
WorkCreators
forms
WorkForms
identifierrequired
WorkIdentifier
images
array of ImagePublication

Images to use with the work.

publicationsrequired
array of SearchResultEntryPublication

This contain only the underlying publications from the work, that matches the search criteria.

titlesrequired
WorkTitles

SearchSortingType

any of SearchSortingTypeEnum | SearchSortingTypeLiteral

Sorting type, this is the value given to the search facet parameter. The default sorting is `plas.relevance.desc`.

SearchSortingTypeEnum

string enum plas.relevance.asc · plas.relevance.desc · plas.titles.asc · plas.titles.desc · plas.publicationDate.asc · plas.publicationDate.desc

SearchSortingTypeLiteral

string

SearchWorksResponseBody

endOfResultsrequired
boolean

If this is false, we haven't reached the end of the search result yet, if it's false we have, and if it's missing or null we don't know.

facets
array of Facet

This array contains the requested facets, and their terms. Each facet type should only appear once in the array.

resultsrequired
array of SearchResultEntry

It's important to be aware that, the result size doesn't always match the given page size, the result set can be both small and greater.

total
integer

The total number of results in the whole search result.

Subject

id
string

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

labelrequired
string

A displayable (human readable) value of the subject.

Suggestion

one of SuggestionTypeQuery | SuggestionTypeContributor | SuggestionTypeWork | SuggestionTypeSubject

SuggestionAgent

one of SuggestionAgentTypePerson | SuggestionAgentTypeCollective

SuggestionAgentTypeCollective

all of BaseSuggestionAgent + object

SuggestionAgentTypePerson

all of BaseSuggestionAgent + object

SuggestionParameterTypeEnum

string enum query · contributor · work · subject

SuggestionsFilterType

any of SuggestionsFilterTypeEnum | SuggestionsFilterTypeLiteral

Filter type, this is the value given to the suggestions `filter` parameter.

SuggestionsFilterTypeEnum

string enum plas.audience.literal · plas.audience.ageRange · plas.audience.ageGroup · plas.mediaTypes · plas.language · plas.subjects · plas.genres · plas.forms

SuggestionsFilterTypeLiteral

string

SuggestionTypeContributor

contributorrequired
object
typerequired
string enumcontributor

SuggestionTypeQuery

queryrequired
string
typerequired
string enumquery

SuggestionTypeSubject

subjectrequired
Subject
typerequired
string enumsubject

SuggestionTypeWork

typerequired
string enumwork
workrequired
object

TicketAdmission

Ticket-based admission with pricing and capacity

contactInforequired
ContactInfo
pricingrequired
EventPricing
staterequired
TicketState

State of the ticket sale

ticketCapacity
string

Total number of tickets which can be sold for the event. E.g. "100" or "unlimited"

typerequired
string enumticket

Type of admission - ticket required

TicketState

string enum

State of ticket sales or registration

ticket_sale_not_open · ticket_sale_open · almost_sold_out · sold_out

TimeSpanScheduling

Time-span event scheduling information

endTimerequired
string (date-time)

End time in RFC3339 date-time format.

startTimerequired
string (date-time)

Start time in RFC3339 date-time format.

typerequired
string enumtime_span

Type of scheduling for time-span events

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

UpdatePatronConsentRequestBody

consentsrequired
PatronEvaluatedConsents

UpdatePatronConsentResponseBody

availablerequired
array of object

The array must only contain one consent of each type.

evaluatedrequired
PatronEvaluatedConsents

UpdatePatronInformationRequestAcceptedResponseBody

ticketrequired
string

Can be used for debugging.

UpdatePatronInformationRequestBody

address
PatronAddress
emails
PatronEmailsWithoutVerified
phoneNumbers
PatronPhoneNumbersWithoutVerified
pickupLocation
PickupLocationWithoutNames
reservation
PatronInfoReservation

UpdatePatronInformationResponseBody

patronrequired
Patron

UpdatePatronListRequestBody

namerequired
string

The new name of the list.

UpdatePatronNotificationSetting

chosenrequired
PatronNotificationDeliveryChosen
typerequired
PatronNotificationType

UpdatePatronNotificationSettingsRequestBody

notificationSettingsrequired
array of UpdatePatronNotificationSetting

UpdatePatronNotificationSettingsResponseBody

notificationSettingsrequired
PatronNotificationSettings

UpdatePatronReservationRequestBody

pickupLocationrequired
PickupLocationWithoutNames

UpdatePatronReservationResponseBody

reservationrequired
PatronReservation

Version

string

Open Library API version.

Work

audience
WorkAudience
classification
WorkClassification
contributors
WorkContributors
creationDate
Date
creators
WorkCreators
description
WorkDescription
forms
WorkForms
genres
WorkGenres
identifierrequired
WorkIdentifier
images
WorkImages
language
WorkLanguage
publicationIds
WorkPublicationIds
subjects
WorkSubjects
titlesrequired
WorkTitles

WorkAudience

array of Audience

Intended audience, target audience or intellectual level of the work.

WorkClassification

array of Classification

Classification of the work.

WorkContributors

array of Contributor

The contributor(s) to the work.

WorkCreators

array of Contributor

The creator(s) of the work.

WorkDescription

array of Description

Help readers understand what the work is about and whether they might be interested in lending/reserving it.

WorkForms

array of Form

Form is a more specific type of metadata that describes the physical structure or organization of a work.

WorkGenres

array of Genre

Genre is a broad category of works that share similar characteristics, such as style, tone, or subject matter.

WorkIdentifier

string

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

WorkImages

array of ImagePublication

Images to use with the work.

WorkLanguage

array of Language

This is the original language of the work. If the original version of the work uses multi languages this will also contain them.

WorkPublicationIds

array of string

All publication identifiers from the works underlying publications. These are searchable through the GET /publication endpoint.

WorksRelevantWorks

Relevant works specified as an array of work IDs

typerequired
string enumworks

Type of relevant works - array of work ids

workIdsrequired
array of string

Array of works

WorkSubjects

array of Subject

Subject is a topic or theme that is covered in a work.

WorkTitles

array of Title

Title of the work.