iTwin Library API

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

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