iTwin Forms API

Define and submit forms — field-data capture templates used for inspections, checklists, and project-data collection. 29 operations covering form definitions, instances, and attachments.

iTwin Forms 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 Forms, Data Collection, Inspections, Checklists, and Field Capture. The published artifact set on APIs.io includes API documentation, an API reference, and an OpenAPI specification.

OpenAPI Specification

itwin-forms-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: iTwin Forms API
  description: Define and submit form templates and instances used for inspections, checklists, and field data capture.
  version: '1.0'
  contact:
    name: Bentley Developer Relations
    url: https://developer.bentley.com/apis/forms/
  license:
    name: Bentley Developer Portal Terms
    url: https://developer.bentley.com/legal/
servers:
- url: https://api.bentley.com/forms
  description: iTwin Platform Production
externalDocs:
  description: iTwin Forms API Documentation
  url: https://developer.bentley.com/apis/forms/
tags:
- name: Templates
  description: Templates resources for the iTwin Forms API.
- name: Instances
  description: Instances resources for the iTwin Forms API.
- name: Attachments
  description: Attachments resources for the iTwin Forms API.
security:
- OAuth2: []
paths:
  /formDefinitions:
    get:
      tags:
      - Templates
      summary: Get Templates
      operationId: GetTemplates
      responses:
        '200':
          description: List of Templates
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Templates
      summary: Create Template
      operationId: CreateTemplate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Template created
          content:
            application/json:
              schema:
                type: object
  /formDefinitions/{definitionId}:
    parameters:
    - name: definitionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Templates
      summary: Get Templates
      operationId: GetTemplates
      responses:
        '200':
          description: List of Templates
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Templates
      summary: Update Template
      operationId: UpdateTemplate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Template updated
    delete:
      tags:
      - Templates
      summary: Delete Template
      operationId: DeleteTemplate
      responses:
        '204':
          description: Template deleted
  /forms:
    get:
      tags:
      - Instances
      summary: Get Instances
      operationId: GetInstances
      responses:
        '200':
          description: List of Instances
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Instances
      summary: Create Instance
      operationId: CreateInstance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Instance created
          content:
            application/json:
              schema:
                type: object
  /forms/{formId}:
    parameters:
    - name: formId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Instances
      summary: Get Instances
      operationId: GetInstances
      responses:
        '200':
          description: List of Instances
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Instances
      summary: Update Instance
      operationId: UpdateInstance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Instance updated
    delete:
      tags:
      - Instances
      summary: Delete Instance
      operationId: DeleteInstance
      responses:
        '204':
          description: Instance deleted
  /forms/{formId}/attachments:
    parameters:
    - name: formId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Attachments
      summary: Get Attachments
      operationId: GetAttachments
      responses:
        '200':
          description: List of Attachments
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Attachments
      summary: Create Attachment
      operationId: CreateAttachment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Attachment 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