iTwin Insights API (Reporting)

Build custom reports and dashboards on top of iModel data. Define mappings, groups, properties, and ODATA endpoints to extract structured data for Power BI, Tableau, and custom analytics. 62 operations span reports, mappings, extractions, calculated properties, and ODATA.

iTwin Insights API (Reporting) 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 Insights, Reporting, Dashboards, ODATA, and Analytics. The published artifact set on APIs.io includes API documentation, an API reference, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

itwin-insights-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: iTwin Insights API
  description: "Build custom reports and dashboards on iModel data \u2014 mappings, groups, properties, and OData endpoints."
  version: '1.0'
  contact:
    name: Bentley Developer Relations
    url: https://developer.bentley.com/apis/insights/
  license:
    name: Bentley Developer Portal Terms
    url: https://developer.bentley.com/legal/
servers:
- url: https://api.bentley.com/insights
  description: iTwin Platform Production
externalDocs:
  description: iTwin Insights API Documentation
  url: https://developer.bentley.com/apis/insights/
tags:
- name: Reports
  description: Reports resources for the iTwin Insights API.
- name: Mappings
  description: Mappings resources for the iTwin Insights API.
- name: ODATA
  description: ODATA resources for the iTwin Insights API.
security:
- OAuth2: []
paths:
  /reporting/reports:
    get:
      tags:
      - Reports
      summary: Get Reports
      operationId: GetReports
      responses:
        '200':
          description: List of Reports
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Reports
      summary: Create Report
      operationId: CreateReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Report created
          content:
            application/json:
              schema:
                type: object
  /reporting/reports/{reportId}:
    parameters:
    - name: reportId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Reports
      summary: Get Reports
      operationId: GetReports
      responses:
        '200':
          description: List of Reports
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Reports
      summary: Update Report
      operationId: UpdateReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Report updated
    delete:
      tags:
      - Reports
      summary: Delete Report
      operationId: DeleteReport
      responses:
        '204':
          description: Report deleted
  /reporting/reports/{reportId}/datasources:
    parameters:
    - name: reportId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Reports
      summary: Get Reports
      operationId: GetReports
      responses:
        '200':
          description: List of Reports
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Reports
      summary: Create Report
      operationId: CreateReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Report created
          content:
            application/json:
              schema:
                type: object
  /reporting/mappings:
    get:
      tags:
      - Mappings
      summary: Get Mappings
      operationId: GetMappings
      responses:
        '200':
          description: List of Mappings
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Mappings
      summary: Create Mapping
      operationId: CreateMapping
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Mapping created
          content:
            application/json:
              schema:
                type: object
  /reporting/mappings/{mappingId}:
    parameters:
    - name: mappingId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Mappings
      summary: Get Mappings
      operationId: GetMappings
      responses:
        '200':
          description: List of Mappings
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - Mappings
      summary: Update Mapping
      operationId: UpdateMapping
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Mapping updated
    delete:
      tags:
      - Mappings
      summary: Delete Mapping
      operationId: DeleteMapping
      responses:
        '204':
          description: Mapping deleted
  /reporting/mappings/{mappingId}/groups:
    parameters:
    - name: mappingId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - Mappings
      summary: Get Mappings
      operationId: GetMappings
      responses:
        '200':
          description: List of Mappings
          content:
            application/json:
              schema:
                type: object
    post:
      tags:
      - Mappings
      summary: Create Mapping
      operationId: CreateMapping
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Mapping created
          content:
            application/json:
              schema:
                type: object
  /reporting/odata/{reportId}:
    parameters:
    - name: reportId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    get:
      tags:
      - ODATA
      summary: Get ODATA
      operationId: GetODATA
      responses:
        '200':
          description: List of ODATA
          content:
            application/json:
              schema:
                type: object
    patch:
      tags:
      - ODATA
      summary: Update ODATA
      operationId: UpdateODATA
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: ODATA updated
    delete:
      tags:
      - ODATA
      summary: Delete ODATA
      operationId: DeleteODATA
      responses:
        '204':
          description: ODATA deleted
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