iTwin Storage API

Store and retrieve files inside iTwin containers — folders, files, file versions, and trashed items. Supports upload, copy, lock, and content download operations across 27 endpoints.

OpenAPI Specification

itwin-storage-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: iTwin Storage API
  description: "Store and retrieve files inside iTwin containers \u2014 folders, files, file versions, and trashed items."
  version: '1.0'
  contact:
    name: Bentley Developer Relations
    url: https://developer.bentley.com/apis/storage/
  license:
    name: Bentley Developer Portal Terms
    url: https://developer.bentley.com/legal/
servers:
- url: https://api.bentley.com/storage
  description: iTwin Platform Production
externalDocs:
  description: iTwin Storage API Documentation
  url: https://developer.bentley.com/apis/storage/
tags:
- name: Folders
  description: Folders resources for the iTwin Storage API.
- name: Files
  description: Files resources for the iTwin Storage API.
- name: Versions
  description: Versions resources for the iTwin Storage API.
- name: Content
  description: Content resources for the iTwin Storage API.
- name: Trash
  description: Trash resources for the iTwin Storage API.
security:
- OAuth2: []
paths:
  /folders/{folderId}/folders:
    parameters:
    - name: folderId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Folders
      summary: Get Folders
      operationId: GetFolders
      responses:
        '200':
          description: List of Folders
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Folders
      summary: Create Folder
      operationId: CreateFolder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Folder created
          content:
            application/json:
              schema:
                type: object
  /folders/{folderId}/files:
    parameters:
    - name: folderId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Files
      summary: Get Files
      operationId: GetFiles
      responses:
        '200':
          description: List of Files
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Files
      summary: Create File
      operationId: CreateFile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: File created
          content:
            application/json:
              schema:
                type: object
  /files/{fileId}:
    parameters:
    - name: fileId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Files
      summary: Get Files
      operationId: GetFiles
      responses:
        '200':
          description: List of Files
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Files
      summary: Update File
      operationId: UpdateFile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: File updated
    delete:
      tags:
      - Files
      summary: Delete File
      operationId: DeleteFile
      responses:
        '204':
          description: File deleted
  /files/{fileId}/versions:
    parameters:
    - name: fileId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Versions
      summary: Get Versions
      operationId: GetVersions
      responses:
        '200':
          description: List of Versions
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Versions
      summary: Create Version
      operationId: CreateVersion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Version created
          content:
            application/json:
              schema:
                type: object
  /files/{fileId}/content:
    parameters:
    - name: fileId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Content
      summary: Get Content
      operationId: GetContent
      responses:
        '200':
          description: List of Content
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Content
      summary: Create Content
      operationId: CreateContent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Content created
          content:
            application/json:
              schema:
                type: object
  /recyclebin:
    get:
      tags:
      - Trash
      summary: Get Trash
      operationId: GetTrash
      responses:
        '200':
          description: List of Trash
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Trash
      summary: Create Trash
      operationId: CreateTrash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Trash created
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      description: "iTwin Platform OAuth2 \u2014 Bentley IMS"
      flows:
        authorizationCode:
          authorizationUrl: https://ims.bentley.com/connect/authorize
          tokenUrl: https://ims.bentley.com/connect/token
          scopes:
            itwin-platform: Full access to iTwin Platform APIs
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: array
              items:
                type: object