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