Skip to contentSkip to navigationSkip to topbar
On this page

Device Resource


(warning)

Microvisor Public Beta

Microvisor is in a pre-release phase and the information contained in this document is subject to change. Some features referenced below may not be fully available until Microvisor's General Availability (GA) release.

A Device instance represents a single Microvisor-empowered IoT device. For clarity, device (no cap) refers to physical hardware. Device (initial cap) refers to a Device API resource.

Device resources are accessed at this endpoint:

https://microvisor.twilio.com/v1/Devices

Make a GET request to the endpoint to receive a list (in JSON) of all Device resources.

Every Device instance can be referenced in the API either by its unique SID or a user-defined unique name:

1
https://microvisor.twilio.com/v1/Devices/{sid}
2
https://microvisor.twilio.com/v1/Devices/{uniqueName}

The Device instance representing a real device is used to deploy uploaded code to that device.

(information)

Device Properties

device-properties page anchor
Property nameTypeRequiredDescriptionChild properties
sidSID<UV>

Optional

Not PII

A 34-character string that uniquely identifies this Device.

Pattern: ^UV[0-9a-fA-F]{32}$Min length: 34Max length: 34

unique_namestring

Optional

A developer-defined string that uniquely identifies the Device. This value must be unique for all Devices on this Account. The unique_name value may be used as an alternative to the sid in the URL path to address the resource.


account_sidSID<AC>

Optional

The unique SID identifier of the Account.

Pattern: ^AC[0-9a-fA-F]{32}$Min length: 34Max length: 34

appobject

Optional

Information about the target App and the App reported by this Device. Contains the properties target_sid, date_targeted, update_status (one of up-to-date, pending and error), update_error_code, reported_sid and date_reported.


loggingobject

Optional

Object specifying whether application logging is enabled for this Device. Contains the properties enabled and date_expires.


date_createdstring<date-time>

Optional

The date that this Device was created, given in ISO 8601(link takes you to an external page) format.


date_updatedstring<date-time>

Optional

The date that this Device was last updated, given in ISO 8601(link takes you to an external page) format.


urlstring<uri>

Optional

The URL of this resource.


linksobject<uri-map>

Optional

The absolute URLs of related resources.


The table below describes the available status values of a Device instance:

StatusDescription
up-to-dateThe device has received with the most recent application code deployed to it
scheduledApplication code has been marked for deployment but has yet to be installed on the device
errorApplication code marked for deployment could not be downloaded for some reason

GET https://microvisor.twilio.com/v1/Devices/{Sid}

Path parameters

path-parameters page anchor
Property nameTypeRequiredPIIDescription
Sidstringrequired

A 34-character string that uniquely identifies this Device.

Request a single Device resourceLink to code sample: Request a single Device resource
1
curl -X GET "https://microvisor.twilio.com/v1/Devices/UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
2
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Output

1
{
2
"sid": "UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
3
"unique_name": "This is my device; there are many like it.",
4
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5
"app": {
6
"target_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
"target_hash": null,
8
"date_targeted": "2021-01-01T12:34:56Z",
9
"update_status": "up-to-date",
10
"update_error_code": 0,
11
"reported_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
12
"date_reported": "2021-01-01T12:34:56Z"
13
},
14
"logging": {
15
"enabled": true,
16
"date_expires": "2021-01-01T12:34:56Z"
17
},
18
"date_created": "2021-01-01T12:34:56Z",
19
"date_updated": "2021-01-01T12:34:56Z",
20
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
"links": {
22
"device_configs": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs",
23
"device_secrets": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Secrets"
24
}
25
}

GET https://microvisor.twilio.com/v1/Devices

Property nameTypeRequiredPIIDescription
PageSizeinteger

Optional

How many resources to return in each list page. The default is 50, and the maximum is 1000.

Minimum: 1Maximum: 1000

Pageinteger

Optional

The page index. This value is simply for client state.

Minimum: 0

PageTokenstring

Optional

The page token. This is provided by the API.

1
curl -X GET "https://microvisor.twilio.com/v1/Devices?PageSize=20" \
2
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Output

1
{
2
"devices": [],
3
"meta": {
4
"page": 0,
5
"page_size": 50,
6
"first_page_url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=0",
7
"previous_page_url": null,
8
"url": "https://microvisor.twilio.com/v1/Devices?PageSize=50&Page=0",
9
"next_page_url": null,
10
"key": "devices"
11
}
12
}

POST https://microvisor.twilio.com/v1/Devices/{Sid}

Property nameTypeRequiredPIIDescription
Sidstringrequired

A 34-character string that uniquely identifies this Device.

Encoding type:application/x-www-form-urlencoded
SchemaExample
Property nameTypeRequiredDescriptionChild properties
UniqueNamestring

Optional

A unique and addressable name to be assigned to this Device by the developer. It may be used in place of the Device SID.


TargetAppstring

Optional

The SID or unique name of the App to be targeted to the Device.


LoggingEnabledboolean

Optional

A Boolean flag specifying whether to enable application logging. Logs will be enabled or extended for 24 hours.


RestartAppboolean

Optional

Set to true to restart the App running on the Device.

1
// Download the helper library from https://www.twilio.com/docs/node/install
2
const twilio = require("twilio"); // Or, for ESM: import twilio from "twilio";
3
4
// Find your Account SID and Auth Token at twilio.com/console
5
// and set the environment variables. See http://twil.io/secure
6
const accountSid = process.env.TWILIO_ACCOUNT_SID;
7
const authToken = process.env.TWILIO_AUTH_TOKEN;
8
const client = twilio(accountSid, authToken);
9
10
async function updateDevice() {
11
const device = await client.microvisor.v1
12
.devices("Sid")
13
.update({ uniqueName: "My Device Name" });
14
15
console.log(device.uniqueName);
16
}
17
18
updateDevice();

Output

1
{
2
"sid": "Sid",
3
"unique_name": "My Device Name",
4
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5
"app": {
6
"target_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
"target_hash": null,
8
"date_targeted": "2021-01-01T12:34:56Z",
9
"update_status": "pending",
10
"update_error_code": 0,
11
"reported_sid": null,
12
"date_reported": "2021-01-01T12:34:56Z"
13
},
14
"logging": {
15
"enabled": false,
16
"date_expires": null
17
},
18
"date_created": "2015-07-30T20:00:00Z",
19
"date_updated": "2015-07-30T20:00:00Z",
20
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
"links": {
22
"device_configs": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs",
23
"device_secrets": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Secrets"
24
}
25
}
(information)

Info

Remember, a Device can be identified either by is SID, or by its unique name, if you have applied one.

1
curl -X POST "https://microvisor.twilio.com/v1/Devices/Sid" \
2
--data-urlencode "TargetApp=KAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Output

1
{
2
"sid": "Sid",
3
"unique_name": "UniqueName",
4
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5
"app": {
6
"target_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
"target_hash": null,
8
"date_targeted": "2021-01-01T12:34:56Z",
9
"update_status": "pending",
10
"update_error_code": 0,
11
"reported_sid": null,
12
"date_reported": "2021-01-01T12:34:56Z"
13
},
14
"logging": {
15
"enabled": false,
16
"date_expires": null
17
},
18
"date_created": "2015-07-30T20:00:00Z",
19
"date_updated": "2015-07-30T20:00:00Z",
20
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
"links": {
22
"device_configs": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs",
23
"device_secrets": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Secrets"
24
}
25
}
1
curl -X POST "https://microvisor.twilio.com/v1/Devices/UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
2
--data-urlencode "LoggingEnabled=true" \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Output

1
{
2
"sid": "UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
3
"unique_name": "UniqueName",
4
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5
"app": {
6
"target_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
"target_hash": null,
8
"date_targeted": "2021-01-01T12:34:56Z",
9
"update_status": "pending",
10
"update_error_code": 0,
11
"reported_sid": null,
12
"date_reported": "2021-01-01T12:34:56Z"
13
},
14
"logging": {
15
"enabled": false,
16
"date_expires": null
17
},
18
"date_created": "2015-07-30T20:00:00Z",
19
"date_updated": "2015-07-30T20:00:00Z",
20
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
"links": {
22
"device_configs": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs",
23
"device_secrets": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Secrets"
24
}
25
}
(information)

Info

Application code logging is enabled by default.

1
curl -X POST "https://microvisor.twilio.com/v1/Devices/UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
2
--data-urlencode "RestartApp=true" \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Output

1
{
2
"sid": "UVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
3
"unique_name": "UniqueName",
4
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
5
"app": {
6
"target_sid": "KAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
7
"target_hash": null,
8
"date_targeted": "2021-01-01T12:34:56Z",
9
"update_status": "pending",
10
"update_error_code": 0,
11
"reported_sid": null,
12
"date_reported": "2021-01-01T12:34:56Z"
13
},
14
"logging": {
15
"enabled": false,
16
"date_expires": null
17
},
18
"date_created": "2015-07-30T20:00:00Z",
19
"date_updated": "2015-07-30T20:00:00Z",
20
"url": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
"links": {
22
"device_configs": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Configs",
23
"device_secrets": "https://microvisor.twilio.com/v1/Devices/UVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Secrets"
24
}
25
}

Restarting an app using this call will instruct Microvisor to start the loaded application afresh. This can be a useful call to make during remote debugging, particularly if your application is experiencing unexpected behavior right after it starts.

Need some help?

Terms of service

Copyright © 2024 Twilio Inc.