Figshare REST API (Open Access Repository)

The Open Access Te Herenga Waka—Victoria University of Wellington repository is powered by Figshare, whose public v2 REST API exposes articles, collections, and project metadata. University outputs are discoverable through the shared Figshare API surface; the documented, public endpoint is operated by Figshare on the university's behalf.

OpenAPI Specification

victoria-university-of-wellington-figshare-rest.yaml Raw ↑
openapi: 3.0.3
info:
  title: Figshare API (Open Access Repository)
  description: >-
    Public, read-only subset of the Figshare v2 REST API, which powers the
    Open Access Te Herenga Waka—Victoria University of Wellington research
    repository. Only the public, unauthenticated endpoints and objects that the
    real Figshare OpenAPI description supports are included here. The full,
    authoritative specification is published by Figshare at
    https://docs.figshare.com/.
  version: "2.0"
  contact:
    name: Figshare Support
    url: https://support.figshare.com/support/home
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.figshare.com/v2
    description: Figshare public API v2
paths:
  /articles:
    get:
      operationId: articles_list
      summary: List public articles
      description: >-
        Returns a paginated list of public articles. For the Victoria
        University of Wellington repository, results can be scoped using the
        institution / group filtering parameters supported by Figshare.
      parameters:
        - name: page
          in: query
          schema:
            type: integer
            minimum: 1
        - name: page_size
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000
        - name: offset
          in: query
          schema:
            type: integer
            minimum: 0
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000
        - name: order
          in: query
          schema:
            type: string
            enum: [published_date, modified_date, views, downloads, shares, cites]
        - name: order_direction
          in: query
          schema:
            type: string
            enum: [asc, desc]
      responses:
        "200":
          description: A list of public articles
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Article"
  /articles/search:
    post:
      operationId: articles_search
      summary: Search public articles
      description: Returns a list of public articles filtered by the search parameters.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ArticleSearch"
      responses:
        "200":
          description: A list of public articles matching the search
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Article"
  /articles/{article_id}:
    get:
      operationId: article_details
      summary: View an article
      parameters:
        - name: article_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Full article details
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArticleComplete"
        "404":
          description: Article not found
  /articles/{article_id}/versions:
    get:
      operationId: article_versions
      summary: List article versions
      parameters:
        - name: article_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: List of versions for the article
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ArticleVersion"
  /articles/{article_id}/versions/{version_id}:
    get:
      operationId: article_version_details
      summary: View a specific article version
      parameters:
        - name: article_id
          in: path
          required: true
          schema:
            type: integer
        - name: version_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Full article details for the requested version
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArticleComplete"
  /articles/{article_id}/files:
    get:
      operationId: article_files
      summary: List files for an article
      parameters:
        - name: article_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: List of files for the article
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ArticleFile"
  /articles/{article_id}/files/{file_id}:
    get:
      operationId: article_file_details
      summary: View a single article file
      parameters:
        - name: article_id
          in: path
          required: true
          schema:
            type: integer
        - name: file_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: File details
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArticleFile"
components:
  schemas:
    Article:
      type: object
      description: Public article listing entry.
      properties:
        id:
          type: integer
        title:
          type: string
        doi:
          type: string
        handle:
          type: string
        url:
          type: string
          format: uri
        published_date:
          type: string
          format: date-time
          nullable: true
        modified_date:
          type: string
          format: date-time
          nullable: true
        created_date:
          type: string
          format: date-time
          nullable: true
        description:
          type: string
        is_public:
          type: boolean
        views:
          type: integer
        downloads:
          type: integer
        shares:
          type: integer
        cites:
          type: integer
        size:
          type: integer
          format: int64
        version:
          type: integer
    ArticleComplete:
      allOf:
        - $ref: "#/components/schemas/Article"
        - type: object
          description: Full article details including authors, files and categories.
          properties:
            resource_doi:
              type: string
              nullable: true
            resource_title:
              type: string
              nullable: true
            item_type:
              type: integer
            license:
              $ref: "#/components/schemas/License"
            authors:
              type: array
              items:
                $ref: "#/components/schemas/Author"
            files:
              type: array
              items:
                $ref: "#/components/schemas/ArticleFile"
            categories:
              type: array
              items:
                $ref: "#/components/schemas/Category"
            tags:
              type: array
              items:
                type: string
            references:
              type: array
              items:
                type: string
            custom_fields:
              type: object
              additionalProperties: true
    ArticleVersion:
      type: object
      properties:
        version:
          type: integer
        url:
          type: string
          format: uri
    Author:
      type: object
      properties:
        id:
          type: integer
        full_name:
          type: string
        is_active:
          type: boolean
        url_name:
          type: string
        orcid_id:
          type: string
          nullable: true
    ArticleFile:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        size:
          type: integer
          format: int64
        computed_md5:
          type: string
          nullable: true
        download_url:
          type: string
          format: uri
        is_link_only:
          type: boolean
    Category:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        parent_id:
          type: integer
          nullable: true
    License:
      type: object
      properties:
        value:
          type: integer
        name:
          type: string
        url:
          type: string
          format: uri
    ArticleSearch:
      type: object
      properties:
        search_for:
          type: string
        doi:
          type: string
        handle:
          type: string
        institution:
          type: integer
        group:
          type: integer
        published_since:
          type: string
          format: date
        modified_since:
          type: string
          format: date
        order:
          type: string
          enum: [published_date, modified_date, views, downloads, shares, cites]
        order_direction:
          type: string
          enum: [asc, desc]
        page:
          type: integer
        page_size:
          type: integer