Pure Research Portal Web Service (REST)

Elsevier Pure research information system for Aarhus University exposing a web-service / REST API for research outputs, persons, projects and related metadata. The API is gated; unauthenticated requests to the API endpoints return HTTP 401, so access requires an API key/credentials.

OpenAPI Specification

aarhus-pure-rest.yaml Raw ↑
openapi: 3.0.1
info:
  title: Pure API
  description: The Pure API provides a secure and complete web services API for using and managing research information data
    in Pure. The API enables a broad range of use-cases for interacting with research information, from anonymous Open Data
    scenarios to enabling the next generation Pure admin.
  termsOfService: ''
  contact:
    name: ''
    url: ''
    email: [email protected]
  license:
    name: ''
    url: ''
  version: 5.35.3-4
servers:
- url: https://pure.au.dk/ws/api
security:
- api-key: []
paths:
  /activities:
    get:
      tags:
      - activity
      summary: Lists all activities
      description: Lists all activities in the Pure instance. If you need to filter the activities returned, see the POST
        version which supports additional filtering.
      operationId: activity_list
      parameters:
      - name: size
        in: query
        description: Number of returned activities per request.
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: The offset for the returned list. 0 or null value is from the start
        schema:
          type: integer
          format: int32
          default: 0
      - name: order
        in: query
        description: The order of the list, must be a value from /activities/orderings
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityListResult'
    put:
      tags:
      - activity
      summary: Create activity
      description: Create activity
      operationId: activity_create
      requestBody:
        description: The content to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Activity'
        required: true
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activities/allowed-attendance-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed attendance activity person roles
      description: Get a list of allowed roles for persons on attendance activities
      operationId: activity_getAllowedAttendancePersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-categories:
    get:
      tags:
      - activity
      summary: A list of allowed categories
      description: Get a list of allowed categories for activities
      operationId: activity_getAllowedCategories
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-classified-identifier-types:
    get:
      tags:
      - activity
      summary: A list of allowed classified identifier types
      description: Get a list of allowed classified identifier types that can be used for the 'identifiers.type' attribute
        of activities
      operationId: activity_getAllowedClassifiedIdentifierTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-consultancy-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed  consultancy activity person roles
      description: Get a list of allowed roles for persons on consultancy activities
      operationId: activity_getAllowedConsultancyPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-custom-defined-field-values/{propertyName}/classifications:
    get:
      tags:
      - activity
      summary: Get allowed classifications for the custom-defined field associated with the activity
      description: Get allowed classifications for the custom-defined field associated with the activity.
      operationId: activity_getAllowedCustomDefinedFieldClassifications
      parameters:
      - name: propertyName
        in: path
        description: PropertyName for the desired custom-defined field
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
        '400':
          description: Bad request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activities/allowed-degree-of-recognitions:
    get:
      tags:
      - activity
      summary: A list of allowed degree of recognitions
      description: Get a list of allowed degree of recognitions on activities
      operationId: activity_getAllowedDegreeOfRecognitions
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-description-types:
    get:
      tags:
      - activity
      summary: A list of allowed description types
      description: Get a list of allowed types for descriptions on activities
      operationId: activity_getAllowedDescriptionTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-document-licenses:
    get:
      tags:
      - activity
      summary: A list of allowed document licenses
      description: Get a list of allowed license types for documents on activities
      operationId: activity_getAllowedDocumentLicenses
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-document-types:
    get:
      tags:
      - activity
      summary: A list of allowed document types
      description: Get a list of allowed types for documents on activities
      operationId: activity_getAllowedDocumentTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-editorial-work-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed editorial-work activity person roles
      description: Get a list of allowed roles for persons on editorial-work activities
      operationId: activity_getAllowedEditorialWorkPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-examination-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed examination activity person roles
      description: Get a list of allowed roles for persons on examination activities
      operationId: activity_getAllowedExaminationPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-host-visitor-countries:
    get:
      tags:
      - activity
      summary: A list of allowed host visitor countries
      description: Get a list of allowed countries host visitor activities
      operationId: activity_getAllowedHostVisitorCountries
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-host-visitor-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed host-visitor activity person roles
      description: Get a list of allowed roles for persons on host visitor activities
      operationId: activity_getAllowedHostVisitorPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-image-types:
    get:
      tags:
      - activity
      summary: A list of allowed image types
      description: Get a list of allowed image types that can be used for the 'images.type' attribute of activities
      operationId: activity_getAllowedImageTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-indicators:
    get:
      tags:
      - activity
      summary: A list of allowed activity indicators
      description: Get a list of allowed indicators on activities
      operationId: activity_getAllowedIndicators
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-keyword-group-configurations:
    get:
      tags:
      - activity
      summary: A list of keyword group configurations
      description: Get a list of allowed keyword group configurations that can be used when submitting keyword groups.
      operationId: activity_getAllowedKeywordGroupConfigurations
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllowedKeywordGroupConfigurationList'
  /activities/allowed-keyword-group-configurations/{id}/classifications:
    get:
      tags:
      - activity
      summary: A list of allowed classifications for the specified keyword group
      description: Get a list of allowed classifications that can be used when submitting a specified keyword group.
      operationId: activity_getAllowedKeywordGroupConfigurationClassifications
      parameters:
      - name: id
        in: path
        description: Pure id of the keyword group configuration
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-link-types:
    get:
      tags:
      - activity
      summary: A list of allowed link types
      description: Get a list of allowed link types on activities
      operationId: activity_getAllowedLinkTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-locales:
    get:
      tags:
      - activity
      summary: A list of allowed locales in localized strings
      description: Get a list of allowed locales that can be used when submitting localized string entities.
      operationId: activity_getAllowedLocales
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalesList'
  /activities/allowed-membership-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed membership activity person roles
      description: Get a list of allowed roles for persons on membership activities
      operationId: activity_getAllowedMembershipPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-other-activity-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed other activity person roles
      description: Get a list of allowed roles for persons on other activities
      operationId: activity_getAllowedOtherActivityPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-talk-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed talk activity person roles
      description: Get a list of allowed roles for persons on talk activities
      operationId: activity_getAllowedTalkPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-types:
    get:
      tags:
      - activity
      summary: A list of allowed activity types
      description: Get a list of allowed types that can be used for the 'type' attribute of activities
      operationId: activity_getAllowedTypes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-visit-other-person-roles:
    get:
      tags:
      - activity
      summary: A list of allowed visit-other activity person roles
      description: Get a list of allowed roles for persons on visit-other activities
      operationId: activity_getAllowedVisitOtherPersonRoles
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationRefList'
  /activities/allowed-workflow-steps:
    get:
      tags:
      - activity
      summary: A list of allowed workflow steps in localized strings
      description: Get a list of allowed workflow steps.
      operationId: activity_getAllowedWorkflowSteps
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowListResult'
  /activities/disciplines/allowed-discipline-schemes:
    get:
      tags:
      - activity
      summary: A list of allowed discipline schemes
      description: Get a list fo a allowed discipline schemes for activities
      operationId: activity_getAllowedDisciplineSchemes
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisciplinesDisciplineSchemeListResult'
  /activities/disciplines/{discipline-scheme}/allowed-disciplines:
    get:
      tags:
      - activity
      summary: A list of allowed disciplines for a specific discipline scheme
      description: Get a list of a allowed disciplines for specific discipline scheme for activities
      operationId: activity_getAllowedDisciplines
      parameters:
      - name: discipline-scheme
        in: path
        description: Identifier for the discipline scheme for activities
        required: true
        schema:
          type: string
      - name: size
        in: query
        description: Number of returned disciplines per request
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: The offset for the returned list. 0 or null value is from the start
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisciplinesDisciplineListResult'
  /activities/disciplines/{discipline-scheme}/search:
    post:
      tags:
      - activity
      summary: Query operation for disciplines associated with activities
      description: Lists disciplines from the discipline scheme associated with activities in the Pure instance that matches
        the provided query.
      operationId: activity_listDisciplineAssociations
      parameters:
      - name: discipline-scheme
        in: path
        description: Identifier for the discipline scheme
        required: true
        schema:
          type: string
      requestBody:
        description: The query to perform
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisciplinesAssociationsQuery'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisciplinesAssociationListResult'
        '400':
          description: Bad request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activities/file-uploads:
    put:
      tags:
      - activity
      summary: Upload file to a specific activity
      description: Uploads file for the activity
      operationId: activity_fileUploads
      parameters:
      - name: Content-Type
        in: header
        description: Set the mime type for the file
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              type: string
              format: binary
        required: true
      responses:
        default:
          description: default response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadedFile'
            application/xml:
              schema:
                $ref: '#/components/schemas/UploadedFile'
  /activities/orderings:
    get:
      tags:
      - activity
      summary: Lists available orderings
      description: Lists all orderings available to the activities endpoint. These values can be used by the order parameter
        when listing activities.
      operationId: activity_getOrderings
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderingsList'
  /activities/search:
    post:
      tags:
      - activity
      summary: Query operation for activities
      description: Lists activities in the Pure instance that matches the provided query, similar to the GET version, instead
        of using parameters to alter the response, an JSON document is posted with the request. The JSON document contains
        fields for all the parameters available for the GET version, but also additional filtering options.
      operationId: activity_query
      requestBody:
        description: The query to perform
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActivitiesQuery'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityListResult'
        '400':
          description: Bad request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activities/{uuid}:
    get:
      tags:
      - activity
      summary: Get activity
      description: Get activity with specific UUID.
      operationId: activity_get
      parameters:
      - name: uuid
        in: path
        description: UUID of the desired activity
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '301':
          description: The requested content have changed UUID
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - activity
      summary: Update an activity
      description: Update an activity with specific UUID.
      operationId: activity_update
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity to update
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      requestBody:
        description: The content to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Activity'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: Version conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
    delete:
      tags:
      - activity
      summary: Delete activity
      description: Delete activity with specific UUID.
      operationId: activity_delete
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: Conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
  /activities/{uuid}/actions/lock:
    post:
      tags:
      - activity
      summary: Lock the content
      description: Mark the content as external (used when content contains synchronised data). This has no effect on interactions
        with the content through the API.
      operationId: activity_lock
      parameters:
      - name: uuid
        in: path
        description: UUID of the content to lock
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      responses:
        '204':
          description: Content marked as locked
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: Content already locked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
  /activities/{uuid}/actions/unlock:
    post:
      tags:
      - activity
      summary: Unlock the content
      description: Remove the external mark on the content (used when content contains synchronised data). This has no effect
        on interactions with the content through the API.
      operationId: activity_unlock
      parameters:
      - name: uuid
        in: path
        description: UUID of the content to unlock
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      responses:
        '204':
          description: Content marked as unlocked
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: Content already unlocked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
  /activities/{uuid}/dependents:
    get:
      tags:
      - activity
      summary: Lists all dependents to a activity
      description: 'Lists all dependents to a activity with the specified UUID. If the user does not have access to view all
        the dependent content, an authorization error will be thrown. '
      operationId: activity_dependents
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      - name: verbose
        in: query
        description: DEPRECATED - Parameter has no effect.
        deprecated: true
        schema:
          type: boolean
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentRefListResult'
  /activities/{uuid}/disciplines/{discipline-scheme}:
    get:
      tags:
      - activity
      summary: Get disciplines from the discipline scheme associated with the activity
      description: Get disciplines from the discipline scheme associated with the activity with specific UUID.
      operationId: activity_getDisciplineAssociation
      parameters:
      - name: uuid
        in: path
        description: UUID of the desired activity
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      - name: discipline-scheme
        in: path
        description: Identifier for the discipline scheme
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisciplinesAssociation'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - activity
      summary: Update disciplines from the discipline scheme associated with the activity
      description: Update disciplines from the discipline scheme associated with the activity with specific UUID.
      operationId: activity_putDisciplineAssociation
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity to update
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      - name: discipline-scheme
        in: path
        description: Identifier for the discipline scheme
        required: true
        schema:
          type: string
      requestBody:
        description: The disciplines association to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisciplinesAssociation'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisciplinesAssociation'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Resource not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /activities/{uuid}/files/{fileId}:
    get:
      tags:
      - activity
      summary: Get file from the activity
      description: Get file from the activity
      operationId: activity_getFile
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      - name: fileId
        in: path
        description: 'File id '
        required: true
        schema:
          pattern: .+
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            '*/*':
              schema:
                type: string
                format: binary
  /activities/{uuid}/notes:
    get:
      tags:
      - activity
      summary: Lists notes
      description: Lists notes associated with an activity ordered by date (nulls last)
      operationId: activity_listNotes
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity to get notes for
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      - name: size
        in: query
        description: Number of returned notes per request
        schema:
          maximum: 1000
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        description: The offset for the returned list. 0 or null value is from the start
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoteListResult'
        '404':
          description: activity not found
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
      - activity
      summary: Create note
      description: Create note and associate it with an activity
      operationId: activity_createNote
      parameters:
      - name: uuid
        in: path
        description: UUID of the activity to add note to
        required: true
        schema:
          pattern: .+
          type: string
          format: uuid
      requestBody:
        description: The note to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Note'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Note'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'


# --- truncated at 32 KB (1262 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aarhus/refs/heads/main/openapi/aarhus-pure-rest.yaml