openapi: 3.0.3 info: title: LUX Yale Collections Discovery Configuration Related API description: Public read API for LUX, Yale's cross-collection discovery platform providing unified access to more than 41 million records across Yale's museums, archives and library collections. Entities are served as Linked Art JSON-LD. This description documents the public middle-tier endpoints exposed under https://lux.collections.yale.edu and was derived from the open-source LUX backend API usage documentation and Postman collection (github.com/project-lux/lux-marklogic) and confirmed against live responses. Only the public read endpoints are described here; write/admin endpoints from the backend custom API are intentionally omitted. version: 1.0.0 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 contact: name: LUX Yale Collections Discovery url: https://lux.collections.yale.edu/content/technology servers: - url: https://lux.collections.yale.edu description: LUX public production tags: - name: Related description: Related entity discovery paths: /api/related-list/{scope}: get: tags: - Related operationId: relatedList summary: Retrieve related entities description: Returns an OrderedCollectionPage listing documents related to a given URI through various relationship types. parameters: - $ref: '#/components/parameters/Scope' - name: name in: query required: true description: Related list name. schema: type: string - name: uri in: query required: true description: URI of the entity whose relations are requested. schema: type: string format: uri - name: page in: query required: false schema: type: integer minimum: 1 responses: '200': description: Related entities. content: application/json: schema: $ref: '#/components/schemas/OrderedCollectionPage' components: schemas: OrderedCollection: type: object description: A Linked Art OrderedCollection summarizing a result set. properties: '@context': type: string format: uri id: type: string format: uri type: type: string example: OrderedCollection label: $ref: '#/components/schemas/LanguageMap' summary: $ref: '#/components/schemas/LanguageMap' totalItems: type: integer first: $ref: '#/components/schemas/CollectionPageRef' last: $ref: '#/components/schemas/CollectionPageRef' required: - id - type - totalItems EntityRef: type: object description: A reference to a LUX entity returned within search results. properties: id: type: string format: uri type: type: string example: HumanMadeObject required: - id - type OrderedCollectionPage: type: object description: A single page of a Linked Art OrderedCollection. properties: '@context': type: string format: uri id: type: string format: uri type: type: string example: OrderedCollectionPage partOf: $ref: '#/components/schemas/OrderedCollection' orderedItems: type: array items: $ref: '#/components/schemas/EntityRef' next: $ref: '#/components/schemas/CollectionPageRef' prev: $ref: '#/components/schemas/CollectionPageRef' required: - id - type - orderedItems LanguageMap: type: object description: 'A Linked Art language map: keys are language tags and values are arrays of strings.' additionalProperties: type: array items: type: string CollectionPageRef: type: object properties: id: type: string format: uri type: type: string example: OrderedCollectionPage required: - id parameters: Scope: name: scope in: path required: true description: The discovery scope to query. LUX scopes map to the major Linked Art entity categories. schema: type: string enum: - item - work - agent - place - concept - set - event