Skip to main content
POST
/
devices
/
{id}
/
reset
curl -X POST https://api.bota.dev/v1/devices/dev_abc123/reset \
  -H "Authorization: Bearer sk_live_..."
{
  "id": "dev_abc123",
  "serial_number": "SN-2025-001234",
  "model": "bota_pin",
  "firmware_version": "1.2.0",
  "status": "unbound",
  "end_user_id": null,
  "metadata": null,
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-01-15T12:00:00Z",
  "bound_at": null
}
Schedule a factory reset on a device. On the next heartbeat cycle, the device will wipe its credentials (device token, pairing state, stored WiFi networks) and reboot into an unpaired state. Use this when you need to repurpose a device, recover from a bad state, or wipe credentials without removing the device record from your project. The device record, all recordings, transcriptions, and summaries are preserved.

How it works

  1. The API unbinds the device from its current end user (if bound) and revokes its device token.
  2. A factory_reset command is queued in the device’s pending commands.
  3. On the next heartbeat (typically within 60 seconds), the device receives the command, wipes credentials, and reboots.
  4. After rebooting, the device advertises as unpaired and must be provisioned again before it can upload recordings.
The device must have WiFi or cellular connectivity to receive the factory reset command via heartbeat. Bluetooth-only devices cannot receive the command until a WiFi or cellular connection is available.

Authentication

Requires an API key with devices:write scope.
curl -X POST https://api.bota.dev/v1/devices/dev_abc123/reset \
  -H "Authorization: Bearer sk_live_..."

Path Parameters

id
string
required
The device’s unique identifier (e.g., dev_abc123).

Response

Returns the updated device object. The status will be unbound and end_user_id will be null.
{
  "id": "dev_abc123",
  "serial_number": "SN-2025-001234",
  "model": "bota_pin",
  "firmware_version": "1.2.0",
  "status": "unbound",
  "end_user_id": null,
  "metadata": null,
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-01-15T12:00:00Z",
  "bound_at": null
}

Response Fields

FieldTypeDescription
idstringDevice identifier (dev_*)
serial_numberstringPhysical serial number
modelstringDevice model (bota_pin or bota_note)
firmware_versionstring | nullCurrent firmware version
statusstringunbound after reset
end_user_idstring | nullnull after reset
battery_percentinteger | nullBattery level (0-100)
storage_used_mbinteger | nullStorage used in MB
storage_total_mbinteger | nullTotal storage capacity in MB
signal_strength_dbminteger | nullSignal strength in dBm
last_heartbeat_atstring | nullLast heartbeat timestamp (ISO 8601)
metadataobjectCustom key-value metadata
created_atstringCreation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)
Factory reset differs from delete: reset wipes credentials on the physical device but keeps the record in your project. Delete removes the record (softly — it can be recovered) but does not wipe the device.