---
updatedAt: 2026-06-12T14:47:10.000Z
agentTools:
  projectIndex: https://docs.formant.io/llms.txt
---

# Provision device

Provision an existing device.

# OpenAPI definition

```json
{
  "components": {
    "schemas": {
      "ScopeFilter": {
        "properties": {
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "tags": {
            "title": "MultiTagSets",
            "description": "One or more TagSets (combined with OR logic)",
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TagSets"
                }
              },
              {
                "$ref": "#/components/schemas/TagSets"
              }
            ]
          },
          "deviceIds": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          },
          "names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "types": {
            "items": {
              "type": "string",
              "enum": [
                "bitset",
                "localization",
                "point cloud",
                "location",
                "file",
                "health",
                "transform tree",
                "battery",
                "video",
                "numeric set",
                "json",
                "image",
                "numeric",
                "text"
              ]
            },
            "type": "array"
          },
          "notTags": {},
          "notNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "agentIds": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object",
        "nullable": true
      },
      "DeviceFollower": {
        "properties": {
          "userId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "userId"
        ]
      },
      "DeviceScope": {
        "properties": {
          "views": {
            "$ref": "#/components/schemas/ScopeFilter",
            "nullable": true
          },
          "commands": {
            "$ref": "#/components/schemas/ScopeFilter",
            "nullable": true
          },
          "tags": {
            "title": "MultiTagSets",
            "description": "One or more TagSets (combined with OR logic)",
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TagSets"
                }
              },
              {
                "$ref": "#/components/schemas/TagSets"
              }
            ]
          },
          "deviceIds": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          },
          "names": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "types": {
            "items": {
              "type": "string",
              "enum": [
                "bitset",
                "localization",
                "point cloud",
                "location",
                "file",
                "health",
                "transform tree",
                "battery",
                "video",
                "numeric set",
                "json",
                "image",
                "numeric",
                "text"
              ]
            },
            "type": "array"
          },
          "notTags": {},
          "notNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "agentIds": {
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "type": "array"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CommandProgress": {
        "properties": {
          "commandId": {
            "type": "string"
          },
          "progress": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 100
          },
          "pending": {
            "type": "boolean"
          }
        },
        "type": "object",
        "required": [
          "commandId",
          "progress",
          "pending"
        ]
      },
      "DeviceReportedConfigurationState": {
        "properties": {
          "version": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "nullable": true
          }
        },
        "type": "object",
        "required": [
          "version"
        ],
        "nullable": true
      },
      "RosTopic": {
        "properties": {
          "name": {
            "pattern": "^([a-zA-Z~/])([0-9a-zA-Z_/]){0,254}$",
            "type": "string"
          },
          "type": {
            "maxLength": 100,
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "name",
          "type"
        ]
      },
      "DeviceRosState": {
        "properties": {
          "topics": {
            "items": {
              "$ref": "#/components/schemas/RosTopic"
            },
            "maxItems": 1000,
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "topics"
        ],
        "nullable": true
      },
      "AudioDevice": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ]
      },
      "KernelInfo": {
        "properties": {
          "version": {
            "type": "string"
          },
          "release": {
            "type": "string"
          },
          "architecture": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Network": {
        "properties": {
          "name": {
            "type": "string"
          },
          "ip4": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "NetworkInfo": {
        "properties": {
          "networks": {
            "items": {
              "$ref": "#/components/schemas/Network"
            },
            "type": "array",
            "maxItems": 5
          }
        },
        "type": "object",
        "required": [
          "networks"
        ]
      },
      "NodeInfo": {
        "properties": {
          "hostname": {
            "type": "string"
          },
          "machineid": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OnvifDevice": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "address"
        ]
      },
      "OsInfo": {
        "properties": {
          "name": {
            "type": "string"
          },
          "vendor": {
            "type": "string"
          },
          "release": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "VideoDevice": {
        "properties": {
          "path": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "path",
          "name"
        ]
      },
      "HwInfo": {
        "properties": {
          "kernelInfo": {
            "$ref": "#/components/schemas/KernelInfo"
          },
          "osInfo": {
            "$ref": "#/components/schemas/OsInfo"
          },
          "nodeInfo": {
            "$ref": "#/components/schemas/NodeInfo"
          },
          "networkInfo": {
            "$ref": "#/components/schemas/NetworkInfo"
          },
          "hwEncodingAvailable": {
            "type": "boolean"
          },
          "videoDevices": {
            "items": {
              "$ref": "#/components/schemas/VideoDevice"
            },
            "type": "array",
            "maxItems": 20,
            "minItems": 0
          },
          "audioCaptureDevices": {
            "items": {
              "$ref": "#/components/schemas/AudioDevice"
            },
            "type": "array",
            "maxItems": 50,
            "minItems": 0
          },
          "onvifDevices": {
            "items": {
              "$ref": "#/components/schemas/OnvifDevice"
            },
            "type": "array",
            "maxItems": 10,
            "minItems": 0
          }
        },
        "type": "object",
        "nullable": true
      },
      "OnDemandPresenceTimeRange": {
        "properties": {
          "start": {
            "type": "integer",
            "format": "int64",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "end": {
            "type": "integer",
            "format": "int64",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "byteSize": {
            "type": "number",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "itemCount": {
            "type": "number",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          }
        },
        "type": "object",
        "required": [
          "start",
          "end",
          "byteSize",
          "itemCount"
        ]
      },
      "OnDemandPresenceStreamItemGroup": {
        "properties": {
          "datapointType": {
            "type": "string",
            "enum": [
              "bitset",
              "localization",
              "point cloud",
              "location",
              "file",
              "health",
              "transform tree",
              "battery",
              "video",
              "numeric set",
              "json",
              "image",
              "numeric",
              "text"
            ]
          },
          "timeRanges": {
            "items": {
              "$ref": "#/components/schemas/OnDemandPresenceTimeRange"
            },
            "maxItems": 1000,
            "type": "array",
            "minItems": 1
          }
        },
        "type": "object",
        "required": [
          "datapointType",
          "timeRanges"
        ]
      },
      "OnDemandStreamPresence": {
        "properties": {
          "streamName": {
            "type": "string"
          },
          "presence": {
            "items": {
              "$ref": "#/components/schemas/OnDemandPresenceStreamItemGroup"
            },
            "maxItems": 200,
            "type": "array",
            "minItems": 1
          }
        },
        "type": "object",
        "required": [
          "streamName",
          "presence"
        ]
      },
      "OnDemandBuffer": {
        "properties": {
          "bufferType": {
            "type": "string",
            "enum": [
              "s3_asset",
              "datapoint"
            ]
          },
          "streams": {
            "items": {
              "$ref": "#/components/schemas/OnDemandStreamPresence"
            },
            "maxItems": 200,
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "bufferType",
          "streams"
        ]
      },
      "OnDemandState": {
        "properties": {
          "buffers": {
            "items": {
              "$ref": "#/components/schemas/OnDemandBuffer"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "type": "object",
        "required": [
          "buffers"
        ],
        "nullable": true
      },
      "DeviceState": {
        "properties": {
          "agentVersion": {
            "type": "string",
            "nullable": true
          },
          "reportedConfiguration": {
            "$ref": "#/components/schemas/DeviceReportedConfigurationState",
            "nullable": true
          },
          "hwInfo": {
            "$ref": "#/components/schemas/HwInfo",
            "nullable": true
          },
          "ros": {
            "$ref": "#/components/schemas/DeviceRosState",
            "nullable": true
          },
          "env": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "otaEnabled": {
            "type": "boolean",
            "nullable": true
          },
          "onDemand": {
            "$ref": "#/components/schemas/OnDemandState",
            "nullable": true
          },
          "commandProgress": {
            "items": {
              "$ref": "#/components/schemas/CommandProgress"
            },
            "type": "array",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true,
            "deprecated": true
          }
        },
        "type": "object"
      },
      "NotificationMuted": {
        "properties": {
          "start": {
            "format": "date-time",
            "type": "string",
            "description": "Mute start time (inclusive)."
          },
          "end": {
            "format": "date-time",
            "type": "string",
            "description": "Mute end time (exclusive)."
          }
        },
        "type": "object",
        "required": [
          "start",
          "end"
        ],
        "nullable": true
      },
      "Device": {
        "properties": {
          "organizationId": {
            "format": "uuid",
            "type": "string",
            "description": "ID of the organization which contains this device."
          },
          "externalId": {
            "type": "string",
            "nullable": true,
            "description": "External ID of this device."
          },
          "name": {
            "pattern": "^[a-zA-Z0-9-_.,:?'\"()@\\/\\\\#$+ ]{1,255}$",
            "type": "string",
            "description": "Name of this device."
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "nullable": true,
            "description": "Description of this device."
          },
          "type": {
            "type": "string",
            "enum": [
              "default",
              "capture"
            ],
            "description": "Enter `default`."
          },
          "userId": {
            "nullable": true,
            "format": "uuid",
            "type": "string",
            "description": "ID of the user associated with this device."
          },
          "fleetId": {
            "nullable": true,
            "format": "uuid",
            "type": "string",
            "description": "ID of the fleet with which this device is associated."
          },
          "defaultViewId": {
            "nullable": true,
            "format": "uuid",
            "type": "string",
            "description": "ID of the default view associated with this device."
          },
          "publicKey": {
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/ScopeFilter",
            "nullable": true,
            "description": "Currently unused, ignore."
          },
          "deviceScope": {
            "$ref": "#/components/schemas/DeviceScope",
            "description": "Currently unused, ignore."
          },
          "desiredAgentVersion": {
            "type": "string",
            "nullable": true,
            "description": "Agent version you want to install if different from the latest version. Must have `formant-sidecar` installed."
          },
          "desiredConfigurationVersion": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "nullable": true,
            "description": "Device configuration version you want to apply. Ignore for new device configuration."
          },
          "temporaryConfigurationVersion": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "nullable": true
          },
          "temporaryConfigurationExpiration": {
            "format": "date-time",
            "type": "string",
            "nullable": true
          },
          "temporaryConfigurationTemplateId": {
            "format": "uuid",
            "type": "string",
            "nullable": true
          },
          "muted": {
            "$ref": "#/components/schemas/NotificationMuted",
            "nullable": true,
            "description": "Set this to temporarily mute notifications for this device."
          },
          "followers": {
            "items": {
              "$ref": "#/components/schemas/DeviceFollower"
            },
            "type": "array",
            "maxItems": 10,
            "description": "Users who receive SMS updates from this device."
          },
          "slackChannels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "uniqueItems": true,
            "description": "Slack channels which receive updates from this device."
          },
          "state": {
            "$ref": "#/components/schemas/DeviceState"
          },
          "enabled": {
            "type": "boolean"
          },
          "fullyConfigured": {
            "type": "boolean"
          },
          "disabledAt": {
            "nullable": true,
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "type": "object",
        "required": [
          "name"
        ]
      },
      "DeviceProvisioningRequest": {
        "properties": {
          "provisioningToken": {
            "type": "string"
          },
          "publicKey": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "provisioningToken",
          "publicKey"
        ]
      },
      "TagSets": {
        "title": "TagSets",
        "description": "A map of tag keys to an array of values",
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  },
  "info": {
    "title": "Formant admin-api",
    "version": "1.357.8"
  },
  "openapi": "3.0.0",
  "paths": {
    "/devices/provision": {
      "post": {
        "operationId": "DeviceController.provisionDevice",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProvisioningRequest"
              }
            }
          },
          "description": "DeviceProvisioningRequest",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Provision device",
        "tags": [
          "Device"
        ],
        "description": "Provision an existing device."
      }
    }
  },
  "servers": [
    {
      "url": "https://api.formant.io/v1/admin"
    }
  ]
}
```