HIT Research Portal OAI-PMH

OAI-PMH metadata harvesting endpoint for the HIT Elsevier Pure research information system. Verified live: ListSets returns sets for PURE Persons and PURE publications, exposed via the OpenAIRE CERIF 1.2 profile. Standard OAI-PMH verbs (ListSets, ListRecords, ListMetadataFormats) are supported.

OpenAPI Specification

harbin-institute-of-technology-pure.yaml Raw ↑
openapi: 3.0.3
info:
  title: HIT Research Portal (Pure) API
  description: Subset of the Elsevier Pure web services API exposed by the Harbin Institute of Technology research portal
    (scholar.hit.edu.cn). Covers read access to research outputs (publications) and persons (researchers). Derived faithfully
    from the live Pure OpenAPI document at /ws/api/openapi.json; deeply nested supporting schemas are simplified to generic
    objects. Original Pure API version 5.35.3-4.
  version: 5.35.3-4
  contact:
    name: Harbin Institute of Technology Research Portal
    url: https://scholar.hit.edu.cn/en/
servers:
- url: https://scholar.hit.edu.cn/ws/api
  description: HIT Pure web services API
security:
- apiKey: []
paths:
  /research-outputs:
    get:
      summary: Lists all research outputs
      description: Lists all research outputs in the Pure instance. If you need to filter the research outputs returned, see
        the POST version which supports additional filtering.
      operationId: researchOutput_list
      tags:
      - researchOutput
      parameters:
      - name: size
        in: query
        description: Number of returned research outputs per request.
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: The offset for the returned list. 0 or null value is from the start
        schema:
          type: integer
          format: int32
      - name: order
        in: query
        description: The order of the list, must be a value from /research-outputs/orderings
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchOutputListResult'
    put:
      summary: Create research output
      description: Create research output
      operationId: researchOutput_create
      tags:
      - researchOutput
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchOutput'
        '400':
          description: Bad Request
  /research-outputs/search:
    post:
      summary: Query operation for research outputs
      description: Lists research outputs 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 ad
      operationId: researchOutput_query
      tags:
      - researchOutput
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchOutputListResult'
        '400':
          description: Bad request
  /research-outputs/{uuid}:
    get:
      summary: Get research output
      description: Get research output with specific UUID.
      operationId: researchOutput_get
      tags:
      - researchOutput
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the desired research output
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchOutput'
        '301':
          description: The requested content have changed UUID
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
    put:
      summary: Update research output
      description: Update research output with specific UUID.
      operationId: researchOutput_update
      tags:
      - researchOutput
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the research output to update
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchOutput'
        '400':
          description: Bad Request
        '404':
          description: Resource not found
        '409':
          description: Version conflict
    delete:
      summary: Delete research output
      description: Delete research output with specific UUID.
      operationId: researchOutput_delete
      tags:
      - researchOutput
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the research output
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
        '409':
          description: Conflict
  /research-outputs/allowed-types:
    get:
      summary: A list of allowed research output types
      description: Get a list of allowed types that can be used for the 'type' attribute of research outputs
      operationId: researchOutput_getAllowedTypes
      tags:
      - researchOutput
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
  /research-outputs/orderings:
    get:
      summary: Lists available orderings
      description: Lists all orderings available to the research output endpoint. These values can be used by the order parameter.
      operationId: researchOutput_getOrderings
      tags:
      - researchOutput
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
  /persons:
    get:
      summary: Lists all persons
      description: Lists all persons in the Pure instance. If you need to filter the persons returned, see the POST version
        which supports additional filtering.
      operationId: person_list
      tags:
      - person
      parameters:
      - name: size
        in: query
        description: Number of returned persons per request.
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        description: The offset for the returned list. 0 or null value is from the start
        schema:
          type: integer
          format: int32
      - name: order
        in: query
        description: The order of the list, must be a value from /persons/orderings
        schema:
          type: string
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonListResult'
    put:
      summary: Create person
      description: Create person
      operationId: person_create
      tags:
      - person
      responses:
        '201':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
        '400':
          description: Bad Request
  /persons/search:
    post:
      summary: Query operation for persons
      description: 'Lists persons 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 '
      operationId: person_query
      tags:
      - person
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonListResult'
        '400':
          description: Bad request
  /persons/{uuid}:
    get:
      summary: Get person
      description: Get person with specific UUID.
      operationId: person_get
      tags:
      - person
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the desired person
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
        '301':
          description: The requested content have changed UUID
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                type: object
    put:
      summary: Update person
      description: Update person with specific UUID.
      operationId: person_update
      tags:
      - person
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the person to update
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
        '400':
          description: Bad Request
        '404':
          description: Resource not found
        '409':
          description: Version conflict
    delete:
      summary: Delete person
      description: Delete person with specific UUID.
      operationId: person_delete
      tags:
      - person
      parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the person
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Successful operation
        '404':
          description: Resource not found
        '409':
          description: Conflict
  /persons/allowed-main-research-areas:
    get:
      summary: A list of allowed main research areas
      description: Get a list of allowed main research areas associated with the person
      operationId: person_getAllowedMainResearchAreas
      tags:
      - person
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
  /persons/orderings:
    get:
      summary: Lists available orderings
      description: Lists all orderings available to the person endpoint. These values can be used by the order parameter.
      operationId: person_getOrderings
      tags:
      - person
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: api-key
      description: Pure API key. The HIT instance requires an issued key for API access.
  schemas:
    ResearchOutput:
      type: object
      description: Research output exists in many variations, from written to non-textual form. Templates are available for
        a range of these variations.
      properties:
        pureId:
          type: integer
          format: int64
          description: Pure database ID of the object, prefer using the UUID if it is present on the entity
        uuid:
          type: string
          format: uuid
          description: UUID, this is the primary identity of the entity
        createdBy:
          type: string
          description: Username of creator
        createdDate:
          type: string
          format: date-time
          description: Date and time of creation
        modifiedBy:
          type: string
          description: Username of the user that performed a modification
        modifiedDate:
          type: string
          format: date-time
          description: Date and time of last modification
        portalUrl:
          type: string
          description: URL of the content on the Pure Portal
        prettyUrlIdentifiers:
          type: array
          items:
            type: string
        previousUuids:
          type: array
          items:
            type: string
        version:
          type: string
          description: Used to guard against conflicting updates. For new content this is null, and for existing content the
            current value. The property should never be modified by a client, except in the rare case where th
        title:
          type: object
        subTitle:
          type: object
        type:
          type: object
        category:
          type: object
        peerReview:
          type: boolean
          description: Indicates whether the research output is peer reviewed or not. Query the /research-outputs/allowed-peer-review-configurations
            endpoint for allowed values.
        internationalPeerReview:
          type: boolean
          description: Indicates whether the research output is internationally peer reviewed or not. Query the /research-outputs/allowed-peer-review-configurations
            endpoint for allowed values.
        publicationStatuses:
          type: array
          items:
            type: object
        language:
          type: object
        translatedTitle:
          type: object
        translatedSubTitle:
          type: object
        contributors:
          type: array
          items:
            type: object
        organizations:
          type: array
          items:
            type: object
        externalOrganizations:
          type: array
          items:
            type: object
        totalNumberOfContributors:
          type: integer
          format: int32
          description: The total number of authors from author collaborations.
        managingOrganization:
          type: object
        submissionYear:
          type: integer
          format: int32
          description: The submission year of the research output.
        mainResearchArea:
          type: object
        electronicVersions:
          type: array
          items:
            type: object
        additionalFiles:
          type: array
          items:
            type: object
        links:
          type: array
          items:
            type: object
        articleProcessingCharge:
          type: object
        keywordGroups:
          type: array
          items:
            type: object
        bibliographicalNote:
          type: object
        descriptions:
          type: array
          items:
            type: object
        visibility:
          type: object
        workflow:
          type: object
        identifiers:
          type: array
          items:
            type: object
        prizes:
          type: array
          items:
            type: object
        pressMedias:
          type: array
          items:
            type: object
        dataSets:
          type: array
          items:
            type: object
        studentThesis:
          type: array
          items:
            type: object
        impacts:
          type: array
          items:
            type: object
        activities:
          type: array
          items:
            type: object
        equipment:
          type: array
          items:
            type: object
        projects:
          type: array
          items:
            type: object
        researchOutputs:
          type: array
          items:
            type: object
        customDefinedFields:
          type: object
        images:
          type: array
          items:
            type: object
        fundingText:
          type: object
        fundingDetails:
          type: array
          items:
            type: object
        abstract:
          type: object
        systemName:
          type: string
          description: The content system name
        typeDiscriminator:
          type: string
    Person:
      type: object
      description: An academic professional, student, or other individual attached to the institution.
      properties:
        pureId:
          type: integer
          format: int64
          description: Pure database ID of the object, prefer using the UUID if it is present on the entity
        uuid:
          type: string
          format: uuid
          description: UUID, this is the primary identity of the entity
        createdBy:
          type: string
          description: Username of creator
        createdDate:
          type: string
          format: date-time
          description: Date and time of creation
        modifiedBy:
          type: string
          description: Username of the user that performed a modification
        modifiedDate:
          type: string
          format: date-time
          description: Date and time of last modification
        portalUrl:
          type: string
          description: URL of the content on the Pure Portal
        prettyUrlIdentifiers:
          type: array
          items:
            type: string
        previousUuids:
          type: array
          items:
            type: string
        version:
          type: string
          description: Used to guard against conflicting updates. For new content this is null, and for existing content the
            current value. The property should never be modified by a client, except in the rare case where th
        personExpertise:
          type: object
        startDateAsResearcher:
          type: string
          format: date
          description: Date that the person entered into the academic profession.
        affiliationNote:
          type: string
          description: Notes regarding affiliations of the person.
        dateOfBirth:
          type: string
          format: date
          description: The person's date of birth.
        employeeStartDate:
          type: string
          format: date
          description: Date of the persons first day of the institution.
        employeeEndDate:
          type: string
          format: date
          description: Date of the persons last day of the institution.
        externalPositions:
          type: array
          items:
            type: object
        keywordGroups:
          type: array
          items:
            type: object
        leavesOfAbsence:
          type: array
          items:
            type: object
        links:
          type: array
          items:
            type: object
        name:
          type: object
        names:
          type: array
          items:
            type: object
        nationality:
          type: object
        orcid:
          type: string
          description: orcid of the person.
        orcidAuthenticated:
          type: boolean
          description: Authentication status of the orcid associated with the person.
        cienciaId:
          type: string
          description: Ciencia ID of the person.
        cienciaIdAuthenticated:
          type: boolean
          description: Authentication status of the Ciencia ID associated with the person.
        honoraryStaffOrganizationAssociations:
          type: array
          items:
            type: object
        staffOrganizationAssociations:
          type: array
          items:
            type: object
        studentOrganizationAssociations:
          type: array
          items:
            type: object
        visitingScholarOrganizationAssociations:
          type: array
          items:
            type: object
        academicQualifications:
          type: array
          items:
            type: object
        profilePhotos:
          type: array
          items:
            type: object
        documents:
          type: array
          items:
            type: object
        privateAddress:
          type: object
        professionalQualifications:
          type: array
          items:
            type: object
        selectedForProfileRefinementService:
          type: boolean
          description: If the person has been profiled.
        profileInformation:
          type: array
          items:
            type: object
        retirementDate:
          type: string
          format: date
          description: Date of retirement for the person
        gender:
          type: object
        titles:
          type: array
          items:
            type: object
        visibility:
          type: object
        willingToTakePhdStudents:
          type: boolean
          description: Boolean to define if the Person is willing to take on Phd Students.
        willingToTakePhdStudentsDescription:
          type: string
          description: Field to describe or list phd projects that the person will participate in.
        identifiers:
          type: array
          items:
            type: object
        user:
          type: object
        customDefinedFields:
          type: object
        workflow:
          type: object
        mainResearchArea:
          type: object
        profiled:
          type: boolean
        systemName:
          type: string
          description: The content system name
    ResearchOutputListResult:
      type: object
      properties:
        count:
          type: integer
          format: int64
          description: Total number of items.
        pageInformation:
          type: object
          description: Pagination info.
        items:
          type: array
          items:
            $ref: '#/components/schemas/ResearchOutput'
    PersonListResult:
      type: object
      properties:
        count:
          type: integer
          format: int64
          description: Total number of items.
        pageInformation:
          type: object
          description: Pagination info.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Person'