Kyoto University REST API
DSpace 7.6 HAL+JSON REST API
DSpace 7.6 HAL+JSON REST API
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'