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

# Get Asset

> Return a single asset by ID, including full metadata and last known position.

<ParamField path="kit_id" type="string" required>
  UUID of the kit.
</ParamField>

<ParamField path="asset_id" type="string" required>
  UUID of the asset.
</ParamField>

## Response

<ResponseField name="id" type="string">Asset UUID.</ResponseField>
<ResponseField name="asset_key" type="string">Stable connector-assigned key (e.g. `reolink_192_168_0_10`).</ResponseField>
<ResponseField name="name" type="string">Display name.</ResponseField>
<ResponseField name="type" type="string">`camera` · `drone` · `radio` · `sensor` · `vehicle` · `gateway`</ResponseField>
<ResponseField name="vendor" type="string">Manufacturer. `null` for partner assets.</ResponseField>
<ResponseField name="model" type="string">Hardware model. `null` if not reported.</ResponseField>
<ResponseField name="protocol" type="string">`reolink` · `onvif` · `mavlink` · `silvus` · `partner`</ResponseField>

<ResponseField name="metadata" type="object">
  Connector-specific metadata. Common fields:

  <Expandable title="metadata fields">
    <ResponseField name="ip" type="string">Device LAN IP (cameras, radios).</ResponseField>
    <ResponseField name="firmware" type="string">Firmware version string.</ResponseField>
    <ResponseField name="has_ptz" type="boolean">Whether the camera has pan/tilt/zoom.</ResponseField>
    <ResponseField name="sysid" type="number">MAVLink system ID (drones).</ResponseField>
    <ResponseField name="connection" type="string">MAVLink connection string (drones).</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="status" type="string">`online` · `offline`</ResponseField>
<ResponseField name="last_seen_at" type="string">ISO 8601 UTC timestamp of last heartbeat.</ResponseField>
<ResponseField name="lat" type="number">Last known latitude. `null` if not set.</ResponseField>
<ResponseField name="lon" type="number">Last known longitude. `null` if not set.</ResponseField>
<ResponseField name="alt_m" type="number">Last known altitude in meters. `null` if not set.</ResponseField>
<ResponseField name="parent_id" type="string">Parent asset UUID. `null` for top-level assets.</ResponseField>

## Example

<CodeGroup>
  ```python Python theme={null}
  asset = client.get_asset(kit_id, asset_id)
  print(asset["name"], asset["type"], asset["status"])
  print(asset["metadata"])
  ```

  ```javascript JavaScript theme={null}
  const asset = await client.getAsset(kitId, assetId)
  console.log(asset.name, asset.type, asset.status)
  ```

  ```bash cURL theme={null}
  curl https://argus.hoplynk.com/api/kits/$KIT_ID/assets/$ASSET_ID \
    -H "X-API-Key: hlk_..."
  ```
</CodeGroup>

```json Response (camera) theme={null}
{
  "id": "3a9df97f-69fd-40bb-89bb-8f32dfb03500",
  "asset_key": "reolink_192_168_0_10",
  "name": "Front Gate Camera",
  "type": "camera",
  "vendor": "reolink",
  "model": "RLC-823A",
  "protocol": "reolink",
  "metadata": {
    "ip": "192.168.0.10",
    "firmware": "v3.1.0.2368",
    "has_ptz": true
  },
  "status": "online",
  "last_seen_at": "2026-05-18T14:27:03Z",
  "lat": null,
  "lon": null,
  "alt_m": null,
  "parent_id": null
}
```

```json Response (drone) theme={null}
{
  "id": "cf210dda-fad8-4e69-ac9c-fe88f42f06a7",
  "asset_key": "mavlink_1",
  "name": "MAVLink Vehicle 1",
  "type": "drone",
  "vendor": "ardupilot",
  "model": "Copter",
  "protocol": "mavlink",
  "metadata": {
    "sysid": 1,
    "autopilot": 3,
    "mav_type": 2,
    "connection": "udpin:0.0.0.0:14550"
  },
  "status": "online",
  "last_seen_at": "2026-05-18T14:27:01Z",
  "lat": 31.111,
  "lon": -93.273,
  "alt_m": 120.5,
  "parent_id": null
}
```
