iTwin Library API

Manage reusable component libraries — catalogs, components, parameters, and component instances. 60 operations span catalog management, search, ingest, and component definition.

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

Tagged areas include Library, Catalog, Components, Reusable Assets, and Parameters. The published artifact set on APIs.io includes API documentation, an API reference, and an OpenAPI specification.

OpenAPI Specification

itwin-library-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: iTwin Library API
  description: "Manage reusable component libraries \u2014 catalogs, components, parameters, and component instances."
  version: '1.0'
  contact:
    name: Bentley Developer Relations
    url: https://developer.bentley.com/apis/library/
  license:
    name: Bentley Developer Portal Terms
    url: https://developer.bentley.com/legal/
servers:
- url: https://api.bentley.com/library
  description: iTwin Platform Production
externalDocs:
  description: iTwin Library API Documentation
  url: https://developer.bentley.com/apis/library/
tags:
- name: Catalog
  description: Catalog resources for the iTwin Library API.
- name: Components
  description: Components resources for the iTwin Library API.
- name: Parameters
  description: Parameters resources for the iTwin Library API.
- name: Categories
  description: Categories resources for the iTwin Library API.
- name: Tags
  description: Tags resources for the iTwin Library API.
security:
- OAuth2: []
paths:
  /catalogs:
    get:
      tags:
      - Catalog
      summary: Get Catalog
      operationId: GetCatalog
      responses:
        '200':
          description: List of Catalog
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Catalog
      summary: Create Catalog
      operationId: CreateCatalog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Catalog created
          content:
            application/json:
              schema:
                type: object
  /catalogs/{catalogId}:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Catalog
      summary: Get Catalog
      operationId: GetCatalog
      responses:
        '200':
          description: List of Catalog
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Catalog
      summary: Update Catalog
      operationId: UpdateCatalog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Catalog updated
    delete:
      tags:
      - Catalog
      summary: Delete Catalog
      operationId: DeleteCatalog
      responses:
        '204':
          description: Catalog deleted
  /catalogs/{catalogId}/components:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Components
      summary: Get Components
      operationId: GetComponents
      responses:
        '200':
          description: List of Components
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Components
      summary: Create Component
      operationId: CreateComponent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Component created
          content:
            application/json:
              schema:
                type: object
  /catalogs/{catalogId}/components/{componentId}:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    - name: componentId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Components
      summary: Get Components
      operationId: GetComponents
      responses:
        '200':
          description: List of Components
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Components
      summary: Update Component
      operationId: UpdateComponent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Component updated
    delete:
      tags:
      - Components
      summary: Delete Component
      operationId: DeleteComponent
      responses:
        '204':
          description: Component deleted
  /catalogs/{catalogId}/components/{componentId}/parameters:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    - name: componentId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Parameters
      summary: Get Parameters
      operationId: GetParameters
      responses:
        '200':
          description: List of Parameters
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Parameters
      summary: Create Parameter
      operationId: CreateParameter
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Parameter created
          content:
            application/json:
              schema:
                type: object
  /catalogs/{catalogId}/categories:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Categories
      summary: Get Categories
      operationId: GetCategories
      responses:
        '200':
          description: List of Categories
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Categories
      summary: Create Categorie
      operationId: CreateCategorie
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Categorie created
          content:
            application/json:
              schema:
                type: object
  /catalogs/{catalogId}/tags:
    parameters:
    - name: catalogId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Tags
      summary: Get Tags
      operationId: GetTags
      responses:
        '200':
          description: List of Tags
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Tags
      summary: Create Tag
      operationId: CreateTag
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Tag 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