Institutional Repository (DSpace / OAI-PMH)

The Repositorio Institucional Universidad Nacional de Colombia is a DSpace repository of theses, dissertations, articles, books, and research data. It is registered with re3data and OpenDOAR as exposing an OAI-PMH metadata interface for harvesting. The repository web application resolves publicly; the OAI-PMH request endpoint path could not be confirmed live during review and should be re-verified against the current DSpace version before use.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

national-university-of-colombia-repository-oai.yaml Raw ↑
openapi: 3.0.3
info:
  title: National University of Colombia - Institutional Repository API
  description: >-
    Machine-readable description of the publicly accessible, read-only surface of
    the Repositorio Institucional Universidad Nacional de Colombia, powered by
    DSpace 7.6.5. Two interfaces are documented: the DSpace REST API (HAL+JSON)
    and the OAI-PMH 2.0 metadata harvesting interface. Only endpoints confirmed
    to resolve anonymously during discovery are included. Endpoints that require
    authentication (e.g. /server/api/core/items) are intentionally omitted.
  version: 7.6.5
  contact:
    name: Repositorio Institucional UNAL
    email: [email protected]
    url: https://repositorio.unal.edu.co/
  license:
    name: DSpace (BSD) software; content under individual item licenses
    url: https://github.com/DSpace/DSpace/blob/main/LICENSE
servers:
  - url: https://bffrepositorio.unal.edu.co/server
    description: DSpace 7.6.5 backend (REST API and OAI-PMH), discovered via repositorio.unal.edu.co assets/config.json
tags:
  - name: REST - Core
    description: DSpace HAL+JSON read endpoints for repository structure.
  - name: REST - Discover
    description: Faceted search across archived objects.
  - name: OAI-PMH
    description: OAI-PMH 2.0 metadata harvesting interface.
paths:
  /api:
    get:
      tags: [REST - Core]
      summary: API root
      description: Returns the DSpace REST API root document with the DSpace version and HAL links to all resource endpoints.
      operationId: getApiRoot
      responses:
        '200':
          description: API root document.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Root'
  /api/core/communities:
    get:
      tags: [REST - Core]
      summary: List communities
      description: Returns a paginated list of top-level and child communities (organizational groupings such as faculties and digital libraries).
      operationId: listCommunities
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Size'
      responses:
        '200':
          description: Paginated community list.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CommunityPage'
  /api/core/communities/{uuid}:
    get:
      tags: [REST - Core]
      summary: Get a community
      operationId: getCommunity
      parameters:
        - $ref: '#/components/parameters/Uuid'
      responses:
        '200':
          description: A single community.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Community'
        '404':
          description: Not found.
  /api/core/collections:
    get:
      tags: [REST - Core]
      summary: List collections
      description: Returns a paginated list of collections (groupings of items, typically degree programs or document types).
      operationId: listCollections
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Size'
      responses:
        '200':
          description: Paginated collection list.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CollectionPage'
  /api/core/collections/{uuid}:
    get:
      tags: [REST - Core]
      summary: Get a collection
      operationId: getCollection
      parameters:
        - $ref: '#/components/parameters/Uuid'
      responses:
        '200':
          description: A single collection.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Collection'
        '404':
          description: Not found.
  /api/discover/search/objects:
    get:
      tags: [REST - Discover]
      summary: Search repository objects
      description: Faceted full-text search across archived DSpace objects (items, collections, communities).
      operationId: searchObjects
      parameters:
        - name: query
          in: query
          description: Full-text query string.
          schema:
            type: string
        - name: dsoType
          in: query
          description: Restrict results to a DSpace object type.
          schema:
            type: string
            enum: [item, collection, community]
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Size'
      responses:
        '200':
          description: Search result envelope with embedded result objects and paging.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SearchResultEnvelope'
  /oai/request:
    get:
      tags: [OAI-PMH]
      summary: OAI-PMH 2.0 request endpoint
      description: >-
        OAI-PMH 2.0 protocol endpoint. The verb parameter selects the operation.
        Returns XML conforming to the OAI-PMH schema. Confirmed live metadata
        prefixes include oai_dc, qdc, mods, mets, didl, dim, etdms, marc, ore,
        rdf, uketd_dc, and xoai.
      operationId: oaiRequest
      parameters:
        - name: verb
          in: query
          required: true
          description: The OAI-PMH protocol verb.
          schema:
            type: string
            enum:
              - Identify
              - ListMetadataFormats
              - ListSets
              - ListIdentifiers
              - ListRecords
              - GetRecord
        - name: metadataPrefix
          in: query
          description: Metadata format prefix (required for ListIdentifiers, ListRecords, GetRecord).
          schema:
            type: string
            enum: [oai_dc, qdc, mods, mets, didl, dim, etdms, marc, ore, rdf, uketd_dc, xoai]
        - name: identifier
          in: query
          description: OAI identifier of a record (required for GetRecord), e.g. oai:repositorio.unal.edu.co:unal/76203.
          schema:
            type: string
        - name: set
          in: query
          description: setSpec to restrict harvesting, e.g. com_unal_1 or col_unal_82470.
          schema:
            type: string
        - name: from
          in: query
          description: Lower bound UTC datestamp (YYYY-MM-DDThh:mm:ssZ).
          schema:
            type: string
            format: date-time
        - name: until
          in: query
          description: Upper bound UTC datestamp (YYYY-MM-DDThh:mm:ssZ).
          schema:
            type: string
            format: date-time
        - name: resumptionToken
          in: query
          description: Token returned by a previous incomplete list response.
          schema:
            type: string
      responses:
        '200':
          description: OAI-PMH XML response.
          content:
            text/xml:
              schema:
                type: string
                description: XML document conforming to http://www.openarchives.org/OAI/2.0/
components:
  parameters:
    Page:
      name: page
      in: query
      description: Zero-based page index.
      schema:
        type: integer
        minimum: 0
        default: 0
    Size:
      name: size
      in: query
      description: Page size.
      schema:
        type: integer
        minimum: 1
        default: 20
    Uuid:
      name: uuid
      in: path
      required: true
      description: DSpace object UUID.
      schema:
        type: string
        format: uuid
  schemas:
    Root:
      type: object
      description: DSpace REST API root document.
      properties:
        dspaceUI:
          type: string
          format: uri
        dspaceName:
          type: string
        dspaceServer:
          type: string
          format: uri
        dspaceVersion:
          type: string
        type:
          type: string
          example: root
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
    MetadataValue:
      type: object
      description: A single DSpace metadata value entry.
      properties:
        value:
          type: string
        language:
          type: string
          nullable: true
        authority:
          type: string
          nullable: true
        confidence:
          type: integer
        place:
          type: integer
    MetadataMap:
      type: object
      description: Map of qualified Dublin Core metadata fields to arrays of values.
      additionalProperties:
        type: array
        items:
          $ref: '#/components/schemas/MetadataValue'
    Community:
      type: object
      description: A DSpace community (organizational grouping).
      properties:
        id:
          type: string
          format: uuid
        uuid:
          type: string
          format: uuid
        name:
          type: string
        handle:
          type: string
          example: unal/161
        metadata:
          $ref: '#/components/schemas/MetadataMap'
        archivedItemsCount:
          type: integer
        type:
          type: string
          example: community
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
    Collection:
      type: object
      description: A DSpace collection (grouping of items).
      properties:
        id:
          type: string
          format: uuid
        uuid:
          type: string
          format: uuid
        name:
          type: string
        handle:
          type: string
          example: unal/82395
        metadata:
          $ref: '#/components/schemas/MetadataMap'
        archivedItemsCount:
          type: integer
        type:
          type: string
          example: collection
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
    PageInfo:
      type: object
      properties:
        size:
          type: integer
        totalElements:
          type: integer
        totalPages:
          type: integer
        number:
          type: integer
    Link:
      type: object
      properties:
        href:
          type: string
          format: uri
    CommunityPage:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            communities:
              type: array
              items:
                $ref: '#/components/schemas/Community'
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageInfo'
    CollectionPage:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            collections:
              type: array
              items:
                $ref: '#/components/schemas/Collection'
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
        page:
          $ref: '#/components/schemas/PageInfo'
    SearchResultEnvelope:
      type: object
      description: Discover search response envelope.
      properties:
        id:
          type: string
        query:
          type: string
        type:
          type: string
          example: discover
        _embedded:
          type: object
          properties:
            searchResult:
              type: object
              properties:
                page:
                  $ref: '#/components/schemas/PageInfo'
                _links:
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/Link'
        _links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'