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.

377 schemas · Generated from provider_v0_6_4.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.

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.

itemIdrequired
string

This is the item ID of the checked in item.

loanIdrequired
LoanId
patronId
string

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

publicationId
string

This is the publication ID of the checkin item.

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.

transactionDateTimerequired
string (date-time)

This is the registered time and date of the checkin.

CheckinRequestBody

checkinrequired
object

CheckinResponseBody

checkinrequired
CheckinField
completed
boolean

This tells if the checkin was completed or not. It is only true if the checkin was completed, else it is false.

message
CheckOutOrInMessage
requestIdrequired
string

This is a unique identifier for the checkout request. This will change for each request.

statusrequired
string enumcompleted · failed

This tells the status of the checkin.

The status are:

  • completed means that the checkin went well and was completed.
  • failed means that the checkin failed, and the item was not checked in.

CheckoutAcknowledgementType

typerequired
string

This is the type of what is to be acknowledged.

CheckoutAcknowledgementTypeFee

all of CheckoutAcknowledgementType + object

CheckoutAcknowledgementTypePreviouslyCheckedOut

all of CheckoutAcknowledgementType + object

CheckoutField

acquiredFrom
PatronLoanAcquiredFrom
dueDaterequired
string (date)

This is the due date of the checked out item.

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.

publicationId
string

This is the publication ID of the checkout item.

publicationMetadata
PublicationFallback
renew
LoanRenewInfo
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.

CheckoutRequestBody

acknowledgement
object

This is used to acknowledge the checkout.

checkoutrequired
object

CheckoutResponseBody

acknowledgement
object

If this is set, the checkout needs to be acknowledged to be completed.

checkoutrequired
CheckoutField
message
CheckOutOrInMessage
requestIdrequired
string

This is an unique identifier for the checkout request. This will change for each request.

statusrequired
string enumcompleted · failed

This tells the status of the checkout.

The status are:

  • completed means that the checkout went well and was completed.
  • failed means that the checkout failed, and the item was not checked out.

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

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

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.

identifierTypes
array of object

This is an array of the patron identifier types that the vendor supports.
If this is missing, only the empty identifier type is supported.
The empty identifier type is when no identifier type is specified, and it is assumed to be unknown.

identityProviders
array of object
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.

ConfigurationPatronIdentifierType

string enum norway_birth_number · denmark_cpr

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

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

DeletePatronRequestBody

acknowledgement
object

This is used to acknowledge the deletion of the patron.

This is used to delete a patron, if an identity provider was used for login (when we can not validated the patron through identifier and password).

patronrequired
object

When the patron is not logge in through an identity provider, we use identifier and password (even if the password was not used at login).

DeletePatronResponseBody

acknowledgement
object

This contains the acknowledgement code, that should be used to begin deletion process.

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.

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 username or password - 100023: Patron ID not found - 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 · 100001 · 100023 · 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

Amount

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

PatronAuthenticationIdentityProviderResponseBody

patronrequired
Patron

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

string enum loan_history

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

string

A type identifier that tells which type of identifier is used. It is recommended to use one of the following types: - `local` an identifier for one local library - `email` an email address. - `phone` a phone number. - Norway specific: - `norway_national_library_card` the Norwegian national library card. - `norway_national_birth_number` the Norwegian "Fødselsnummer".

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 missing, it is assumed that the type of `value` is unknown.

type
PatronIdentifierType
valuerequired
PatronIdentifier

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

Password for identifier.

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

PatronRegistrationIdentifierRequestBody

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.

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.

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.

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.