openapi: 3.0.3 info: title: IRIS Repository (DSpace REST API) description: >- Public DSpace 7 REST/HATEOAS API (IRIS version 1.3.8) serving the IRIS institutional research repository at the University of Lausanne (UNIL). Exposes communities, collections, items, bundles and bitstreams via a HAL-based hypermedia API. Anonymous read access is available for public content; some endpoints (e.g. /core/items listing) require authentication. This specification was reconstructed from the live API root at https://api.unil.ch/iris/server/api and confirmed against live responses; only confirmed public read endpoints and observed object shapes are included. version: '1.3.8' contact: name: University of Lausanne - IRIS url: https://iris.unil.ch servers: - url: https://api.unil.ch/iris/server/api description: Production DSpace REST server paths: /: get: operationId: getApiRoot summary: API root description: >- Returns the DSpace REST root document with version metadata and the HAL hypermedia _links catalog of available resource endpoints. responses: '200': description: The API root document. content: application/json: schema: $ref: '#/components/schemas/ApiRoot' /core/communities: get: operationId: listCommunities summary: List top-level communities description: >- Returns a paginated HAL collection of communities in the repository. parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/size' responses: '200': description: A paginated collection of communities. content: application/json: schema: $ref: '#/components/schemas/CommunityPage' /core/communities/{uuid}: get: operationId: getCommunity summary: Get a community by UUID parameters: - name: uuid in: path required: true schema: type: string format: uuid responses: '200': description: A single community. content: application/json: schema: $ref: '#/components/schemas/Community' '404': description: Community not found. components: parameters: page: name: page in: query required: false description: Zero-based page index. schema: type: integer default: 0 size: name: size in: query required: false description: Number of elements per page. schema: type: integer default: 20 schemas: ApiRoot: type: object description: DSpace REST root document. properties: dspaceUI: type: string example: https://iris.unil.ch dspaceName: type: string dspaceServer: type: string example: https://api.unil.ch/iris/server dspaceVersion: type: string crisVersion: type: string irisRole: type: string example: leader irisVersion: type: string example: 1.3.8 type: type: string example: root _links: type: object additionalProperties: true description: HAL hypermedia links to available resource endpoints. Metadata: type: object description: >- DSpace metadata map keyed by qualified field name (e.g. dc.title), each mapping to an ordered list of metadata values. additionalProperties: type: array items: $ref: '#/components/schemas/MetadataValue' example: dc.title: - value: IRIS language: null authority: null confidence: -1 place: 0 dc.identifier.uri: - value: https://iris.unil.ch/handle/iris/1 language: null authority: null confidence: -1 place: 0 MetadataValue: type: object properties: value: type: string language: type: string nullable: true authority: type: string nullable: true confidence: type: integer place: type: integer Community: type: object description: A DSpace community (top-level container of collections). properties: id: type: string format: uuid example: b237fe8c-78b9-4bf5-9658-f03c354851b8 uuid: type: string format: uuid example: b237fe8c-78b9-4bf5-9658-f03c354851b8 name: type: string example: IRIS handle: type: string example: iris/1 metadata: $ref: '#/components/schemas/Metadata' archivedItemsCount: type: integer type: type: string example: community uniqueType: type: string _links: type: object additionalProperties: true description: >- HAL links (collections, logo, subcommunities, parentCommunity, adminGroup, self). PageInfo: type: object description: Spring Data HAL pagination metadata. properties: size: type: integer totalElements: type: integer totalPages: type: integer number: type: integer CommunityPage: type: object description: A paginated HAL collection of communities. properties: _embedded: type: object properties: communities: type: array items: $ref: '#/components/schemas/Community' _links: type: object additionalProperties: true page: $ref: '#/components/schemas/PageInfo'