openapi: 3.0.3 info: title: IRIS Repository (DSpace REST API) Core 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 tags: - name: Core paths: /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' tags: - Core /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. tags: - Core components: schemas: PageInfo: type: object description: Spring Data HAL pagination metadata. properties: size: type: integer totalElements: type: integer totalPages: type: integer number: 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). 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' MetadataValue: type: object properties: value: type: string language: type: string nullable: true authority: type: string nullable: true confidence: type: integer place: type: integer 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 parameters: size: name: size in: query required: false description: Number of elements per page. schema: type: integer default: 20 page: name: page in: query required: false description: Zero-based page index. schema: type: integer default: 0