Yale University Related API

Related entity discovery

OpenAPI Specification

yale-related-api-openapi.yml Raw ↑
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