openapi: 3.0.3 info: title: KURENAI Repository API (DSpace 7.6 + ) OAI-PMH REST API description: 'Machine-readable interfaces for the Kyoto University Research Information Repository (KURENAI), a DSpace 7.6 instance. Two confirmed-live surfaces are described: the DSpace REST API (HAL+JSON) rooted at /server/api, and the OAI-PMH 2.0 metadata harvesting endpoint at /server/oai/request. Only paths and shapes verified against the live system are included. Item-level REST endpoints require authentication; the public surfaces (root, communities, collections, OAI-PMH) are anonymous.' version: 1.0.0 contact: name: KURENAI Repository Administration email: repository@mail2.adm.kyoto-u.ac.jp servers: - url: https://repository.kulib.kyoto-u.ac.jp description: Kyoto University Research Information Repository (KURENAI) tags: - name: REST description: DSpace 7.6 HAL+JSON REST API paths: /server/api: get: tags: - REST operationId: getRoot summary: REST API root / HAL entry point description: Returns the DSpace REST root document with version and HAL _links to all endpoints. responses: '200': description: Root document content: application/hal+json: schema: $ref: '#/components/schemas/RestRoot' /server/api/core/communities: get: tags: - REST operationId: listCommunities summary: List top-level and all communities parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' responses: '200': description: Paginated list of communities content: application/hal+json: schema: $ref: '#/components/schemas/CommunityPage' /server/api/core/communities/{uuid}: get: tags: - REST operationId: getCommunity summary: Retrieve a single community by UUID parameters: - $ref: '#/components/parameters/Uuid' responses: '200': description: A community content: application/hal+json: schema: $ref: '#/components/schemas/Community' '404': $ref: '#/components/responses/Error' /server/api/core/collections: get: tags: - REST operationId: listCollections summary: List collections parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' responses: '200': description: Paginated list of collections content: application/hal+json: schema: $ref: '#/components/schemas/CollectionPage' /server/api/core/items: get: tags: - REST operationId: listItems summary: List items (authentication required) responses: '401': $ref: '#/components/responses/Error' components: parameters: Page: name: page in: query required: false schema: type: integer minimum: 0 default: 0 Uuid: name: uuid in: path required: true schema: type: string format: uuid Size: name: size in: query required: false schema: type: integer minimum: 1 default: 20 schemas: CollectionPage: type: object properties: _embedded: type: object properties: collections: type: array items: $ref: '#/components/schemas/Collection' page: $ref: '#/components/schemas/PageMeta' _links: type: object CommunityPage: type: object properties: _embedded: type: object properties: communities: type: array items: $ref: '#/components/schemas/Community' page: $ref: '#/components/schemas/PageMeta' _links: type: object MetadataValue: type: object properties: value: type: string language: type: string nullable: true authority: type: string nullable: true confidence: type: integer place: type: integer RestRoot: type: object properties: dspaceUI: type: string format: uri dspaceName: type: string dspaceServer: type: string format: uri dspaceVersion: type: string example: DSpace 7.6 type: type: string example: root _links: type: object additionalProperties: type: object properties: href: type: string format: uri Collection: type: object properties: id: type: string format: uuid uuid: type: string format: uuid name: type: string handle: type: string example: 2433/126120 archivedItemsCount: type: integer type: type: string example: collection Community: type: object properties: id: type: string format: uuid uuid: type: string format: uuid name: type: string handle: type: string example: 2433/36038 metadata: type: object additionalProperties: type: array items: $ref: '#/components/schemas/MetadataValue' archivedItemsCount: type: integer isBulletin: type: boolean type: type: string example: community _links: type: object additionalProperties: type: object properties: href: type: string format: uri Error: type: object properties: timestamp: type: string format: date-time status: type: integer error: type: string message: type: string path: type: string PageMeta: type: object properties: size: type: integer totalElements: type: integer totalPages: type: integer number: type: integer responses: Error: description: Error response content: application/json: schema: $ref: '#/components/schemas/Error'