bonndata Dataverse Native REST API

Public REST search and data-access API for bonndata, the University of Bonn institutional research data repository running on Dataverse. The search endpoint returns JSON listings of published datasets and files (verified live, 362+ indexed records). Follows the standard Dataverse Native API specification.

OpenAPI Specification

university-of-bonn-bonndata-native-api.yaml Raw ↑
openapi: 3.0.3
info:
  title: bonndata Dataverse Native REST API (Public Read Subset)
  description: >-
    Public, read-only subset of the Dataverse Native REST API as exposed by
    bonndata, the University of Bonn institutional research data repository
    (https://bonndata.uni-bonn.de). The paths, parameters, and operationIds in
    this document are taken faithfully from the live machine-readable OpenAPI
    document published by the server at https://bonndata.uni-bonn.de/openapi
    (Dataverse software version 6.7.1). This subset includes only the endpoints
    that are publicly accessible without an API token and were verified live on
    2026-06-03 (search, dataset retrieval, dataset versions, metadata export,
    repository info, and dataset metrics). Response schemas were modeled from
    the actual JSON payloads returned by the live service. The full upstream
    Dataverse API (425 paths, many requiring authentication) is documented at
    the Native API guide referenced below.
  version: 6.7.1
  contact:
    name: bonndata Research Data Repository, University of Bonn
    email: [email protected]
    url: https://bonndata.uni-bonn.de/
  license:
    name: Apache License 2.0
    url: https://github.com/IQSS/dataverse/blob/develop/LICENSE.md
externalDocs:
  description: Dataverse Native API guide
  url: https://guides.dataverse.org/en/latest/api/native-api.html
servers:
  - url: https://bonndata.uni-bonn.de/api
    description: bonndata Dataverse Native API base (verified live, 362 indexed datasets)
tags:
  - name: Search
    description: Search the published catalog of datasets, dataverses, and files.
  - name: Datasets
    description: Retrieve published datasets, their versions, and export metadata.
  - name: Info
    description: Repository version and software information.
  - name: Metrics
    description: Aggregate repository metrics.
paths:
  /search:
    get:
      tags: [Search]
      summary: Search published content
      description: >-
        Search across published datasets, dataverses (collections), and files.
        Verified live returning 362 indexed datasets for q=*&type=dataset.
      operationId: Search_search
      parameters:
        - name: q
          in: query
          description: Search query string (use * to match all).
          schema: { type: string }
        - name: type
          in: query
          description: Restrict results to a content type.
          schema:
            type: array
            items:
              type: string
              enum: [dataset, dataverse, file]
        - name: subtree
          in: query
          description: Restrict the search to one or more dataverse aliases.
          schema:
            type: array
            items: { type: string }
        - name: sort
          in: query
          description: Field to sort on (e.g. name, date).
          schema: { type: string }
        - name: order
          in: query
          description: Sort order.
          schema:
            type: string
            enum: [asc, desc]
        - name: per_page
          in: query
          description: Number of results per page (max 1000).
          schema: { type: integer, default: 10 }
        - name: start
          in: query
          description: Zero-based offset of the first result to return.
          schema: { type: integer, default: 0 }
        - name: fq
          in: query
          description: Filter query(ies) to narrow results.
          schema:
            type: array
            items: { type: string }
        - name: show_relevance
          in: query
          schema: { type: boolean }
        - name: show_facets
          in: query
          schema: { type: boolean }
        - name: show_entity_ids
          in: query
          schema: { type: boolean }
        - name: show_type_counts
          in: query
          schema: { type: boolean }
        - name: geo_point
          in: query
          description: Latitude,longitude point for geospatial search.
          schema: { type: string }
        - name: geo_radius
          in: query
          description: Radius in kilometers for geospatial search.
          schema: { type: string }
      responses:
        '200':
          description: Search results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
  /search/services:
    get:
      tags: [Search]
      summary: List available search engines
      operationId: Search_getSearchEngines
      responses:
        '200':
          description: Available search services.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEnvelope'
  /info/version:
    get:
      tags: [Info]
      summary: Get version and build information
      operationId: Info_getInfo
      responses:
        '200':
          description: Dataverse software version and build.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionResponse'
  /info/metrics/datasets:
    get:
      tags: [Metrics]
      summary: Count of published datasets
      operationId: Metrics_getDatasetsAllTime
      parameters:
        - name: dataLocation
          in: query
          schema: { type: string }
        - name: parentAlias
          in: query
          schema: { type: string }
      responses:
        '200':
          description: All-time count of published datasets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountResponse'
  /datasets/{id}:
    get:
      tags: [Datasets]
      summary: Get a dataset
      description: >-
        Retrieve a published dataset by its numeric database id, or by
        persistent identifier using the literal path segment ":persistentId"
        together with the persistentId query parameter (e.g.
        /datasets/:persistentId/?persistentId=doi:10.60507/FK2/BBP6GG).
      operationId: Datasets_getDataset
      parameters:
        - name: id
          in: path
          required: true
          description: Numeric dataset id, or the literal ":persistentId".
          schema: { type: string }
        - name: persistentId
          in: query
          description: Persistent identifier (DOI/Handle) when id is ":persistentId".
          schema: { type: string }
        - name: returnOwners
          in: query
          schema: { type: boolean }
      responses:
        '200':
          description: The dataset and its latest published version.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEnvelope'
  /datasets/{id}/versions:
    get:
      tags: [Datasets]
      summary: List dataset versions
      operationId: Datasets_listVersions
      parameters:
        - name: id
          in: path
          required: true
          schema: { type: string }
        - name: excludeFiles
          in: query
          schema: { type: boolean }
        - name: excludeMetadataBlocks
          in: query
          schema: { type: boolean }
        - name: limit
          in: query
          schema: { type: integer }
        - name: offset
          in: query
          schema: { type: integer }
      responses:
        '200':
          description: List of dataset versions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiEnvelope'
  /datasets/export:
    get:
      tags: [Datasets]
      summary: Export dataset metadata
      description: >-
        Export the metadata of a published dataset in a chosen format
        (e.g. Datacite, dataverse_json, oai_dc, schema.org, ddi).
      operationId: Datasets_exportDataset
      parameters:
        - name: persistentId
          in: query
          description: Persistent identifier (DOI/Handle) of the dataset.
          schema: { type: string }
        - name: exporter
          in: query
          description: Export format name.
          schema:
            type: string
            example: schema.org
        - name: version
          in: query
          schema: { type: string }
      responses:
        '200':
          description: Exported metadata in the requested format.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
            application/xml:
              schema:
                type: string
components:
  schemas:
    ApiEnvelope:
      type: object
      description: Standard Dataverse API response envelope.
      properties:
        status:
          type: string
          enum: [OK, ERROR]
        data:
          type: object
          additionalProperties: true
        message:
          type: string
      required: [status]
    VersionResponse:
      type: object
      properties:
        status:
          type: string
          example: OK
        data:
          type: object
          properties:
            version:
              type: string
              example: 6.7.1
            build:
              type: string
              example: 1955-8e18f64
          required: [version]
      required: [status, data]
    CountResponse:
      type: object
      properties:
        status:
          type: string
          example: OK
        data:
          type: object
          properties:
            count:
              type: integer
              example: 362
          required: [count]
      required: [status, data]
    SearchResponse:
      type: object
      properties:
        status:
          type: string
          example: OK
        data:
          $ref: '#/components/schemas/SearchData'
      required: [status, data]
    SearchData:
      type: object
      properties:
        q:
          type: string
          example: '*'
        total_count:
          type: integer
          example: 362
        start:
          type: integer
          example: 0
        spelling_alternatives:
          type: object
          additionalProperties: true
        count_in_response:
          type: integer
          example: 2
        items:
          type: array
          items:
            $ref: '#/components/schemas/SearchItem'
      required: [total_count, start, items]
    SearchItem:
      type: object
      description: A single search hit. Fields shown are those returned for datasets.
      properties:
        name:
          type: string
        type:
          type: string
          enum: [dataset, dataverse, file]
        url:
          type: string
          format: uri
        global_id:
          type: string
          example: doi:10.60507/FK2/BBP6GG
        description:
          type: string
        published_at:
          type: string
          format: date-time
        publisher:
          type: string
        citationHtml:
          type: string
        identifier_of_dataverse:
          type: string
        name_of_dataverse:
          type: string
        citation:
          type: string
        storageIdentifier:
          type: string
        subjects:
          type: array
          items: { type: string }
        fileCount:
          type: integer
        versionId:
          type: integer
        versionState:
          type: string
          example: RELEASED
        majorVersion:
          type: integer
        minorVersion:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        publicationStatuses:
          type: array
          items: { type: string }
        contacts:
          type: array
          items:
            type: object
            additionalProperties: true
        authors:
          type: array
          items: { type: string }
        geographicCoverage:
          type: array
          items: { type: string }
      required: [name, type, url]