Twilio Devices API

The Devices API from Twilio — 6 operation(s) for devices.

Operations 13

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/Devices List my Microvisor devices · List device #
Ask an LLM
“Which Microvisor devices are registered to my account?”
“What IoT devices do I have enrolled right now?”
Tell an agent
List all my registered devices.
Show my Microvisor devices, {page_size} per page.
GET /v1/Devices/{Sid} Get one Microvisor device · Fetch device #
Ask an LLM
“Which app is targeted to a specific device, and is logging on?”
“Can I look up a single device by its SID?”
Tell an agent
Get device {device}.
Show the details and target app for device {device}.
POST /v1/Devices/{Sid} Update, retarget or restart a device · Update device #
Ask an LLM
“How do I deploy a different app to one of my Microvisor devices?”
“Can I restart the app running on a device remotely?”
Tell an agent
Target app {app} to device {device}.
Restart the app on device {device} by setting restart to {restart}.
GET /v1/Devices/{DeviceSid}/Configs List a device's config values · List device config #
Ask an LLM
“Which configuration keys are set on a Microvisor device?”
“What non-secret settings has a device been given?”
Tell an agent
List all configs for device {device}.
Show the configuration keys on device {device}, {page_size} per page.
POST /v1/Devices/{DeviceSid}/Configs Add a config value to a device · Create device config #
Ask an LLM
“How do I push a new configuration setting to a Microvisor device?”
“Can I store a plain key/value config on a single device?”
Tell an agent
Add config {key} with value {value} to device {device}.
Create a new setting {key} = {value} on device {device}.
GET /v1/Devices/{DeviceSid}/Configs/{Key} Read one config value on a device · Fetch device config #
Ask an LLM
“What value does a particular config key currently have on my device?”
“Can I read back a single device configuration setting?”
Tell an agent
Get config {key} from device {device}.
Read the current value of setting {key} on device {device}.
POST /v1/Devices/{DeviceSid}/Configs/{Key} Change a config value on a device · Update device config #
Ask an LLM
“How do I change an existing configuration value on a Microvisor device?”
“Can I overwrite a device setting that is already set?”
Tell an agent
Update config {key} on device {device} to {value}.
Overwrite existing setting {key} of device {device} with {value}.
DELETE /v1/Devices/{DeviceSid}/Configs/{Key} Delete a config value from a device · Delete device config #
Ask an LLM
“Can I remove a configuration key from a device?”
“What if a device config setting is obsolete and needs deleting?”
Tell an agent destructive · confirm first
Delete config {key} from device {device}.
Remove setting {key} from device {device} entirely.
GET /v1/Devices/{DeviceSid}/Secrets List the secrets stored on a device · List device secret #
Ask an LLM
“Which secrets have been stored for a Microvisor device?”
“What secret keys does a device have, such as API tokens or passwords?”
Tell an agent
List all secrets for device {device}.
Show the secret keys on device {device}, {page_size} per page.
POST /v1/Devices/{DeviceSid}/Secrets Store a secret on a device · Create device secret #
Ask an LLM
“How do I give a Microvisor device a credential without baking it into the app?”
“Can I store a secret like a password on one device?”
Tell an agent
Store secret {key} with value {value} on device {device}.
Create a new secret {key} for device {device} holding {value}.
GET /v1/Devices/{DeviceSid}/Secrets/{Key} Look up one secret on a device · Fetch device secret #
Ask an LLM
“Does a device have a particular secret key set?”
“Can I retrieve the record of one secret stored for a device?”
Tell an agent
Get secret {key} for device {device}.
Look up the secret named {key} on device {device}.
POST /v1/Devices/{DeviceSid}/Secrets/{Key} Rotate a secret on a device · Update device secret #
Ask an LLM
“How do I rotate a password or token already stored as a device secret?”
“Can I replace the value of an existing device secret?”
Tell an agent
Update secret {key} on device {device} to {value}.
Rotate existing secret {key} of device {device} to the new value {value}.
DELETE /v1/Devices/{DeviceSid}/Secrets/{Key} Delete a secret from a device · Delete device secret #
Ask an LLM
“Can I remove a secret from a device once it is no longer needed?”
“What if a device secret has leaked and should be deleted?”
Tell an agent destructive · confirm first
Delete secret {key} from device {device}.
Remove the stored secret {key} from device {device}.

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/twilio-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

twilio-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Twilio - Microvisor Devices API
  description: This is the public Twilio REST API.
  termsOfService: https://www.twilio.com/legal/tos
  contact:
    name: Twilio Support
    url: https://support.twilio.com
    email: support@twilio.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.52.0
servers:
- url: https://microvisor.twilio.com
tags:
- name: Devices
paths:
  /v1/Devices:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - unique_name
      pathType: list
      dependentProperties:
        device_configs:
          mapping:
            device_sid: sid
          resource_url: /v1/Devices/{device_sid}/Configs
        device_secrets:
          mapping:
            device_sid: sid
          resource_url: /v1/Devices/{device_sid}/Secrets
    get:
      description: Retrieve a list of all Devices registered with the Account.
      tags:
      - Devices
      parameters:
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDeviceResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListDevice
      x-maturity:
      - Preview
      summary: List device
      x-summary-source: derived
  /v1/Devices/{Sid}:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties:
      - sid
      - unique_name
      pathType: instance
      dependentProperties:
        device_configs:
          mapping:
            device_sid: sid
          resource_url: /v1/Devices/{device_sid}/Configs
        device_secrets:
          mapping:
            device_sid: sid
          resource_url: /v1/Devices/{device_sid}/Secrets
    get:
      description: Fetch a specific Device.
      tags:
      - Devices
      parameters:
      - name: Sid
        in: path
        description: A 34-character string that uniquely identifies this Device.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchDevice
      x-maturity:
      - Preview
      summary: Fetch device
      x-summary-source: derived
    post:
      description: Update a specific Device.
      tags:
      - Devices
      parameters:
      - name: Sid
        in: path
        description: A 34-character string that uniquely identifies this Device.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateDevice
      x-maturity:
      - Preview
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateDeviceRequest'
      summary: Update device
      x-summary-source: derived
  /v1/Devices/{DeviceSid}/Configs:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: list
      parent: /Devices/{Sid}
      mountName: device_configs
    get:
      description: Retrieve a list of all Configs for a Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDeviceConfigResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListDeviceConfig
      x-maturity:
      - Preview
      summary: List device config
      x-summary-source: derived
    post:
      description: Create a config for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_config'
          description: Created
      security:
      - accountSid_authToken: []
      operationId: CreateDeviceConfig
      x-maturity:
      - Preview
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateDeviceConfigRequest'
      summary: Create device config
      x-summary-source: derived
  /v1/Devices/{DeviceSid}/Configs/{Key}:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: instance
      parent: /Devices/{Sid}
      mountName: device_configs
    get:
      description: Retrieve a Config for a Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The config key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_config'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchDeviceConfig
      x-maturity:
      - Preview
      summary: Fetch device config
      x-summary-source: derived
    post:
      description: Update a config for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The config key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_config'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateDeviceConfig
      x-maturity:
      - Preview
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateDeviceConfigRequest'
      summary: Update device config
      x-summary-source: derived
    delete:
      description: Delete a config for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The config key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '204':
          description: The resource was deleted successfully.
      security:
      - accountSid_authToken: []
      operationId: DeleteDeviceConfig
      x-maturity:
      - Preview
      summary: Delete device config
      x-summary-source: derived
  /v1/Devices/{DeviceSid}/Secrets:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: list
      parent: /Devices/{Sid}
      mountName: device_secrets
    get:
      description: Retrieve a list of all Secrets for a Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: PageSize
        in: query
        description: How many resources to return in each list page. The default is 50, and the maximum is 1000.
        schema:
          type: integer
          minimum: 1
          maximum: 1000
      - name: Page
        in: query
        description: The page index. This value is simply for client state.
        schema:
          type: integer
          minimum: 0
      - name: PageToken
        in: query
        description: The page token. This is provided by the API.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDeviceSecretResponse'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: ListDeviceSecret
      x-maturity:
      - Preview
      summary: List device secret
      x-summary-source: derived
    post:
      description: Create a secret for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_secret'
          description: Created
      security:
      - accountSid_authToken: []
      operationId: CreateDeviceSecret
      x-maturity:
      - Preview
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateDeviceSecretRequest'
      summary: Create device secret
      x-summary-source: derived
  /v1/Devices/{DeviceSid}/Secrets/{Key}:
    servers:
    - url: https://microvisor.twilio.com
    description: 'TODO: Resource-level docs'
    x-twilio:
      defaultOutputProperties: []
      pathType: instance
      parent: /Devices/{Sid}
      mountName: device_secrets
    get:
      description: Retrieve a Secret for a Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The secret key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_secret'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: FetchDeviceSecret
      x-maturity:
      - Preview
      summary: Fetch device secret
      x-summary-source: derived
    post:
      description: Update a secret for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The secret key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/microvisor.v1.device.device_secret'
          description: OK
      security:
      - accountSid_authToken: []
      operationId: UpdateDeviceSecret
      x-maturity:
      - Preview
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateDeviceSecretRequest'
      summary: Update device secret
      x-summary-source: derived
    delete:
      description: Delete a secret for a Microvisor Device.
      tags:
      - Devices
      parameters:
      - name: DeviceSid
        in: path
        description: A 34-character string that uniquely identifies the Device.
        schema:
          type: string
        required: true
      - name: Key
        in: path
        description: The secret key; up to 100 characters.
        schema:
          type: string
        required: true
      responses:
        '204':
          description: The resource was deleted successfully.
      security:
      - accountSid_authToken: []
      operationId: DeleteDeviceSecret
      x-maturity:
      - Preview
      summary: Delete device secret
      x-summary-source: derived
components:
  schemas:
    UpdateDeviceRequest:
      type: object
      properties:
        UniqueName:
          type: string
          description: A unique and addressable name to be assigned to this Device by the developer. It may be used in place of the Device SID.
        TargetApp:
          type: string
          description: The SID or unique name of the App to be targeted to the Device.
        LoggingEnabled:
          type: boolean
          description: A Boolean flag specifying whether to enable application logging. Logs will be enabled or extended for 24 hours.
        RestartApp:
          type: boolean
          description: Set to true to restart the App running on the Device.
    microvisor.v1.device:
      type: object
      properties:
        sid:
          type:
          - string
          - 'null'
          minLength: 34
          maxLength: 34
          pattern: ^UV[0-9a-fA-F]{32}$
          description: A 34-character string that uniquely identifies this Device.
        unique_name:
          type:
          - string
          - 'null'
          description: 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_sid:
          type:
          - string
          - 'null'
          minLength: 34
          maxLength: 34
          pattern: ^AC[0-9a-fA-F]{32}$
          description: The unique SID identifier of the Account.
        app:
          description: 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`.
        logging:
          description: Object specifying whether application logging is enabled for this Device. Contains the properties `enabled` and `date_expires`.
        date_created:
          type:
          - string
          - 'null'
          format: date-time
          description: The date that this Device was created, given in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
        date_updated:
          type:
          - string
          - 'null'
          format: date-time
          description: The date that this Device was last updated, given in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
        url:
          type:
          - string
          - 'null'
          format: uri
          description: The URL of this resource.
        links:
          type:
          - object
          - 'null'
          format: uri-map
          description: The absolute URLs of related resources.
    microvisor.v1.device.device_secret:
      type: object
      properties:
        device_sid:
          type:
          - string
          - 'null'
          minLength: 34
          maxLength: 34
          pattern: ^UV[0-9a-fA-F]{32}$
          description: A 34-character string that uniquely identifies the parent Device.
        key:
          type:
          - string
          - 'null'
          description: The secret key; up to 100 characters.
        date_rotated:
          type:
          - string
          - 'null'
          format: date-time
        url:
          type:
          - string
          - 'null'
          format: uri
          description: The absolute URL of the Secret.
    ListDeviceSecretResponse:
      type: object
      properties:
        secrets:
          type: array
          items:
            $ref: '#/components/schemas/microvisor.v1.device.device_secret'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type:
              - string
              - 'null'
              format: uri
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type:
              - string
              - 'null'
              format: uri
            url:
              type: string
              format: uri
            key:
              type: string
    ListDeviceConfigResponse:
      type: object
      properties:
        configs:
          type: array
          items:
            $ref: '#/components/schemas/microvisor.v1.device.device_config'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type:
              - string
              - 'null'
              format: uri
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type:
              - string
              - 'null'
              format: uri
            url:
              type: string
              format: uri
            key:
              type: string
    UpdateDeviceSecretRequest:
      type: object
      required:
      - Value
      properties:
        Value:
          type: string
          description: The secret value; up to 4096 characters.
    UpdateDeviceConfigRequest:
      type: object
      required:
      - Value
      properties:
        Value:
          type: string
          description: The config value; up to 4096 characters.
    ListDeviceResponse:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: '#/components/schemas/microvisor.v1.device'
        meta:
          type: object
          properties:
            first_page_url:
              type: string
              format: uri
            next_page_url:
              type:
              - string
              - 'null'
              format: uri
            page:
              type: integer
            page_size:
              type: integer
            previous_page_url:
              type:
              - string
              - 'null'
              format: uri
            url:
              type: string
              format: uri
            key:
              type: string
    CreateDeviceSecretRequest:
      type: object
      required:
      - Key
      - Value
      properties:
        Key:
          type: string
          description: The secret key; up to 100 characters.
        Value:
          type: string
          description: The secret value; up to 4096 characters.
    microvisor.v1.device.device_config:
      type: object
      properties:
        device_sid:
          type:
          - string
          - 'null'
          minLength: 34
          maxLength: 34
          pattern: ^UV[0-9a-fA-F]{32}$
          description: A 34-character string that uniquely identifies the parent Device.
        key:
          type:
          - string
          - 'null'
          description: The config key; up to 100 characters.
        value:
          type:
          - string
          - 'null'
          description: The config value; up to 4096 characters.
        date_updated:
          type:
          - string
          - 'null'
          format: date-time
        url:
          type:
          - string
          - 'null'
          format: uri
          description: The absolute URL of the Config.
    CreateDeviceConfigRequest:
      type: object
      required:
      - Key
      - Value
      properties:
        Key:
          type: string
          description: The config key; up to 100 characters.
        Value:
          type: string
          description: The config value; up to 4096 characters.
  securitySchemes:
    accountSid_authToken:
      type: http
      scheme: basic
x-maturity:
- name: Preview
  description: PLEASE NOTE that this is a Preview product that is subject to change. Use it with caution. If you currently do not have developer preview access, please contact https://www.twilio.com/help/contact.