curl --request GET \
--url https://acusight.io/api/core/devices/{device_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://acusight.io/api/core/devices/{device_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://acusight.io/api/core/devices/{device_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://acusight.io/api/core/devices/{device_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://acusight.io/api/core/devices/{device_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://acusight.io/api/core/devices/{device_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://acusight.io/api/core/devices/{device_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"auto_assign_to": 123,
"compose_file_path": "<string>",
"config_last_sync": "<string>",
"created_at": "<string>",
"device_id": "<string>",
"device_type": "<string>",
"edge_key": "<string>",
"hls_port": 123,
"id": 123,
"ip_address": "<string>",
"last_seen": "<string>",
"last_snapshot_at": "<string>",
"name": "<string>",
"organization_id": "<string>",
"pipelines": [
{
"auto_assign_to": 123,
"config": [
123
],
"config_synced_at": "<string>",
"created_at": "<string>",
"current_config": [
123
],
"current_topology": [
123
],
"description": "<string>",
"desired_config": [
123
],
"device": "<unknown>",
"device_id": "<string>",
"hls_port": 123,
"id": 123,
"last_snapshot_at": "<string>",
"name": "<string>",
"organization_id": "<string>",
"pipeline_id": "<string>",
"running_model_version_id": 123,
"status": "<string>",
"stream_path": "<string>",
"target_model_version_id": 123,
"updated_at": "<string>",
"video_source_type": "<string>",
"video_source_url": "<string>",
"webrtc_port": 123
}
],
"portainer_endpoint_id": 123,
"provisioned_at": "<string>",
"provisioned_by": "<string>",
"running_model": {
"alias": "<string>",
"archived_at": "<string>",
"artifact_uri": "<string>",
"class_labels": [
123
],
"created_at": "<string>",
"display_name": "<string>",
"format": "<string>",
"framework": "<string>",
"id": 123,
"is_reference": true,
"model_type": "<string>",
"project_id": 123,
"source_model_version_id": 123,
"updated_at": "<string>",
"version": 123,
"version_id": 123
},
"running_model_version_id": 123,
"status": "<string>",
"stream_path": "<string>",
"target_model": {
"alias": "<string>",
"archived_at": "<string>",
"artifact_uri": "<string>",
"class_labels": [
123
],
"created_at": "<string>",
"display_name": "<string>",
"format": "<string>",
"framework": "<string>",
"id": 123,
"is_reference": true,
"model_type": "<string>",
"project_id": 123,
"source_model_version_id": 123,
"updated_at": "<string>",
"version": 123,
"version_id": 123
},
"target_model_version_id": 123,
"updated_at": "<string>",
"virtual_device_config": {
"active_track_count": 123,
"batch_size": 123,
"created_at": "<string>",
"current_image_index": 123,
"dataset_format": "<string>",
"dataset_path": "<string>",
"dataset_version_id": 123,
"device_id": "<string>",
"event_frequency": 123,
"event_types": "<string>",
"id": 123,
"loop": true,
"max_concurrent_tracks": 123,
"random_order": true,
"simulation_mode": "<string>",
"simulation_status": "<string>",
"total_events_sent": 123,
"total_images": 123,
"total_images_uploaded": 123,
"track_max_duration": 123,
"track_min_duration": 123,
"updated_at": "<string>",
"upload_frequency": 123
},
"webrtc_port": 123
}{}{}Get device details
Retrieve device information by numeric ID or device identifier
curl --request GET \
--url https://acusight.io/api/core/devices/{device_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://acusight.io/api/core/devices/{device_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://acusight.io/api/core/devices/{device_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://acusight.io/api/core/devices/{device_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://acusight.io/api/core/devices/{device_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://acusight.io/api/core/devices/{device_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://acusight.io/api/core/devices/{device_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"auto_assign_to": 123,
"compose_file_path": "<string>",
"config_last_sync": "<string>",
"created_at": "<string>",
"device_id": "<string>",
"device_type": "<string>",
"edge_key": "<string>",
"hls_port": 123,
"id": 123,
"ip_address": "<string>",
"last_seen": "<string>",
"last_snapshot_at": "<string>",
"name": "<string>",
"organization_id": "<string>",
"pipelines": [
{
"auto_assign_to": 123,
"config": [
123
],
"config_synced_at": "<string>",
"created_at": "<string>",
"current_config": [
123
],
"current_topology": [
123
],
"description": "<string>",
"desired_config": [
123
],
"device": "<unknown>",
"device_id": "<string>",
"hls_port": 123,
"id": 123,
"last_snapshot_at": "<string>",
"name": "<string>",
"organization_id": "<string>",
"pipeline_id": "<string>",
"running_model_version_id": 123,
"status": "<string>",
"stream_path": "<string>",
"target_model_version_id": 123,
"updated_at": "<string>",
"video_source_type": "<string>",
"video_source_url": "<string>",
"webrtc_port": 123
}
],
"portainer_endpoint_id": 123,
"provisioned_at": "<string>",
"provisioned_by": "<string>",
"running_model": {
"alias": "<string>",
"archived_at": "<string>",
"artifact_uri": "<string>",
"class_labels": [
123
],
"created_at": "<string>",
"display_name": "<string>",
"format": "<string>",
"framework": "<string>",
"id": 123,
"is_reference": true,
"model_type": "<string>",
"project_id": 123,
"source_model_version_id": 123,
"updated_at": "<string>",
"version": 123,
"version_id": 123
},
"running_model_version_id": 123,
"status": "<string>",
"stream_path": "<string>",
"target_model": {
"alias": "<string>",
"archived_at": "<string>",
"artifact_uri": "<string>",
"class_labels": [
123
],
"created_at": "<string>",
"display_name": "<string>",
"format": "<string>",
"framework": "<string>",
"id": 123,
"is_reference": true,
"model_type": "<string>",
"project_id": 123,
"source_model_version_id": 123,
"updated_at": "<string>",
"version": 123,
"version_id": 123
},
"target_model_version_id": 123,
"updated_at": "<string>",
"virtual_device_config": {
"active_track_count": 123,
"batch_size": 123,
"created_at": "<string>",
"current_image_index": 123,
"dataset_format": "<string>",
"dataset_path": "<string>",
"dataset_version_id": 123,
"device_id": "<string>",
"event_frequency": 123,
"event_types": "<string>",
"id": 123,
"loop": true,
"max_concurrent_tracks": 123,
"random_order": true,
"simulation_mode": "<string>",
"simulation_status": "<string>",
"total_events_sent": 123,
"total_images": 123,
"total_images_uploaded": 123,
"track_max_duration": 123,
"track_min_duration": 123,
"updated_at": "<string>",
"upload_frequency": 123
},
"webrtc_port": 123
}{}{}Authorizations
JWT access token. Paste the token only; the Bearer prefix is added automatically.
Path Parameters
Device ID (numeric or device identifier)
Response
Device details
Auto-assign to ProjectID
Path to docker-compose.yml on device
When config was last extracted
"physical" | "virtual"
Temporary storage for Portainer edge key (cleared after deployment)
Edge service configuration (auto-discovered or manual override)
Network configuration for live streaming (WebRTC)
Heartbeat and model tracking
Timestamp of most recent snapshot upload
Multi-tenant fields
Show child attributes
Show child attributes
Links to Portainer endpoint
When device was provisioned via token
Token ID that provisioned this device
Show child attributes
Show child attributes
Actual state — reported by agent
pending, approved, deployed, rejected
Stream path on MediaMTX (default: "sp")
Show child attributes
Show child attributes
Desired state — set on deploy
Relationships
Show child attributes
Show child attributes
MediaMTX WebRTC port (default: 8889)
Was this page helpful?