ETH Zurich – Swiss Federal Institute of Technology Core API

The Core API from ETH Zurich – Swiss Federal Institute of Technology — 9 operation(s) for core.

OpenAPI Specification

eth-zurich-core-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Discovery bitstreams Core API
  description: "The Discovery REST API provides access to over 30 million books, images, series, journals, and other materials from the ETH Library's Discovery Portal. \n\n➜ [OAS 3 Swagger Documentation](https://eth-library.github.io/apiplatform-swagger/discovery/v1/)\n\n➜ [ETH Library @ swisscovery Application](https://eth.swisscovery.slsp.ch/)"
  version: 1.0.2
  termsOfService: https://developer.library.ethz.ch/terms
  contact:
    name: API Management ETH Library
    email: api@library.ethz.ch
    url: https://library.ethz.ch
  license:
    url: https://developer.library.ethz.ch/terms
    name: Bibliographic metadata that are not specifically marked are free for general use (Public Domain). Documents, images or other digital objects linked in metadata may be subject to other copyright restrictions. Whenever possible, the licence of the referenced digital objects is indicated in the metadata. In case of doubt, the licence can be inquired at api@library.ethz.ch.
servers:
- url: https://api.library.ethz.ch/discovery/v1/
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Core
paths:
  /core/bitstreams/{id}:
    get:
      summary: Retrieve metadata for a bitstream
      description: Returns metadata details of a given bitstream.
      parameters:
      - name: id
        in: path
        description: The UUID of the bitstream to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with bitstream metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  uuid:
                    type: string
                  name:
                    type: string
                  sizeBytes:
                    type: integer
                  checkSum:
                    type: object
                    properties:
                      checkSumAlgorithm:
                        type: string
                      value:
                        type: string
                  metadata:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          value:
                            type: string
                          language:
                            type: string
                          authority:
                            type: string
                          confidence:
                            type: integer
                          place:
                            type: integer
                  bundleName:
                    type: string
                  _links:
                    type: object
                    properties:
                      content:
                        type: object
                        properties:
                          href:
                            type: string
                      bundle:
                        type: object
                        properties:
                          href:
                            type: string
                      format:
                        type: object
                        properties:
                          href:
                            type: string
                      thumbnail:
                        type: object
                        properties:
                          href:
                            type: string
                      self:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Bitstream not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/bitstreams/{id}/content:
    get:
      summary: Retrieve the content of a bitstream
      description: Returns the actual file content of a given bitstream.
      parameters:
      - name: id
        in: path
        description: The UUID of the bitstream to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with the bitstream content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Bitstream content not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/bitstreams/{id}/format:
    get:
      summary: Retrieve format details for a bitstream
      description: Returns the format details (e.g., MIME type, description) of a given bitstream.
      parameters:
      - name: id
        in: path
        description: The UUID of the bitstream to retrieve format details for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with bitstream format details
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  shortDescription:
                    type: string
                  description:
                    type: string
                  mimetype:
                    type: string
                  supportLevel:
                    type: string
                  internal:
                    type: boolean
                  extensions:
                    type: array
                    items:
                      type: string
                  type:
                    type: string
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Bitstream format not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}:
    get:
      summary: Retrieve item details
      description: Returns metadata and relationships of a specific item in the research collection.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve.
        required: true
        schema:
          type: string
      - name: embed
        in: query
        description: Embedded relationships in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response with item details
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  uuid:
                    type: string
                  name:
                    type: string
                  handle:
                    type: string
                  metadata:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          value:
                            type: string
                          language:
                            type: string
                          authority:
                            type: string
                          confidence:
                            type: integer
                          place:
                            type: integer
                  inArchive:
                    type: boolean
                  discoverable:
                    type: boolean
                  withdrawn:
                    type: boolean
                  lastModified:
                    type: string
                    format: date-time
                  entityType:
                    type: string
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                      relationships:
                        type: object
                        properties:
                          href:
                            type: string
                      citations:
                        type: object
                        properties:
                          href:
                            type: string
                      thumbnail:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Item not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}/coins:
    get:
      summary: Retrieve COinS metadata for an item
      description: Returns ContextObjects in Spans (COinS) metadata for a specific item.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve COinS metadata for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with COinS metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  ethz.COinS:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                        language:
                          type: string
                        authority:
                          type: string
                        confidence:
                          type: integer
                        place:
                          type: integer
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Item not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}/leitzahl:
    get:
      summary: Retrieve Leitzahl classification for an item
      description: Returns the Leitzahl classification metadata for a specific item.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve Leitzahl metadata for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with Leitzahl classification metadata
          content:
            application/json:
              schema:
                type: object
                properties:
                  leitzahl:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        leitzahlID:
                          type: string
                        label:
                          type: string
                        confirmed:
                          type: boolean
                        type:
                          type: string
                  authorizations:
                    type: array
                    items:
                      type: object
                  type:
                    type: string
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Item not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}/owningCollection:
    get:
      summary: Retrieve the owning collection of an item
      description: Returns the collection to which a specific item belongs, including its parent community.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve the owning collection for.
        required: true
        schema:
          type: string
      - name: embed
        in: query
        description: Embedded relationships in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response with owning collection details
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  uuid:
                    type: string
                  name:
                    type: string
                  handle:
                    type: string
                  metadata:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: object
                        properties:
                          value:
                            type: string
                          language:
                            type: string
                          authority:
                            type: string
                          confidence:
                            type: integer
                          place:
                            type: integer
                  archivedItemsCount:
                    type: integer
                  type:
                    type: string
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                      parentCommunity:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Collection not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}/relationships:
    get:
      summary: Retrieve relationships for an item
      description: Returns the relationships associated with a specific item.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve relationships for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with item relationships
          content:
            application/json:
              schema:
                type: object
                properties:
                  _embedded:
                    type: object
                    properties:
                      relationships:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            leftPlace:
                              type: integer
                            rightPlace:
                              type: integer
                            leftwardValue:
                              type: string
                              nullable: true
                            rightwardValue:
                              type: string
                              nullable: true
                            type:
                              type: string
                            _links:
                              type: object
                              properties:
                                relationshipType:
                                  type: object
                                  properties:
                                    href:
                                      type: string
                                self:
                                  type: object
                                  properties:
                                    href:
                                      type: string
                                leftItem:
                                  type: object
                                  properties:
                                    href:
                                      type: string
                                rightItem:
                                  type: object
                                  properties:
                                    href:
                                      type: string
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                      totalPages:
                        type: integer
                      totalElements:
                        type: integer
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Item not found
        '500':
          description: Internal server error
      tags:
      - Core
  /core/items/{id}/thumbnail:
    get:
      summary: Retrieve thumbnail for an item
      description: Returns the thumbnail image for a specific item.
      parameters:
      - name: id
        in: path
        description: The UUID of the item to retrieve the thumbnail for.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with the thumbnail image
          content:
            image/*:
              schema:
                type: string
                format: binary
        '400':
          description: Bad request (invalid parameters)
        '404':
          description: Thumbnail not found
        '500':
          description: Internal server error
      tags:
      - Core
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: apikey
externalDocs:
  description: OAS 3 Swagger Documentation
  url: https://apidocs.library.ethz.ch/discovery/v1/