Updates a Thing Specification Language (TSL) feature of a specified product. You can also updates the extended information about the feature.


  • If a product is published, you must call the CancelReleaseProduct operation to unpublish the product before you call this operation.
  • When you call this operation, you can use the json-schema library to verify the input parameters in ThingModelJson. For more information, see Data structure of ThingModelJson.
  • You can call this operation to update only one feature. TSL features include properties, services, and events.
  • Each Alibaba Cloud account can run a maximum of 5 queries per second (QPS).
    Note RAM users of an Alibaba Cloud account share the quota of the account.


OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates a sample code of the operation for different SDKs.

Request parameters

Parameter Type Required Example Description
Action String Yes UpdateThingModel

The operation that you want to perform. Set the value to UpdateThingModel.

ProductKey String Yes a1BwAGV****

The ProductKey of the product.

You can view the ProductKey on the Product Details page of the IoT Platform console. You can also obtain the ProductKey by calling the QueryProductList operation.

IotInstanceId String No iot-cn-0pp1n8t****

The ID of the instance.

You do not need to specify this parameter.

Identifier String No Temperature

The identifier of the feature.

To update a feature, you must specify the identifier of the feature. You can call the GetThingModelTsl operation and view the identifier in the TslStr response parameter.

ThingModelJson String No { "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1Jw4i****", "required": false, "customFlag": true, "name": "SIM card type } ] }

The updated details of the feature.

Note If you specify the Identifier parameter, you can specify only one feature in the ThingModelJson parameter. If you do not specify the Identifier parameter, you can specify a maximum of 50 features in the ThingModelJson parameter.

For more information about how to specify this parameter, see Data structure of ThingModelJson.

FunctionBlockId String No BatteryModule

The identifier of the custom TSL module. Each identifier is unique in a product.

If you do not specify this parameter or the FunctionBlockName parameter, the system updates the features of the default module.

FunctionBlockName String No Battery_Module

The name of the custom module. The name must be 4 to 30 characters in length, and can contain letters, digits, and underscores (_).

  • If you do not specify this parameter or the FunctionBlockId parameter, the system updates the features of the default module.
  • If you specify this parameter, the parameter must be used in combination with the FunctionBlockId parameter. You can modify the name of the specified custom module. The name corresponds to the value of the FunctionBlockId parameter.
Note You cannot modify the name of the default module.

In addition to the preceding operation-specific request parameters, you must specify common request parameters when you call this operation. For more information about common request parameters, see Common parameters.

Response parameters

Parameter Type Example Description
Code String iot.system.SystemException

The error code returned if the call fails. For more information, see Error codes.

ErrorMessage String A system exception occurred.

The error message returned if the call fails.

RequestId String E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

The ID of the request.

Success Boolean true

Indicates whether the call was successful.

  • true: The call was successful.
  • false: The call failed.


Sample requests

&ThingModelJson={"properties":[{"identifier": "SimCardType","dataSpecs": {"max": "1", "dataType": "INT","unit": "mmHg","min": "0","step": "1"},"std": false,"custom": true,"dataType": "INT","rwFlag": "READ_ONLY","productKey": "a1Jw4id****","required": false,"customFlag": true, "name": "SIM card type"}]}
&<Common request parameters>

Sample success responses

XML format


JSON format

  "RequestId": "5573D217-8E3E-47AD-9331-2083B88E64B2",
  "Success": true

Error codes

For a list of error codes, visit the API Error Center.