IRIS Repository (DSpace REST API)

Public DSpace 7 REST/HATEOAS API (version 1.3.8) serving the IRIS institutional research repository at UNIL. Exposes communities, collections, items, bundles and bitstreams, with discovery, metadata schemas and ORCID integration. Anonymous read access is available for public content; some endpoints require authentication.

OpenAPI Specification

university-of-lausanne-iris.yaml Raw ↑
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'