Schemas
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.
147 schemas · Generated from search_v0_6_5.yaml Each field is listed as name, then type, then description. A type that names another schema links to it.AdditionalIdentifier
one of AdditionalIdentifierTypeISBN | AdditionalIdentifierTypeISSN | AdditionalIdentifierTypeEAN | AdditionalIdentifierTypeBibsentBibbiAdditionalIdentifierTypeBibsentBibbi
- typerequired
- string enumbibsentBibbi
- valuerequired
- string
AdditionalIdentifierTypeEAN
- digitsrequired
- string enum13
- typerequired
- string enumean
- valuerequired
- string
AdditionalIdentifierTypeISBN
- digitsrequired
- string enum10 · 13
- typerequired
- string enumisbn
- valuerequired
- string
AdditionalIdentifierTypeISSN
- typerequired
- string enumissn
- valuerequired
- string
Agent
one of AgentTypePerson | AgentTypeCollectiveAgentPersonActiveLiteral
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 AgentRoleMarcRelatorTelling 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 + objectAgentTypePerson
all of BaseAgent + objectAudience
one of AudienceTypeLiteral | AudienceTypeAgeRange | AudienceTypeAgeGroupAudienceTypeAgeGroup
- coderequired
- AudienceTypeAgeGroupCode
- name
- stringA displayable (human readable) audience group name.
- typerequired
- string enumageGroup
AudienceTypeAgeGroupCode
any of AudienceTypeAgeGroupCodeEnum | AudienceTypeAgeGroupCodeLiteralA code that (if set) can be used with the filter `plas.audience.ageGroup` to search on this age group.
AudienceTypeAgeGroupCodeEnum
string enum child · youngAdult · adultAudienceTypeAgeGroupCodeLiteral
stringAudienceTypeAgeRange
*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.
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 BindingTypeLiteralBindingTypeLiteral
A literal binding, meaning there are no expected structure or format.
- typerequired
- string enumliteral
- valuerequired
- stringA displayable (human readable) representation of the binding.
Classification
one of ClassificationTypeDewey | ClassificationTypeDK5ClassificationTypeDewey
- 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
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
ConfigurationWorkSearchFacet
ConfigurationWorkSearchFacetAvailable
- description
- stringThis is a description of what type of `facet` this is.
- typerequired
- SearchFacetType
ConfigurationWorkSearchFilter
ConfigurationWorkSearchFilterAvailable
- description
- stringThis is a description of what type of filter this is.
- typerequired
- SearchFilterType
ConfigurationWorkSearchSorting
ConfigurationWorkSearchSortingAvailable
This is a description of a sorting type.
- description
- stringThis is a description of what type of sorting this is.
- typerequired
- SearchSortingType
Contributor
- agentrequired
- Agent
- roles
- array of AgentRoleList of roles (e.g. author, illustrator, editor) that the agent played in the creation of this entity.
Date
one of DateTypeLiteral | DateTypeRFC3339 | DateTypeYear | DateTypeYearRange | DateTypeCenturyDateTypeCentury
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
Description
one of DescriptionTypeLiteralDescriptionTypeLiteral
A literal description, meaning there are no expected structure or format.
- typerequired
- string enumliteral
- valuerequired
- string
Edition
one of EditionTypeLiteral | EditionTypeNumberingEditionTypeLiteral
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
ErrorCode
integer enumA 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 · 330111ErrorInfo
stringStarts 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.
ExpressionClusteringField
one of ExpressionClusteringFieldNamedCreators | ExpressionClusteringFieldNamedContributors | ExpressionClusteringFieldNamedCreatorsAndContributors | ExpressionClusteringFieldNamedMediaTypes | ExpressionClusteringFieldNamedLanguageExpressionClusteringFieldName
objectThis is used to tell the providers preferred clustering of publications.
ExpressionClusteringFieldNamedContributors
all of ExpressionClusteringFieldName + objectExpressionClusteringFieldNamedCreators
all of ExpressionClusteringFieldName + objectExpressionClusteringFieldNamedCreatorsAndContributors
all of ExpressionClusteringFieldName + objectExpressionClusteringFieldNamedLanguage
all of ExpressionClusteringFieldName + objectExpressionClusteringFieldNamedMediaTypes
all of ExpressionClusteringFieldName + objectExtent
one of ExtentTypeLiteral | ExtentTypePages | ExtentTypePlaytime | ExtentTypeUnitsExtentTypeLiteral
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.
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
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
ImageAgent
one of ImageTypeAgentImagePublication
one of ImageTypeFrontCover | ImageTypeBackCoverImageTypeAgent
all of ImageUrl + objectImageTypeBackCover
all of ImageUrl + objectImageTypeFrontCover
all of ImageUrl + objectImageUrl
- height
- integerThe image height in px.
- mime
- string enumpng · jpeg
- urlrequired
- string
- width
- integerThe image width in px.
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.
MediaType
- code
- MediaTypeType
- namerequired
- stringA displayable (human readable) representation of the media type.
MediaTypeEnum
string enum book · eBook · audiobookMediaTypeLiteral
stringMediaTypeType
any of MediaTypeEnum | MediaTypeLiteralA code that (if set) can be used with the filter `plas.mediaTypes` to search on this media type.
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 AdditionalIdentifierOther identifiers, like: ISBN, ISSN, ...
PublicationContributors
array of ContributorThe contributor(s) to the publication.
PublicationCreators
array of ContributorThe creator(s) of the publication.
PublicationExtent
array of ExtentTogether all the Extents in the array describes the total extent of the publication.
PublicationIdentifier
stringPublication identifier. This is searchable through the GET /publication endpoint.
PublicationImages
array of ImagePublicationImages to use with the publication.
PublicationLanguage
array of LanguageThis is the language(s) of the this publication. If the publication uses multi languages this will also contain them.
PublicationMediaTypes
array of MediaTypePublicationTitles
array of TitleTitle of the publication.
PublicationWork
- identifierrequired
- PublicationWorkIdentifier
- relation
- PublicationWorkRelation
PublicationWorkIdentifier
stringWork identifier of this publication. This is searchable through the GET /work endpoint.
PublicationWorkRelation
string enumDescribes 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 · embodiesPublisher
- 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
SearchAgentsResponseBody
- resultsrequired
- array of Agent
- totalrequired
- integerThe total number of results in the whole search result.
SearchFacetType
any of SearchFacetTypeEnum | SearchFacetTypeLiteralFacet 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.formsSearchFacetTypeLiteral
stringSearchFilterType
any of SearchFilterTypeEnum | SearchFilterTypeLiteralFilter 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.formsSearchFilterTypeLiteral
stringSearchResultEntry
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 | SearchSortingTypeLiteralSorting 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.descSearchSortingTypeLiteral
stringSearchWorksResponseBody
- 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 | SuggestionTypeSubjectSuggestionAgent
one of SuggestionAgentTypePerson | SuggestionAgentTypeCollectiveSuggestionAgentTypeCollective
all of BaseSuggestionAgent + objectSuggestionAgentTypePerson
all of BaseSuggestionAgent + objectSuggestionParameterTypeEnum
string enum query · contributor · work · subjectSuggestionsFilterType
any of SuggestionsFilterTypeEnum | SuggestionsFilterTypeLiteralFilter 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.formsSuggestionsFilterTypeLiteral
stringSuggestionTypeContributor
- contributorrequired
- object
- typerequired
- string enumcontributor
SuggestionTypeQuery
- queryrequired
- string
- typerequired
- string enumquery
SuggestionTypeSubject
- subjectrequired
- Subject
- typerequired
- string enumsubject
SuggestionTypeWork
- typerequired
- string enumwork
- workrequired
- object
Title
one of TitleTypePreferred | TitleTypeVariant | TitleTypeParallel | TitleTypeOriginalTitleTypeOriginal
all of BasicTitle + objectTitleTypeParallel
all of BasicTitle + objectTitleTypePreferred
all of BasicTitle + objectTitleTypeVariant
all of BasicTitle + objectVersion
stringOpen 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 AudienceIntended audience, target audience or intellectual level of the work.
WorkClassification
array of ClassificationClassification of the work.
WorkContributors
array of ContributorThe contributor(s) to the work.
WorkCreators
array of ContributorThe creator(s) of the work.
WorkDescription
array of DescriptionHelp readers understand what the work is about and whether they might be interested in lending/reserving it.
WorkForms
array of FormForm is a more specific type of metadata that describes the physical structure or organization of a work.
WorkGenres
array of GenreGenre is a broad category of works that share similar characteristics, such as style, tone, or subject matter.
WorkIdentifier
stringWork identifier. This is searchable through the GET /work endpoint.
WorkImages
array of ImagePublicationImages to use with the work.
WorkLanguage
array of LanguageThis 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 stringAll publication identifiers from the works underlying publications. These are searchable through the GET /publication endpoint.
WorkSubjects
array of SubjectSubject is a topic or theme that is covered in a work.
WorkTitles
array of TitleTitle of the work.