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: repositorio_nal@unal.edu.co 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'