Get Asset
curl --request GET \
--url https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}import requests
url = "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"asset_key": "<string>",
"name": "<string>",
"type": "<string>",
"vendor": "<string>",
"model": "<string>",
"protocol": "<string>",
"metadata": {
"ip": "<string>",
"firmware": "<string>",
"has_ptz": true,
"sysid": 123,
"connection": "<string>"
},
"status": "<string>",
"last_seen_at": "<string>",
"lat": 123,
"lon": 123,
"alt_m": 123,
"parent_id": "<string>"
}Assets
Get Asset
Return a single asset by ID, including full metadata and last known position.
GET
/
api
/
kits
/
{kit_id}
/
assets
/
{asset_id}
Get Asset
curl --request GET \
--url https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}import requests
url = "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://argus.hoplynk.com/api/kits/{kit_id}/assets/{asset_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"asset_key": "<string>",
"name": "<string>",
"type": "<string>",
"vendor": "<string>",
"model": "<string>",
"protocol": "<string>",
"metadata": {
"ip": "<string>",
"firmware": "<string>",
"has_ptz": true,
"sysid": 123,
"connection": "<string>"
},
"status": "<string>",
"last_seen_at": "<string>",
"lat": 123,
"lon": 123,
"alt_m": 123,
"parent_id": "<string>"
}string
required
UUID of the kit.
string
required
UUID of the asset.
Response
string
Asset UUID.
string
Stable connector-assigned key (e.g.
reolink_192_168_0_10).string
Display name.
string
camera · drone · radio · sensor · vehicle · gatewaystring
Manufacturer.
null for partner assets.string
Hardware model.
null if not reported.string
reolink · onvif · mavlink · silvus · partnerobject
string
online · offlinestring
ISO 8601 UTC timestamp of last heartbeat.
number
Last known latitude.
null if not set.number
Last known longitude.
null if not set.number
Last known altitude in meters.
null if not set.string
Parent asset UUID.
null for top-level assets.Example
asset = client.get_asset(kit_id, asset_id)
print(asset["name"], asset["type"], asset["status"])
print(asset["metadata"])
const asset = await client.getAsset(kitId, assetId)
console.log(asset.name, asset.type, asset.status)
curl https://argus.hoplynk.com/api/kits/$KIT_ID/assets/$ASSET_ID \
-H "X-API-Key: hlk_..."
Response (camera)
{
"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
}
Response (drone)
{
"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
}