English

Every named schema in the specification, one level deep. A field that points at another schema links to it rather than being expanded — the specification references itself in cycles, so expanding would not terminate.

379 schemas · Generated from provider_v0_6_5.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
booleanWas the loan added manually by the patron.
publicationIdrequired
LoanPublicationId
publicationMetadata
PublicationFallback

Address

cityrequired
stringThis field refers to the city, town, or locality where the address is located.
country
stringThis field specifies the name of the country where the address is located.
postalCode
stringThis field represents the numeric or alphanumeric code assigned to a specific area for efficient mail sorting and delivery.
streetrequired
stringThis 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
stringA contribution role code from the MARC Code List for Relators.
typerequired
string enummarcRelatorIdentifies the role code as being part of [MARC Code List for Relators](https://www.loc.gov/marc/relators/relaterm.html).

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_dayType 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
stringA 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
stringA 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
stringA code that (if set) can be used with the filter `plas.audience.literal` to search on this audience literal.
typerequired
string enumliteral
valuerequired
stringA 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
stringThis is a description of the agent.
fullNamerequired
stringThis is the full name of the agent.
id
stringThis 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 ImageAgentImages of the agent.

BaseSuggestionAgent

fullNamerequired
stringThis is the full name of the agent.
id
stringThis isn't required, but if it's set, the agent is searchable through the GET /agent endpoint.
images
array of ImageAgentImages of the agent.

BasicTitle

language
LanguageThe language of the titles in the object.
mainrequired
stringThis is the main title.
part
objectThis contains the information to distinguish the work.
remainder
stringThis 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
stringA 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
stringThis is the item ID of the checked in item.
loanIdrequired
LoanId
patronId
stringThis is the patron ID of the patron that made the checkin.
publicationId
stringThis is the publication ID of the checkin item.
publicationMetadata
PublicationFallback
sortingCode
stringThis 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
booleanThis tells if the checkin was completed or not. It is only true if the checkin was completed, else it is false.
message
CheckOutOrInMessage
requestIdrequired
stringThis is a unique identifier for the checkout request. This will change for each request.
statusrequired
string enumcompleted · failedThis 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
stringThis 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
stringThis is the item ID of the checkout item.
loanIdrequired
LoanId
patronIdrequired
stringThis is the patron ID of the patron that made the checkout.
publicationId
stringThis 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
stringThe branch ID where the checkout or checkin was made.
sections
array of LocationSectionElementWithIdNameAndTypeThis is specifying the location more precisely.

CheckOutOrInMessage

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

text
stringMessage to the patron.
type
stringThis 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
objectThis is used to acknowledge the checkout.
checkoutrequired
object

CheckoutResponseBody

acknowledgement
objectIf this is set, the checkout needs to be acknowledged to be completed.
checkoutrequired
CheckoutField
message
CheckOutOrInMessage
requestIdrequired
stringThis is an unique identifier for the checkout request. This will change for each request.
statusrequired
string enumcompleted · failedThis 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
stringA displayable (human readable) value representation of the dewey number.
numberrequired
stringThe value of the dewey number.
typerequired
string enumdewey

ClassificationTypeDK5

name
stringA displayable (human readable) value representation of the dewey number.
numberrequired
stringThe value of the dk5 number.
typerequired
string enumdk5

ConfigurationContentApi

delegated
object

ConfigurationContentResponseBody

uiLanguages
objectThis 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 HoldingPeriodicalGroupTypeThe 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 ConfigurationPatronFieldThis 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 objectThis 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
integerThis 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_idThis 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

ConfigurationPatronIdentityProviderType

string enum

The identity provider type, found in GET /configuration.

norway_min_id · norway_id_portal · denmark_mit_id

ConfigurationPayment

initialize
object
methods
array of ConfigurationPaymentMethodThis is a list of the payment methods that the vendor supports. If this is missing, there are no payment methods available.
partial
booleanIf 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
objectevents contain configuration data for events in the LMS. This covers notifications sent to the user and consent changes.
holding
ConfigurationHolding
patron
ConfigurationPatron
payment
ConfigurationPaymentIf this field is missing, the vendor does not support payments.
search
ConfigurationSearchWithApi
versionrequired
stringThis contains the version of the Open Library API.

ConfigurationSearchApi

delegated
object

ConfigurationSearchExpression

clustering
array of array of ExpressionClusteringFieldThis 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
objectThis 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 ConfigurationSearchSuggestionsFilterAvailableThis tells which filters are available for the `/suggestions` endpoint.
disabled
booleanThis 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
stringThis is a description of what type of filter this is.
typerequired
SuggestionsFilterType

ConfigurationSearchWithApi

all of object + ConfigurationSearchResponseBody

ConfigurationWorkSearchFacet

available
array of ConfigurationWorkSearchFacetAvailable

ConfigurationWorkSearchFacetAvailable

description
stringThis is a description of what type of `facet` this is.
typerequired
SearchFacetType

ConfigurationWorkSearchFilter

available
array of ConfigurationWorkSearchFilterAvailable

ConfigurationWorkSearchFilterAvailable

description
stringThis 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
stringThis 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
stringInstructions on where to register/buy tickets
phone
stringPhone number with country prefix for registration/tickets
url
string (uri)URL to registration/ticket page

Contributor

agentrequired
Agent
roles
array of AgentRoleList 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
booleanThe default value is *false*, meaning common era, otherwise before the common era.
centuryrequired
integerThe 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
integerEg. 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
integerEg. 1924
to
integerEg. 1979
typerequired
string enumyearRange

DeletePatronRequestBody

acknowledgement
objectThis 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
objectWhen 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
objectThis contains the acknowledgement code, that should be used to begin deletion process.
statusrequired
string enumwaiting_for_acknowledgement · pending · in_progress · done · deletion_errorThis 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
stringA displayable (human readable) representation of the edition.

EditionTypeNumbering

display
stringA displayable (human readable) representation of the edition.
numberrequired
integerThe edition number.
printing
integerThe 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 ErrorThe first error should always be the most relevant.

Event

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

admissionrequired
EventAdmission
audiences
array of EventAudienceTarget audiences for the event
branchrequired
EventBranch
categories
array of EventCategoryEvent categories
descriptionrequired
stringA detailed description of the event. Is in limited html format. Supports following html tags - b - i - p - a - ul - ol - li
idrequired
stringUnique 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
stringThe language of this events content (https://www.loc.gov/marc/languages/).
location
EventLocation
organizers
array of EventOrganizerEvent organizers
promoted
Promoted
relatedEvents
RelatedEvents
relevantWorks
RelevantWorks
schedulingrequired
EventScheduling
series
EventSeries
staterequired
EventState
teaser
stringA short, engaging text designed to spark interest in the event
titlerequired
stringEvent 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
stringUnique identifier for the audience target
labelrequired
stringLocalized label for the audience target

EventBranch

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

branchIdrequired
stringThe branch ID (should exist in GET /locations)
branchNamerequired
stringName of the branch

EventCategory

Category classification for events

idrequired
stringCategory identifier
labelrequired
stringLocalized 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
stringThe internal location used for the event
typerequired
string enumat_branch

EventLocationExternal

Location information for an external venue.

address
AddressThe physical address of the event location
namerequired
stringExternal location name
typerequired
string enumexternal

EventOrganizer

Information about an external event organizer

id
stringUnique identifier for the external organizer
namerequired
stringName of the external organizer

EventPriceCategory

amountrequired
integerThe price for a ticket. 0 if free. The amount is in minor unit (see ISO 4217).
currencyrequired
stringThe currency of the price. ISO 4217 code.
label
stringA 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 EventPriceCategoryArray of price categories for an event
typerequired
string enumprice_categories

EventPricingSimple

textrequired
stringSimple 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 stringAn 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
stringIdentifier 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
stringA displayable (human readable) representation of the extent.

ExtentTypePages

pagesrequired
integerNumber of physical pages.
typerequired
string enumpages

ExtentTypePlaytime

playtimerequired
integerThe total playtime in seconds.
typerequired
string enumplaytime

ExtentTypeUnits

typerequired
string enumunits
unitTyperequired
string enumvolume · dvd · cd · bluRay · cassette · lp
unitsrequired
integerNumber of physical units (volumes, dvd, cd, ...)

Facet

name
stringA displayable (human readable) facet name.
termsrequired
array of FacetTerm
typerequired
SearchFacetType

FacetTerm

namerequired
stringA displayable (human readable) representation of facet term name.
occurrences
integerThe number of occurrences in the search result, based on works.
valuerequired
stringThe 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
stringThe 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
unknownA 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
FeeAmountThis 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 FinalizePaymentFeeThe 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
stringOrder ID from initialize payment. If in the configuration, payment->initialize->state is `use_initialize`, this field is required.
paymentIdrequired
stringPayment ID from the payment gateway.

Form

id
stringA id that (if set) can be used with the filter `plas.forms` to search on this form.
labelrequired
stringA displayable (human readable) value of the form.

Genre

id
stringA id that (if set) can be used with the filter `plas.genres` to search on this genre.
labelrequired
stringA displayable (human readable) value of the genre.

GetAgentsResponseBody

agentsrequired
unknown

GetContentEventsInSeriesResponseBody

eventsrequired
array of Event
totalrequired
integerThe total number of events in the series.

GetContentEventsResponseBody

endOfResultsrequired
booleanIf 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
integerThe total number of events in the whole period.

GetHoldingResponseBody

holdingsrequired
unknown

GetPublicationsResponseBody

publicationsrequired
unknown

GetSuggestionsResponseBody

suggestionsrequired
array of Suggestion

GetVersionResponseBody

versionrequired
VersionThis 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
integerThis tells how many reservations there exist on the publication (or periodical). If this is unknown, the field is not set.
periodical
HoldingPeriodical
publicationIdrequired
stringThe publication ID
reserveIdrequired
stringThis 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_availableThis tells if the item is available at the shelf.
itemIdrequired
FieldItemId
lendingDays
integerIf 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_loanThis tells if the item is loanable.
pickupLocations
array of PickupLocationThis 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
stringThe 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 PickupLocationThis 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 HoldingPeriodicalGroupThe 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
stringThe 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
stringAlternative 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
numberHorizontal position of hotspot (0-1)
yrequired
numberVertical 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
integerThe image height in px.
mime
string enumpng · jpeg
urlrequired
string
width
integerThe 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 objectAny entry in this array is a possible way a new patron be registered through, based on the provided identifier.

Language

coderequired
stringA 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
stringA 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
integerThe 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 LocationSectionElementWithIdNameAndTypeThis 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
stringThis is the internal ID of the library branch, used in e.g. the HoldingLocation->location object.
namerequired
stringDisplayable name of the library branch.
pickup
object
tags
array of stringCan 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 objectThis 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
stringThis 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 PickupLocationDefault 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
stringA 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
stringThe token that we want to revoke. This is always an access_token.

OpenAdmission

Open admission with no registration or tickets required

typerequired
string enumopenType of admission - open access

Patron

address
PatronAddress
emailsrequired
PatronEmails
fullNamerequired
PatronFullNameFullName 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 objectThis is a list of activities, locations, etc. that the patron is either allowed or blocked from accessing.
phoneNumbersrequired
PatronPhoneNumbers
pickupLocationrequired
PickupLocationThe 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

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 PickupLocationThis 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
AmountThis 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
stringISO 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 objectThe 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
booleanAt most one email can de marked as default.
emailrequired
stringPatron email, following RFC 5322.

PatronEvaluatedConsent

givenrequired
boolean
typerequired
PatronConsentType
versionrequired
stringThe 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 FeeItemThe 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
objectThis 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
stringThe ID of the list.
namerequired
stringThe name of the list.

PatronListBaseItem

idrequired
stringThe 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
stringThe 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 PatronListA 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
stringThis is the loan history ID (not the loan ID).
itemId
LoanItemId
loanId
LoanId
manuallyAddedrequired
booleanWas 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
objectThis tells about delivery methods
name
stringReadable 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
booleanAt most one phone number can be marked as default.
numberrequired
stringThe phone number, in ITU standard E.164 format.
typerequired
string enummobile · landlineThis tells which type of phone the number is associated with

PatronRegistrationIdentifierRequestBody

identifierrequired
PatronIdentifierTypeAndValue
passwordrequired
PatronPassword
pickupLocationrequired
PickupLocationWithoutNames
registry
stringIf 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
stringMessage to the patron, with information about the registration process.
patronId
stringIf status is 'done' this should be set, else the user needs to log in again.
statusrequired
string enumdone · in_progress · contact_the_libraryThis describes the state of the registration process.

PatronRegistrationIdentityProviderResponseBody

message
stringMessage to the patron, with information about the registration process.
patronId
stringIf status is 'done' this should be set, else the user needs to log in again.
statusrequired
string enumdone · in_progress · contact_the_libraryThis 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
stringThe branch ID where a reservation should be picked up.
branchNamerequired
stringThis is the name of the branch.
sections
array of LocationSectionElementWithIdNameAndTypeThis 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
stringThe branch ID where a reservation should be picked up.
sections
array of LocationSectionElementWithIdAndTypeThis 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
DateDate of publication.
publishers
array of PublisherAndPlacesList 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
stringThe unique identifier of the publisher. It can be used to search for the other entries by the publisher
namerequired
stringThe publisher's name.

PublisherAndPlaces

places
array of PublisherPlacePlace of publication. Usually one place, but can be multiple.
publisherrequired
Publisher

PublisherPlace

placerequired
string

QueryRelevantWorks

Relevant works specified as a query string

queryrequired
stringQuery string to find relevant works
typerequired
string enumqueryType of relevant works - query string

RegisterEventReceiverRequestBody

secretrequired
stringThis cannot be empty. It should be randomly generated, and should be used to validate the Provider in the Vendor API.
urlrequired
stringThe empty string will unregister an existing receiver for the vendor.

RegistrationAdmission

Registration-based admission with contact information

contactInforequired
ContactInfo
staterequired
TicketStateState of the registration
typerequired
string enumregistrationType 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_renewalThere 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
integerThe 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 ImagePublicationImages to use with the work.
publicationsrequired
array of SearchResultEntryPublicationThis 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
booleanIf 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 FacetThis array contains the requested facets, and their terms. Each facet type should only appear once in the array.
resultsrequired
array of SearchResultEntryIt'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
integerThe total number of results in the whole search result.

Subject

id
stringA id that (if set) can be used with the filter `plas.subjects` to search on this subject.
labelrequired
stringA 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
TicketStateState of the ticket sale
ticketCapacity
stringTotal number of tickets which can be sold for the event. E.g. "100" or "unlimited"
typerequired
string enumticketType 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_spanType 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 objectThe array must only contain one consent of each type.
evaluatedrequired
PatronEvaluatedConsents

UpdatePatronInformationRequestAcceptedResponseBody

ticketrequired
stringCan be used for debugging.

UpdatePatronInformationRequestBody

address
PatronAddress
emails
PatronEmailsWithoutVerified
phoneNumbers
PatronPhoneNumbersWithoutVerified
pickupLocation
PickupLocationWithoutNames
reservation
PatronInfoReservation

UpdatePatronInformationResponseBody

patronrequired
Patron

UpdatePatronListRequestBody

namerequired
stringThe 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 enumworksType of relevant works - array of work ids
workIdsrequired
array of stringArray 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.