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.

iTwin Storage API is one of 32 APIs that Bentley Systems publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Storage, Files, Folders, Uploads, and Versions. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, and 1 Naftiko capability spec.

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