UBC Abacus Dataverse API

Abacus is UBC Library's research-data repository running on the open Dataverse platform (version 5.9 confirmed live), which exposes the standard Dataverse REST APIs for discovering, searching, and accessing dataverses and datasets, including the UBC Open Data collection. Native Dataverse Search and Data Access APIs are available; write operations require an API token.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

ubc-abacus-dataverse.yaml Raw ↑
openapi: 3.0.0
info:
  title: UBC Abacus Dataverse API
  description: OpenAPI 3.0 description of the Dataverse REST API exposed by UBC Library's Abacus research-data repository
    (Dataverse 5.9). Spec retrieved live from https://abacus.library.ubc.ca/openapi. Native Dataverse Search and Data Access
    APIs are available for read; write operations require an API token.
  version: '5.9'
servers:
- url: https://abacus.library.ubc.ca
  description: UBC Abacus Dataverse production server.
paths:
  /api/v1/access/datafile/bundle/{fileId}:
    get:
      operationId: datafileBundle
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                $ref: '#/components/schemas/BundleDownloadInstance'
          description: Default Response.
  /api/v1/access/datafile/{fileId:.+}:
    get:
      operationId: datafile
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/DownloadInstance'
          description: Default Response.
  /api/v1/access/datafile/{fileId}/auxiliary:
    get:
      operationId: listDatafileMetadataAux
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{fileId}/auxiliary/{formatTag}/{formatVersion}:
    get:
      operationId: downloadAuxiliaryFile
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DownloadInstance'
          description: Default Response.
    post:
      operationId: saveAuxiliaryFileWithVersion
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: deleteAuxiliaryFileWithVersion
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      - name: formatTag
        in: path
        required: true
        schema:
          type: string
      - name: formatVersion
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{fileId}/auxiliary/{origin}:
    get:
      operationId: listDatafileMetadataAuxByOrigin
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: origin
        in: path
        required: true
        schema:
          type: string
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{fileId}/metadata:
    get:
      operationId: tabularDatafileMetadata
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: exclude
        in: query
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            text/xml:
              schema:
                type: string
          description: Default Response.
  /api/v1/access/datafile/{fileId}/metadata/ddi:
    get:
      operationId: tabularDatafileMetadataDDI
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: fileMetadataId
        in: query
        schema:
          type: number
      - name: exclude
        in: query
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            text/xml:
              schema:
                type: string
          description: Default Response.
  /api/v1/access/datafile/{id}/grantAccess/{identifier}:
    put:
      operationId: grantFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{id}/listRequests:
    get:
      operationId: listFileAccessRequests
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{id}/rejectAccess/{identifier}:
    put:
      operationId: rejectFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{id}/requestAccess:
    put:
      operationId: requestFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafile/{id}/revokeAccess/{identifier}:
    delete:
      operationId: revokeFileAccess
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafiles:
    post:
      operationId: postDownloadDatafiles
      parameters:
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/datafiles/{fileIds}:
    get:
      operationId: datafiles
      parameters:
      - name: fileIds
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/dataset/{id}:
    get:
      operationId: downloadAllFromLatest
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/dataset/{id}/versions/{versionId}:
    get:
      operationId: downloadAllFromVersion
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: versionId
        in: path
        required: true
        schema:
          type: string
      - name: gbrecs
        in: query
        schema:
          type: boolean
      - name: key
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            application/zip:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/dsCardImage/{versionId}:
    get:
      operationId: dsCardImage
      parameters:
      - name: versionId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/dvCardImage/{dataverseId}:
    get:
      operationId: dvCardImage
      parameters:
      - name: dataverseId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/fileCardImage/{fileId}:
    get:
      operationId: fileCardImage
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            image/png:
              schema:
                type: object
          description: Default Response.
  /api/v1/access/{id}/allowAccessRequest:
    put:
      operationId: allowAccessRequest
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/assignee/{idtf}:
    get:
      operationId: findRoleAssignee
      parameters:
      - name: idtf
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  '/api/v1/admin/assignments/assignees/{raIdtf: .*}':
    get:
      operationId: getAssignmentsFor
      parameters:
      - name: raIdtf
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers:
    get:
      operationId: listAuthenticatedUsers
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    post:
      operationId: createAuthenicatedUser
      requestBody:
        content:
          '*/*':
            schema:
              type: object
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/convert/builtin2oauth:
    put:
      operationId: builtin2oauth
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/convert/builtin2shib:
    put:
      operationId: builtin2shib
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/id/{id}:
    delete:
      operationId: deleteAuthenticatedUserById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/id/{id}/convertRemoteToBuiltIn:
    put:
      operationId: convertOAuthUserToBuiltin
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/id/{id}/convertShibToBuiltIn:
    put:
      operationId: convertShibUserToBuiltin
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/id/{id}/deactivate:
    post:
      operationId: deactivateAuthenticatedUserById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/{identifier}:
    get:
      operationId: getAuthenticatedUserByIdentifier
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: deleteAuthenticatedUser
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticatedUsers/{identifier}/deactivate:
    post:
      operationId: deactivateAuthenticatedUser
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticationProviderFactories:
    get:
      operationId: listAuthProviderFactories
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticationProviders:
    get:
      operationId: listAuthProviders
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    post:
      operationId: addProvider
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/AuthenticationProviderRow'
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticationProviders/{id}:
    get:
      operationId: showProvider
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: deleteAuthenticationProvider
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticationProviders/{id}/:enabled:
    post:
      operationId: enableAuthenticationProvider_deprecated
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/authenticationProviders/{id}/enabled:
    get:
      operationId: checkAuthenticationProviderEnabled
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    put:
      operationId: enableAuthenticationProvider
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/bannerMessage:
    get:
      operationId: getBannerMessages
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    post:
      operationId: addBannerMessage
      requestBody:
        content:
          '*/*':
            schema:
              type: object
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/bannerMessage/{id}:
    delete:
      operationId: deleteBannerMessage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/bannerMessage/{id}/deactivate:
    put:
      operationId: deactivateBannerMessage
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/batch/jobs:
    get:
      operationId: listBatchJobs
      responses:
        default:
          content:
            application/json:
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/batch/jobs/name/{jobName}:
    get:
      operationId: listBatchJobsByName
      parameters:
      - name: jobName
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/batch/jobs/{jobId}:
    get:
      operationId: listBatchJobById
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            application/json:
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/clearMetricsCache:
    delete:
      operationId: clearMetricsCache
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/clearMetricsCache/{name}:
    delete:
      operationId: clearMetricsCacheByName
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/computeDataFileHashValue/{fileId}/algorithm/{alg}:
    post:
      operationId: computeDataFileHashValue
      parameters:
      - name: fileId
        in: path
        required: true
        schema:
          type: string
      - name: alg
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/confirmEmail/{userId}:
    get:
      operationId: getConfirmEmailToken
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    post:
      operationId: startConfirmEmailProcess
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/convertUserFromBcryptToSha1:
    post:
      operationId: convertUserFromBcryptToSha1
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datafiles/integrity/fixmissingoriginalsizes:
    get:
      operationId: fixMissingOriginalSizes
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datafiles/integrity/fixmissingoriginaltypes:
    get:
      operationId: fixMissingOriginalTypes
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield:
    get:
      operationId: getAll
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield/controlledVocabulary/subject:
    get:
      operationId: showControlledVocabularyForSubject
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield/load:
    post:
      operationId: loadDatasetFields
      requestBody:
        content:
          text/tab-separated-values:
            schema:
              type: object
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield/loadNAControlledVocabularyValue:
    get:
      operationId: loadNAControlledVocabularyValue
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield/loadpropertyfiles:
    post:
      operationId: loadLanguagePropertyFile
      requestBody:
        content:
          application/zip:
            schema:
              type: object
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasetfield/{name}:
    get:
      operationId: getByName
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasets/integrity/{datasetVersionId}/fixmissingunf:
    post:
      operationId: fixUnf
      parameters:
      - name: datasetVersionId
        in: path
        required: true
        schema:
          type: string
      - name: forceRecalculate
        in: query
        schema:
          type: boolean
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/datasets/thumbnailMetadata/{id}:
    get:
      operationId: getDatasetThumbnailMetadata
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/dataverse/curationLabelSets:
    get:
      operationId: listCurationLabelSets
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/dataverse/storageDrivers:
    get:
      operationId: listStorageDrivers
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/dataverse/{alias}/addRoleAssignmentsToChildren:
    get:
      operationId: addRoleAssignementsToChildren
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/dataverse/{alias}/curationLabelSet:
    get:
      operationId: getCurationLabelSet
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    put:
      operationId: setCurationLabelSet
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      - name: name
        in: query
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: resetCurationLabelSet
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/dataverse/{alias}/storageDriver:
    get:
      operationId: getStorageDriver
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    put:
      operationId: setStorageDriver
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: resetStorageDriver
      parameters:
      - name: alias
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/externalTools:
    get:
      operationId: getExternalTools
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    post:
      operationId: addExternalTool
      requestBody:
        content:
          '*/*':
            schema:
              type: string
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/externalTools/{id}:
    get:
      operationId: getExternalTool
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
    delete:
      operationId: deleteExternalTool
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: number
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/feedback:
    post:
      operationId: submitFeedback
      requestBody:
        content:
          '*/*':
            schema:
              type: object
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
          description: Default Response.
  /api/v1/admin/groups/domain:
    get:
      operationId: listMailDomainGroups
      responses:
        default:
          content:
            '*/*':
              schema:
                type: object
      

# --- truncated at 32 KB (240 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ubc/refs/heads/main/openapi/ubc-abacus-dataverse.yaml