> ## 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.

# Create Asset

> Register a partner-managed asset on a kit. A GPS feed is created automatically so you can start pushing location immediately.

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

## Body

<ParamField body="name" type="string" required>
  Human-readable display name (e.g. `Skydio X10`, `Scout Vehicle 3`).
</ParamField>

<ParamField body="type" type="string" required>
  Asset class: `drone` · `camera` · `sensor` · `vehicle` — or any custom string.
</ParamField>

<ParamField body="vendor" type="string">
  Manufacturer name (e.g. `Skydio`, `Ghost Robotics`).
</ParamField>

<ParamField body="model" type="string">
  Hardware model identifier.
</ParamField>

<ParamField body="metadata" type="object">
  Free-form metadata stored with the asset — serial number, tail number, callsign, etc.
</ParamField>

<ParamField body="parent_id" type="string">
  UUID of a parent asset. Use this to model payloads or sub-systems (e.g. a camera mounted on a drone). The child asset appears nested under the parent in the Argus asset tree.
</ParamField>

## Response

Returns the created asset object. **Save the `id`** — you'll pass it to [Push Location](/api-reference/assets/push-location) and [Send Command](/api-reference/assets/send-command) calls.

<Info>
  A `gps` feed is automatically registered on the new asset. You can start calling Push Location immediately after creation without any additional setup.
</Info>

## Example

<CodeGroup>
  ```python Python theme={null}
  # Create the asset
  asset = client.create_asset(
      kit_id,
      name="Skydio X10",
      type="drone",
      vendor="Skydio",
      model="X10",
      metadata={"serial": "SKY-12345"},
  )
  asset_id = asset["id"]

  # Optionally attach a payload camera as a child
  camera = client.create_asset(
      kit_id,
      name="X10 Payload Camera",
      type="camera",
      parent_id=asset_id,
  )

  # Push location immediately — GPS feed is auto-registered
  client.push_location(kit_id, asset_id, lat=31.1234, lon=-93.4567, alt_m=120.0)
  ```

  ```javascript JavaScript theme={null}
  const asset = await client.createAsset(kitId, {
    name: 'Skydio X10',
    type: 'drone',
    vendor: 'Skydio',
    model: 'X10',
  })
  console.log(asset.id)

  await client.pushLocation(kitId, asset.id, { lat: 31.1234, lon: -93.4567 })
  ```

  ```bash cURL theme={null}
  curl -X POST https://argus.hoplynk.com/api/kits/$KIT_ID/assets \
    -H "X-API-Key: hlk_..." \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Skydio X10",
      "type": "drone",
      "vendor": "Skydio",
      "model": "X10",
      "metadata": {"serial": "SKY-12345"}
    }'
  ```
</CodeGroup>

```json Response theme={null}
{
  "id": "cf210dda-fad8-4e69-ac9c-fe88f42f06a7",
  "asset_key": "53396241-e774-43c6-91c5-cd106dd13cfd:partner:7f3a2b1c-...",
  "kit_id": "53396241-e774-43c6-91c5-cd106dd13cfd",
  "name": "Skydio X10",
  "type": "drone",
  "vendor": "Skydio",
  "model": "X10",
  "protocol": "partner",
  "metadata": { "serial": "SKY-12345" },
  "status": "online",
  "last_seen_at": "2026-05-18T14:30:00Z",
  "parent_id": null
}
```
