ETD@IISc OAI-PMH

ETD@IISc is the Electronic Theses and Dissertations repository of IISc, built on DSpace and documented as ETD-MS and OAI-PMH compliant, exposing thesis metadata for harvesting. The host returned an HTTP 502 during this review, so the live OAI endpoint could not be confirmed.

OpenAPI Specification

iisc-etd-rest.yaml Raw ↑
openapi: 3.0.3
info:
  title: ETD@IISc DSpace REST API
  description: >-
    Read-only machine-readable REST API exposed by the ETD@IISc Electronic Theses
    and Dissertations repository, which runs on DSpace 6. The API serves the
    repository's Community / Collection / Item / Bitstream hierarchy as JSON. Paths
    and object schemas in this document were confirmed live against
    https://etd.iisc.ac.in/rest during enrichment (verb-less GET endpoints returning
    real JSON). Only endpoints and fields actually observed or part of the documented
    DSpace 6 REST contract are included. Write/authenticated endpoints are out of
    scope for this public read profile.
  version: '6.0'
  contact:
    name: API Evangelist
    url: https://etd.iisc.ac.in/
servers:
  - url: https://etd.iisc.ac.in/rest
    description: ETD@IISc DSpace 6 REST API
tags:
  - name: Communities
  - name: Collections
  - name: Items
  - name: Bitstreams
paths:
  /communities:
    get:
      tags: [Communities]
      summary: List communities
      description: Returns the array of top-level and child communities in the repository.
      operationId: listCommunities
      parameters:
        - $ref: '#/components/parameters/expand'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: A list of community objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Community'
  /communities/{communityId}:
    get:
      tags: [Communities]
      summary: Get a community
      operationId: getCommunity
      parameters:
        - $ref: '#/components/parameters/communityId'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: A single community object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Community'
        '404':
          $ref: '#/components/responses/NotFound'
  /collections:
    get:
      tags: [Collections]
      summary: List collections
      description: Returns the array of collections in the repository.
      operationId: listCollections
      parameters:
        - $ref: '#/components/parameters/expand'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: A list of collection objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Collection'
  /collections/{collectionId}:
    get:
      tags: [Collections]
      summary: Get a collection
      operationId: getCollection
      parameters:
        - $ref: '#/components/parameters/collectionId'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: A single collection object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '404':
          $ref: '#/components/responses/NotFound'
  /items:
    get:
      tags: [Items]
      summary: List items
      description: >-
        Returns archived items in the repository. Use the expand parameter to
        include metadata and bitstreams in each item.
      operationId: listItems
      parameters:
        - $ref: '#/components/parameters/expand'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: A list of item objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Item'
  /items/{itemId}:
    get:
      tags: [Items]
      summary: Get an item
      operationId: getItem
      parameters:
        - $ref: '#/components/parameters/itemId'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: A single item object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Item'
        '404':
          $ref: '#/components/responses/NotFound'
  /items/{itemId}/bitstreams:
    get:
      tags: [Bitstreams]
      summary: List an item's bitstreams
      description: Returns the bitstreams (files) attached to an item.
      operationId: listItemBitstreams
      parameters:
        - $ref: '#/components/parameters/itemId'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: A list of bitstream objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Bitstream'
        '404':
          $ref: '#/components/responses/NotFound'
  /bitstreams/{bitstreamId}:
    get:
      tags: [Bitstreams]
      summary: Get a bitstream
      operationId: getBitstream
      parameters:
        - $ref: '#/components/parameters/bitstreamId'
        - $ref: '#/components/parameters/expand'
      responses:
        '200':
          description: A single bitstream object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bitstream'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    expand:
      name: expand
      in: query
      description: >-
        Comma-separated list of sub-resources to inline in the response
        (for example metadata,bitstreams,collections,subcommunities).
      required: false
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Maximum number of records to return.
      required: false
      schema:
        type: integer
        default: 100
    offset:
      name: offset
      in: query
      description: Number of records to skip for pagination.
      required: false
      schema:
        type: integer
        default: 0
    communityId:
      name: communityId
      in: path
      required: true
      description: UUID of the community.
      schema:
        type: string
        format: uuid
    collectionId:
      name: collectionId
      in: path
      required: true
      description: UUID of the collection.
      schema:
        type: string
        format: uuid
    itemId:
      name: itemId
      in: path
      required: true
      description: UUID of the item.
      schema:
        type: string
        format: uuid
    bitstreamId:
      name: bitstreamId
      in: path
      required: true
      description: UUID of the bitstream.
      schema:
        type: string
        format: uuid
  responses:
    NotFound:
      description: The requested resource was not found.
  schemas:
    DSpaceObject:
      type: object
      description: Common base fields shared by DSpace REST resources.
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        handle:
          type: string
          description: Persistent handle identifier (for example 2005/141).
        type:
          type: string
        link:
          type: string
          description: Relative REST path to this resource.
        expand:
          type: array
          items:
            type: string
    Community:
      allOf:
        - $ref: '#/components/schemas/DSpaceObject'
        - type: object
          properties:
            logo:
              nullable: true
              $ref: '#/components/schemas/Bitstream'
            parentCommunity:
              nullable: true
              $ref: '#/components/schemas/Community'
            copyrightText:
              type: string
            introductoryText:
              type: string
            shortDescription:
              type: string
            sidebarText:
              type: string
            countItems:
              type: integer
            collections:
              type: array
              items:
                $ref: '#/components/schemas/Collection'
            subcommunities:
              type: array
              items:
                $ref: '#/components/schemas/Community'
    Collection:
      allOf:
        - $ref: '#/components/schemas/DSpaceObject'
        - type: object
          properties:
            logo:
              nullable: true
              $ref: '#/components/schemas/Bitstream'
            parentCommunity:
              nullable: true
              $ref: '#/components/schemas/Community'
            parentCommunityList:
              type: array
              items:
                $ref: '#/components/schemas/Community'
            items:
              type: array
              items:
                $ref: '#/components/schemas/Item'
            license:
              type: string
              nullable: true
            copyrightText:
              type: string
            introductoryText:
              type: string
            shortDescription:
              type: string
            sidebarText:
              type: string
            numberItems:
              type: integer
    Item:
      allOf:
        - $ref: '#/components/schemas/DSpaceObject'
        - type: object
          properties:
            lastModified:
              type: string
              description: Timestamp of the last modification.
            archived:
              type: boolean
            withdrawn:
              type: boolean
            parentCollection:
              nullable: true
              $ref: '#/components/schemas/Collection'
            parentCollectionList:
              type: array
              items:
                $ref: '#/components/schemas/Collection'
            metadata:
              type: array
              items:
                $ref: '#/components/schemas/MetadataEntry'
            bitstreams:
              type: array
              items:
                $ref: '#/components/schemas/Bitstream'
    MetadataEntry:
      type: object
      description: A single Dublin Core metadata field on an item.
      properties:
        key:
          type: string
          description: Qualified DC key (for example dc.contributor.advisor).
        value:
          type: string
        language:
          type: string
          nullable: true
        element:
          type: string
        qualifier:
          type: string
          nullable: true
        schema:
          type: string
    Bitstream:
      allOf:
        - $ref: '#/components/schemas/DSpaceObject'
        - type: object
          properties:
            bundleName:
              type: string
            description:
              type: string
              nullable: true
            format:
              type: string
            mimeType:
              type: string
            sizeBytes:
              type: integer
              format: int64
            parentObject:
              nullable: true
              $ref: '#/components/schemas/Item'
            retrieveLink:
              type: string
              description: Relative path to download the file content.
            checkSum:
              type: object
              properties:
                value:
                  type: string
                checkSumAlgorithm:
                  type: string
            sequenceId:
              type: integer
            policies:
              type: array
              nullable: true
              items:
                type: object