device.restore.execute (Factory reset)
device.restore.execute: Factory reset
What it does
Factory reset (device.restore.execute). Historically equivalent reset flows use this API. This method does not appear in device.capability.list. Do not interchange with Restore default configuration in one step (system.maintenance.restore, restores defaults only, not factory reset). Legacy restoreIotDevice / iotRestoreFactory semantics are documented in OpenAPI cross-references; the capability invoke cfg is only another entry point.
Request URL
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.restore.execute
Minimum permission
The administrator does not need an extra permission on a device they bound. A shared device needs the basic configuration permission. A bound sub-user does not. A sub-account needs Config.
Request parameters
| Name | Type | Required | Default | Legal values | Description |
|---|---|---|---|---|---|
token | String | yes | Access token for an administrator, sub-user, or sub-account | ||
deviceId | String | yes | Device serial number | ||
productId | String | no | Optional. If sent and it does not match the device model → DV2009 | ||
type | Integer | no | 0 | 0 / 1 | Reset level: 0 soft reset (often keeps binding and partial config); 1 hard factory reset. Devices without this semantics ignore it |
For common request fields and signing, see Signing conventions and Common request payload.
Request example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"type": 0
}
}
Response data fields
No business fields. On success, code is "0" and data is {}.
Response example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {}
}
}
Error codes
This API may return the codes below.
| Code | Meaning | Next step |
|---|---|---|
SN1001 | Signature error | Check sign per Development specification |
TK1002 | Token invalid or expired | Refresh accessToken |
OP1002 | Missing required parameter | Add required fields |
OP1003 | Invalid parameter | Match this page’s parameter table |
OP1009 | Permission denied | Check token and device bind/share grants |
OP1013 | Total call limit exceeded | Reduce call rate |
OP1014 | Daily per-interface limit exceeded | See Interface call limits |
DV1007 | Device offline | Wait until the device is online |
See Return codes · OP/SN/TK for the full catalog.
| Code | Meaning | Next step |
|---|---|---|
DV2003 | Property not on device | Use device.capability.list |
DV2004 | Value out of range | Check properties values |
DV2007 | channelId vs scope mismatch | Required for channel scope; omit for device scope |
DV2008 | Mixed device and channel properties | Split the request |
DV2009 | productId mismatch | Omit or set actual model id |
See Capability errors.
