openapi: 3.0.3 info: title: Cumulocity Digital Twin Manager API version: 2025.1 description: | Model real-world assets and their hierarchies with strongly-typed asset models, custom properties, and computed smart-function values. Asset instances reference the underlying Cumulocity managed objects so measurements and alarms automatically roll up. servers: - url: https://{tenant}.cumulocity.com variables: tenant: default: example security: - basicAuth: [] - bearerAuth: [] tags: - name: Asset Models - name: Asset Instances - name: Custom Properties - name: Smart Functions paths: /service/dtm/asset-models: get: tags: [Asset Models] summary: List Asset Models operationId: listAssetModels responses: '200': description: A collection of asset models. post: tags: [Asset Models] summary: Create an Asset Model operationId: createAssetModel requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetModel' responses: '201': description: Asset model created. /service/dtm/asset-models/{id}: parameters: - name: id in: path required: true schema: {type: string} get: tags: [Asset Models] summary: Retrieve an Asset Model operationId: getAssetModel responses: '200': description: A single asset model. put: tags: [Asset Models] summary: Update an Asset Model operationId: updateAssetModel requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetModel' responses: '200': description: Asset model updated. delete: tags: [Asset Models] summary: Delete an Asset Model operationId: deleteAssetModel responses: '204': description: Asset model deleted. /service/dtm/asset-instances: get: tags: [Asset Instances] summary: List Asset Instances operationId: listAssetInstances parameters: - name: model in: query schema: {type: string} responses: '200': description: A collection of asset instances. post: tags: [Asset Instances] summary: Create an Asset Instance operationId: createAssetInstance requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetInstance' responses: '201': description: Asset instance created. /service/dtm/asset-instances/{id}: parameters: - name: id in: path required: true schema: {type: string} get: tags: [Asset Instances] summary: Retrieve an Asset Instance operationId: getAssetInstance responses: '200': description: A single asset instance. put: tags: [Asset Instances] summary: Update an Asset Instance operationId: updateAssetInstance requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetInstance' responses: '200': description: Asset instance updated. delete: tags: [Asset Instances] summary: Delete an Asset Instance operationId: deleteAssetInstance responses: '204': description: Asset instance deleted. components: securitySchemes: basicAuth: type: http scheme: basic bearerAuth: type: http scheme: bearer bearerFormat: JWT schemas: AssetModel: type: object properties: id: {type: string} self: {type: string, format: uri} name: {type: string} description: {type: string} icon: {type: string} properties: type: array items: type: object properties: key: {type: string} label: {type: string} type: type: string enum: [TEXT, NUMBER, BOOLEAN, DATE, ENUM, REFERENCE] required: {type: boolean} default: {} allowedSubtypes: type: array items: {type: string} smartFunctions: type: array items: type: object properties: name: {type: string} expression: {type: string} AssetInstance: type: object properties: id: {type: string} self: {type: string, format: uri} modelId: {type: string} name: {type: string} managedObjectId: {type: string} parent: {type: string} properties: type: object additionalProperties: true children: type: array items: {type: string}