ETH Zurich – Swiss Federal Institute of Technology Discover API

The Discover API from ETH Zurich – Swiss Federal Institute of Technology — 7 operation(s) for discover.

Operations 7

GET /discover/facets Retrieve available facets
GET /discover/facets/author Retrieve author facets
GET /discover/facets/dateIssued Retrieve date issued facets
GET /discover/facets/ethzAvailability Retrieve ETH Zurich availability facets
GET /discover/facets/ethzETHPublication Retrieve ETH Zurich publication facets
GET /discover/facets/itemtype Retrieve item type facets
GET /discover/search/objects Search objects in the research collection

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eth-zurich-discover-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

eth-zurich-discover-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Discovery bitstreams Discover 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: Discover
paths:
  /discover/facets:
    get:
      summary: Retrieve available facets
      description: Returns a list of available facets for filtering search results.
      responses:
        '200':
          description: Successful response with available facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  _embedded:
                    type: object
                    properties:
                      facets:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              description: Name of the facet (e.g., author, itemtype).
                            facetType:
                              type: string
                              description: Type of the facet (text or date).
                            facetLimit:
                              type: integer
                              description: Maximum number of facet values.
                            _links:
                              type: object
                              properties:
                                self:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/facets/author:
    get:
      summary: Retrieve author facets
      description: Returns author facets based on the query parameter.
      parameters:
      - name: query
        in: query
        description: Search term for author facets.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of facet values to return per page.
        required: false
        schema:
          type: integer
          default: 5
      responses:
        '200':
          description: Successful response with author facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  facetType:
                    type: string
                  facetLimit:
                    type: integer
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      values:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            count:
                              type: integer
                            _links:
                              type: object
                              properties:
                                search:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/facets/dateIssued:
    get:
      summary: Retrieve date issued facets
      description: Returns date issued facets based on the query parameter.
      parameters:
      - name: query
        in: query
        description: Search term for date issued facets.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of facet values to return per page.
        required: false
        schema:
          type: integer
          default: 5
      responses:
        '200':
          description: Successful response with date issued facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  facetType:
                    type: string
                  facetLimit:
                    type: integer
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      values:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            count:
                              type: integer
                            _links:
                              type: object
                              properties:
                                search:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/facets/ethzAvailability:
    get:
      summary: Retrieve ETH Zurich availability facets
      description: Returns ETH Zurich availability facets based on the query parameter.
      parameters:
      - name: query
        in: query
        description: Search term for ETH Zurich availability facets.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of facet values to return per page.
        required: false
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Successful response with ETH Zurich availability facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  facetType:
                    type: string
                  facetLimit:
                    type: integer
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      values:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            count:
                              type: integer
                            _links:
                              type: object
                              properties:
                                search:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/facets/ethzETHPublication:
    get:
      summary: Retrieve ETH Zurich publication facets
      description: Returns ETH Zurich publication facets based on the query parameter.
      parameters:
      - name: query
        in: query
        description: Search term for ETH Zurich publication facets.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of facet values to return per page.
        required: false
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Successful response with ETH Zurich publication facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  facetType:
                    type: string
                  facetLimit:
                    type: integer
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      values:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            count:
                              type: integer
                            _links:
                              type: object
                              properties:
                                search:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/facets/itemtype:
    get:
      summary: Retrieve item type facets
      description: Returns item type facets based on the query parameter.
      parameters:
      - name: query
        in: query
        description: Search term for item type facets.
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of facet values to return per page.
        required: false
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Successful response with item type facets
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  facetType:
                    type: string
                  facetLimit:
                    type: integer
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      values:
                        type: array
                        items:
                          type: object
                          properties:
                            label:
                              type: string
                            count:
                              type: integer
                            _links:
                              type: object
                              properties:
                                search:
                                  type: object
                                  properties:
                                    href:
                                      type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
  /discover/search/objects:
    get:
      summary: Search objects in the research collection
      description: Retrieves objects matching the search query with optional sorting and embedding options.
      parameters:
      - name: query
        in: query
        description: Search term to query objects.
        required: true
        schema:
          type: string
      - name: sort
        in: query
        description: Sorting order (e.g., "score,DESC").
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: Page number for pagination.
        required: false
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        description: Number of results per page.
        required: false
        schema:
          type: integer
          default: 10
      - name: embed
        in: query
        description: Fields to embed in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successful response with search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: string
                    description: The search query used.
                  page:
                    type: object
                    properties:
                      number:
                        type: integer
                      size:
                        type: integer
                      totalPages:
                        type: integer
                      totalElements:
                        type: integer
                  _embedded:
                    type: object
                    properties:
                      searchResult:
                        type: object
                        properties:
                          _embedded:
                            type: object
                            properties:
                              objects:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                      description: Title of the object.
                                    id:
                                      type: string
                                    handle:
                                      type: string
                                    metadata:
                                      type: object
                                      properties:
                                        dc.title:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                                        dc.contributor.author:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                                        dc.date.issued:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                                                format: date
                                        dc.identifier.uri:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              value:
                                                type: string
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                      last:
                        type: object
                        properties:
                          href:
                            type: string
        '400':
          description: Bad request (invalid parameters)
        '500':
          description: Internal server error
      tags:
      - Discover
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: apikey
externalDocs:
  description: OAS 3 Swagger Documentation
  url: https://apidocs.library.ethz.ch/discovery/v1/