---
title: "Devices"
description: "Enumerate printers and Fleet Control printer groups PreForm knows about, discover new ones on the network, and upload firmware to them. Discovering Dashboard-registered printers and Fleet Control queues requires a Dashboard login (`/v1/login/`)."
url: https://developer.formlabs.com/api-reference/devices/
---

# Devices

Enumerate printers and Fleet Control printer groups PreForm knows
about, discover new ones on the network, and upload firmware to
them. Discovering Dashboard-registered printers and Fleet Control
queues requires a Dashboard login (`/v1/login/`).

## Endpoints

Each endpoint's Markdown copy has its parameters, request body, responses, error codes, and Python and cURL samples.

- [List known devices](https://developer.formlabs.com/api-reference/devices/list-devices.md): `GET /v1/device/list/`, `preform.list_devices()`. Lists devices PreFormServer currently knows about: printers discovered on the local network, plus (if logged in via `/v1/login/`) Fleet Control printer groups and Dashboard- registered printers.
- [Discover devices on the network](https://developer.formlabs.com/api-reference/devices/discover-devices.md): `POST /v1/device/discover/`, `preform.discover_devices()`. Waits up to `timeout_seconds` for printers to announce themselves on the local network, then returns every connected, non-virtual device known afterwards.
- [Upload firmware to a device](https://developer.formlabs.com/api-reference/devices/upload-firmware.md): `POST /v1/device/upload-firmware/`, `preform.upload_firmware()`. Uploads a firmware file to `printer` and installs it.

## Schemas

- [DeviceConnectionType](https://developer.formlabs.com/api-reference/schemas/deviceconnectiontype.md): How a device is currently connected, if known.
