> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bota.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Device

> Retrieve details of a specific device

Retrieve the full details of a specific device, including settings and current health status.

## Authentication

Requires an [API key](/authentication) with `devices:read` scope.

<RequestExample>
  ```bash cURL theme={null}
  curl https://api.bota.dev/v1/devices/dev_abc123 \
    -H "Authorization: Bearer sk_live_..."
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.bota.dev/v1/devices/dev_abc123', {
    headers: {
      'Authorization': 'Bearer sk_live_...',
    },
  });

  const device = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.bota.dev/v1/devices/dev_abc123',
      headers={'Authorization': 'Bearer sk_live_...'},
  )

  device = response.json()
  ```
</RequestExample>

## Path Parameters

<ParamField path="id" type="string" required>
  The device's unique identifier (e.g., `dev_abc123`).
</ParamField>

## Response

Returns the device object.

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "dev_abc123",
    "serial_number": "SN-2025-001234",
    "model": "bota_pin",
    "firmware_version": "1.2.3",
    "status": "bound",
    "end_user_id": "eu_xyz789",
    "battery_percent": 85,
    "storage_used_mb": 512,
    "storage_total_mb": 32768,
    "signal_strength_dbm": -75,
    "last_heartbeat_at": "2025-01-15T11:30:00Z",
    "recording_state": {
      "device_state": "idle",
      "pending_recordings": 3,
      "flags": 8,
      "connection_type": ["ble"]
    },
    "metadata": {},
    "settings": {
      "connection": {
        "enabled_connections": { "wifi": true, "cellular": true },
        "upload_network_preference": ["wifi", "ble", "cellular"],
        "power_management": {
          "wifi_idle_timeout_seconds": 180,
          "cellular_idle_timeout_seconds": 180
        }
      },
      "upload": {
        "mode": "auto",
        "streaming_enabled": true,
        "upload_delay_minutes": 5,
        "daily_data_limit_mb": 500,
        "allow_roaming": false,
        "pause_on_low_battery": true
      },
      "audio": {
        "codec": "opus",
        "sample_rate_khz": 16,
        "bitrate_kbps": 32
      },
      "power": {
        "auto_sleep_minutes": 30,
        "low_battery_threshold_percent": 20
      }
    },
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-01-15T11:00:00Z"
  }
  ```

  ```json 404 theme={null}
  {
    "error": {
      "code": "not_found",
      "message": "Device not found"
    }
  }
  ```
</ResponseExample>

## Response Fields

| Field                 | Type            | Description                                                                              |
| --------------------- | --------------- | ---------------------------------------------------------------------------------------- |
| `id`                  | string          | Device identifier (`dev_*`)                                                              |
| `serial_number`       | string          | Physical serial number                                                                   |
| `model`               | string          | Device model (`bota_pin` or `bota_note`)                                                 |
| `firmware_version`    | string \| null  | Current firmware version                                                                 |
| `status`              | string          | `unbound` or `bound`                                                                     |
| `end_user_id`         | string \| null  | Bound end user (`eu_*`), null if unbound                                                 |
| `battery_percent`     | integer \| null | Battery level (0-100), null if no heartbeat received                                     |
| `storage_used_mb`     | integer \| null | Storage used in MB                                                                       |
| `storage_total_mb`    | integer \| null | Total storage capacity in MB                                                             |
| `signal_strength_dbm` | integer \| null | Signal strength in dBm                                                                   |
| `last_heartbeat_at`   | string \| null  | Last heartbeat timestamp (ISO 8601)                                                      |
| `recording_state`     | object \| null  | Current recording state (device\_state, pending\_recordings, flags, connection\_type\[]) |
| `metadata`            | object          | Custom key-value metadata                                                                |
| `settings`            | object          | Device settings including connection, upload, audio, and power configuration             |
| `created_at`          | string          | Creation timestamp (ISO 8601)                                                            |
| `updated_at`          | string          | Last update timestamp (ISO 8601)                                                         |
