API Endpoint Reference (v3)
You are viewing the v3 endpoint reference. v3 is the recommended API for all new integrations.
Switch to the v2.0 endpoint reference for the legacy flat-structure API.
This page lists all user-facing endpoints of the vHaaS REST API v3.
Base URL: https://vhaas.vector.cloud/api/v3
All endpoints require authentication via Authorization: Bearer <JWT> or private-token: <Access Token>, unless stated otherwise. Endpoints marked Admin require the organization_admin or instance_admin role.
Organization scope
Most v3 endpoints are scoped to an organization: /api/v3/organizations/{organization_id}/.... Replace {organization_id} with the UUID of your organization. Use GET /api/v3/self or GET /api/v3/organizations to look up your organization ID.
User & Profile
GET /api/v3/self
Returns the profile of the authenticated user, including organization memberships, group memberships, and owned assemblies.
Response fields: user_id, email, display_name, organizations[], groups[]
GET /api/v3/self/organizations
Lists all organizations the authenticated user is a member of.
| Query param | Type | Description |
|---|---|---|
search |
string | Filter by organization name. |
page |
integer | Page number (default: 1). |
size |
integer | Items per page (default: 50). |
GET /api/v3/users/{user_id}
Returns public profile information for a specific user.
GET /api/v3/users/{user_id}/settings
Returns the settings for a specific user (own profile only).
PATCH /api/v3/users/{user_id}/settings
Updates settings for the authenticated user.
Personal Access Tokens
Tokens scoped to a user for use in scripts and CI pipelines.
| Method | Path | Description |
|---|---|---|
GET |
/api/v3/users/{user_id}/personal-tokens |
List all personal tokens. |
POST |
/api/v3/users/{user_id}/personal-tokens |
Create a personal token. |
GET |
/api/v3/users/{user_id}/personal-tokens/{token_id} |
Get a single token. |
PATCH |
/api/v3/users/{user_id}/personal-tokens/{token_id} |
Revoke a token. |
DELETE |
/api/v3/users/{user_id}/personal-tokens/{token_id} |
Delete a token. |
Create token request body:
Organizations
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations |
List organizations visible to the authenticated user. | Required |
GET |
/api/v3/organizations/{organization_id} |
Get a single organization. | Required |
POST |
/api/v3/organizations |
Create an organization. | Admin |
PATCH |
/api/v3/organizations/{organization_id} |
Rename an organization. | Admin |
DELETE |
/api/v3/organizations/{organization_id} |
Delete an organization. | Admin |
Query params for GET /organizations:
| Param | Type | Description |
|---|---|---|
search |
string | Filter by name. |
page / size |
integer | Pagination. |
Organization Users
Manage which users belong to an organization and what roles they hold.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/users |
List users in the organization. | Required |
POST |
/api/v3/organizations/{org_id}/users |
Add a user to the organization. | Admin |
GET |
/api/v3/organizations/{org_id}/users/{user_id} |
Get a user's role, groups, and assemblies within the org. | Required |
PATCH |
/api/v3/organizations/{org_id}/users/{user_id} |
Update a user's role in the organization. | Admin |
DELETE |
/api/v3/organizations/{org_id}/users/{user_id} |
Remove a user from the organization. | Admin |
GET |
/api/v3/organizations/{org_id}/users/{user_id}/groups |
List groups the user belongs to in this org. | Required |
PUT |
/api/v3/organizations/{org_id}/users/{user_id}/favorite-assemblies/{assembly_ref} |
Add an assembly to a user's favorites. | Required |
DELETE |
/api/v3/organizations/{org_id}/users/{user_id}/favorite-assemblies/{assembly_ref} |
Remove an assembly from a user's favorites. | Required |
Query params for GET /users:
| Param | Type | Description |
|---|---|---|
search |
string | Filter by name or email. |
is_technical |
boolean | Filter to technical users (service accounts) only. |
exclude_group_id |
UUID | Exclude users already in a specific group. |
page / size |
integer | Pagination. |
Groups
Groups organize users and determine which assemblies they can access.
Group Management
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/groups |
List all groups in the organization. | Required |
POST |
/api/v3/organizations/{org_id}/groups |
Create a group. | Admin |
GET |
/api/v3/organizations/{org_id}/groups/{group_id} |
Get a single group. | Required |
PATCH |
/api/v3/organizations/{org_id}/groups/{group_id} |
Rename a group. | Admin |
DELETE |
/api/v3/organizations/{org_id}/groups/{group_id} |
Delete a group. | Admin |
Group Users
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/groups/{group_id}/users |
List users in the group. | Required |
POST |
/api/v3/organizations/{org_id}/groups/{group_id}/users |
Add a user to the group. | Admin |
PATCH |
/api/v3/organizations/{org_id}/groups/{group_id}/users/{user_id} |
Update a user's role in the group. | Admin |
DELETE |
/api/v3/organizations/{org_id}/groups/{group_id}/users/{user_id} |
Remove a user from the group. | Admin |
Group Assemblies
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/groups/{group_id}/assemblies |
List assemblies assigned to the group. | Required |
POST |
/api/v3/organizations/{org_id}/groups/{group_id}/assemblies |
Assign an assembly to the group. | Admin |
DELETE |
/api/v3/organizations/{org_id}/groups/{group_id}/assemblies/{assembly_ref} |
Remove an assembly from the group. | Admin |
Group Service Tokens
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/groups/{group_id}/service-tokens |
List service tokens for the group. | Group Admin |
POST |
/api/v3/organizations/{org_id}/groups/{group_id}/service-tokens |
Create a group service token. | Group Admin |
GET |
/api/v3/organizations/{org_id}/groups/{group_id}/service-tokens/{token_id} |
Get a service token. | Group Admin |
DELETE |
/api/v3/organizations/{org_id}/groups/{group_id}/service-tokens/{token_id} |
Delete a service token. | Group Admin |
Assemblies
An Assembly is a logical grouping of physical hardware (ECUs, interfaces, power supplies) available for remote access.
Assembly Collection
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/assemblies |
List assemblies visible to the user. | Required |
GET |
/api/v3/organizations/{org_id}/assemblies/enriched |
List assemblies with full VM, group, and status details. | Required |
POST |
/api/v3/organizations/{org_id}/assemblies |
Create an assembly. | Admin |
Query params for GET /assemblies:
| Param | Type | Description |
|---|---|---|
search |
string | Filter by name or reference. |
cluster_ref |
string | Filter by cluster. |
favorite |
boolean | Show only favorite assemblies. |
page / size |
integer | Pagination. |
Additional query params for /assemblies/enriched:
| Param | Type | Description |
|---|---|---|
status_type[] |
string | Filter by board status. |
group[] |
string | Filter by group ID. |
vm_hostname[] |
string | Filter by VM hostname. |
supplier[] / family[] / variant[] |
string | Filter by hardware catalog attributes. |
user_name |
string | Filter by current session owner. |
Assembly Detail
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/assemblies/{assembly_ref} |
Get a single assembly. | Required |
PATCH |
/api/v3/organizations/{org_id}/assemblies/{assembly_ref} |
Update assembly metadata. | Admin |
DELETE |
/api/v3/organizations/{org_id}/assemblies/{assembly_ref} |
Delete an assembly. | Admin |
Device Sequences
Ordered lists of switching steps saved on an assembly. All paths below are relative to
/api/v3/organizations/{org_id}/assemblies/{assembly_ref}.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
…/device-sequences |
List the device sequences of an assembly. | Required |
POST |
…/device-sequences |
Create a device sequence. | Required |
GET |
…/device-sequences/{sequence_id} |
Get a device sequence. | Required |
PATCH |
…/device-sequences/{sequence_id} |
Update a device sequence. | Required |
DELETE |
…/device-sequences/{sequence_id} |
Delete a device sequence. | Required |
POST |
…/device-sequences/{sequence_id}/run |
Execute a device sequence. | Required |
GET |
…/device-sequences/{sequence_id}/run |
List the latest runs of a sequence. | Required |
GET |
…/device-sequences/{sequence_id}/run/{run_id} |
Get the status of a specific run. | Required |
PATCH |
…/device-sequences/{sequence_id}/run/{run_id} |
Update the run status, e.g. to cancel a running sequence. | Required |
A run is executed asynchronously: POST …/run returns immediately and the run reports its progress
through its own status. Runs of the same assembly's virtual machine are serialized.
Sessions & Bookings
A session (booking) grants exclusive access to an assembly for a defined time window.
Assembly Sessions
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/assembly-sessions |
List sessions. | Required |
POST |
/api/v3/organizations/{org_id}/assembly-sessions |
Create (book) a session. | Required |
GET |
/api/v3/organizations/{org_id}/assembly-sessions/{session_id} |
Get session status and details. | Required |
PATCH |
/api/v3/organizations/{org_id}/assembly-sessions/{session_id} |
Update session (e.g. extend end time). | Required |
DELETE |
/api/v3/organizations/{org_id}/assembly-sessions/{session_id} |
Release a session immediately. | Required |
GET |
/api/v3/organizations/{org_id}/assembly-sessions/{session_id}/session-tasks |
Get tasks associated with a session. | Required |
Query params for GET /assembly-sessions:
| Param | Type | Description |
|---|---|---|
assembly_ref |
string | Filter by assembly reference. |
start_time |
datetime | Filter sessions starting after this timestamp. |
end_time |
datetime | Filter sessions ending before this timestamp. |
page / size |
integer | Pagination. |
Create session request body:
{
"assembly_ref": "ASSEMBLY-101",
"start_time": "2026-07-01T08:00:00Z",
"end_time": "2026-07-01T17:00:00Z"
}
Session Contexts
A session context is the active environment established when a booked session starts (credentials, connection parameters).
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/assembly-session-contexts |
List session contexts. | Required |
POST |
/api/v3/organizations/{org_id}/assembly-session-contexts |
Create a session context. | Required |
GET |
/api/v3/organizations/{org_id}/assembly-session-contexts/{context_id} |
Get a session context. | Required |
DELETE |
/api/v3/organizations/{org_id}/assembly-session-contexts/{context_id} |
Delete a session context. | Required |
Session Transfers
Transfer ownership of an active session to another user.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/assembly-session-transfers |
List transfer requests. | Required |
POST |
/api/v3/organizations/{org_id}/assembly-session-transfers |
Request a session transfer. | Required |
PATCH |
/api/v3/organizations/{org_id}/assembly-session-transfers/{transfer_id} |
Approve or reject a transfer request. | Required |
Create transfer request body:
Approve / reject body:
Jobs
Jobs represent scheduled or running automation tasks on an assembly.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/jobs |
List jobs. | Required |
POST |
/api/v3/organizations/{org_id}/jobs |
Create a job. | Required |
GET |
/api/v3/organizations/{org_id}/jobs/{job_id} |
Get a single job. | Required |
DELETE |
/api/v3/organizations/{org_id}/jobs/{job_id} |
Cancel / delete a job. | Required |
Query params for GET /jobs:
| Param | Type | Description |
|---|---|---|
job_ids[] |
UUID | Filter by specific job IDs. |
user_ids[] |
string | Filter by user. |
status |
string | Filter by status (e.g. running, completed, failed). |
page / size |
integer | Pagination. |
Virtual Machines
Virtual Machines (VMs) provide the remote development environment paired with an assembly.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/virtual-machines |
List VMs. | Required |
POST |
/api/v3/organizations/{org_id}/virtual-machines |
Create a VM. | Admin |
GET |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id} |
Get a single VM. | Required |
PATCH |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id} |
Update VM properties. | Admin |
DELETE |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id} |
Delete a VM. | Admin |
GET |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id}/credentials |
Get VM credentials. | Admin |
POST |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id}/credentials |
Set VM credentials. | Admin |
DELETE |
/api/v3/organizations/{org_id}/virtual-machines/{vm_id}/credentials |
Delete VM credentials. | Admin |
Query params for GET /virtual-machines:
| Param | Type | Description |
|---|---|---|
assigned |
boolean | true = only VMs assigned to an assembly, false = unassigned only. |
cluster_ref |
string | Filter by cluster. |
assembly_refs[] |
string | Filter by specific assembly references. |
search |
string | Filter by hostname. |
page / size |
integer | Pagination. |
Clusters
Clusters group the physical infrastructure (NUCs, network segments) that host assemblies.
Cluster Management
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/clusters |
List clusters. | Required |
POST |
/api/v3/organizations/{org_id}/clusters |
Create a cluster. | Admin |
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref} |
Get a single cluster. | Required |
PATCH |
/api/v3/organizations/{org_id}/clusters/{cluster_ref} |
Update cluster metadata. | Admin |
DELETE |
/api/v3/organizations/{org_id}/clusters/{cluster_ref} |
Delete a cluster. | Admin |
Cluster Partitions
Partitions segment a cluster into isolated network zones.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/clusters/cluster-partitions |
List all partitions across the org. | Required |
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-partitions |
List partitions for a cluster. | Required |
POST |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-partitions |
Create a partition. | Admin |
PATCH |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-partitions/{partition_id} |
Update a partition. | Admin |
DELETE |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-partitions/{partition_id} |
Delete a partition. | Admin |
Cluster IPs & Sensors
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips |
List cluster IP entries. | Required |
POST |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips |
Add a cluster IP. | Admin |
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id} |
Get a cluster IP. | Required |
PATCH |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id} |
Update a cluster IP. | Admin |
DELETE |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id} |
Delete a cluster IP. | Admin |
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id}/sensor-configs |
List sensor configurations for an IP. | Required |
GET |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id}/sensor-configs/{sensor_number} |
Get a specific sensor config. | Required |
PATCH |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/cluster-ips/{ip_id}/sensor-configs/{sensor_number} |
Update a sensor config. | Admin |
Cluster Assemblies
| Method | Path | Description | Auth |
|---|---|---|---|
POST |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/assemblies |
Assign an assembly to a cluster. | Admin |
DELETE |
/api/v3/organizations/{org_id}/clusters/{cluster_ref}/assemblies/{assembly_ref} |
Remove an assembly from a cluster. | Admin |
Hardware Catalog
The hardware catalog defines the device types (suppliers, families, versions) that can be used in assembly profiles.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/hardware/device-suppliers |
List device suppliers. | Required |
GET |
/api/v3/organizations/{org_id}/hardware/device-suppliers/{supplier_id} |
Get a supplier. | Required |
GET |
/api/v3/organizations/{org_id}/hardware/device-suppliers/{supplier_id}/families |
List device families for a supplier. | Required |
GET |
/api/v3/organizations/{org_id}/hardware/device-suppliers/{supplier_id}/families/{family_id} |
Get a device family. | Required |
GET |
/api/v3/organizations/{org_id}/hardware/device-suppliers/{supplier_id}/families/{family_id}/versions |
List device versions for a family. | Required |
Metrics & Monitoring
Query time-series metrics for assemblies, virtual machines, and clusters.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/metrics/assembly-panels |
Get assembly metrics (CPU, memory, network, disk, embedded hardware). | Required |
GET |
/api/v3/organizations/{org_id}/metrics/virtual-machine-panels |
Get VM metrics. | Required |
GET |
/api/v3/organizations/{org_id}/metrics/cluster-panels |
Get cluster metrics. | Required |
Query params (all metrics endpoints):
| Param | Type | Description |
|---|---|---|
assembly_ref / virtual_machine_id / cluster_ref |
string | ID of the resource to query. |
query_key |
string | Metric panel identifier (e.g. cpu_load, memory, network). |
start |
datetime | Start of the time range. |
end |
datetime | End of the time range. |
step |
string | Resolution step (e.g. 1m, 5m, 1h). |
Announcement Banners
System-wide or assembly-scoped notification messages shown in the Web UI.
Announcement Banners (global per org)
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/announcement-banners |
List announcement banners. | Required |
POST |
/api/v3/organizations/{org_id}/announcement-banners |
Create an announcement banner. | Admin |
PATCH |
/api/v3/organizations/{org_id}/announcement-banners/{banner_id} |
Update a banner. | Admin |
DELETE |
/api/v3/organizations/{org_id}/announcement-banners/{banner_id} |
Delete a banner. | Admin |
Assembly Banners (scoped to specific assemblies)
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/banners |
List assembly-scoped banners. | Required |
POST |
/api/v3/organizations/{org_id}/banners |
Create an assembly banner. | Admin |
PATCH |
/api/v3/organizations/{org_id}/banners/{banner_id} |
Update a banner. | Admin |
DELETE |
/api/v3/organizations/{org_id}/banners/{banner_id} |
Delete a banner. | Admin |
Organization Service Tokens
Long-lived tokens scoped to an organization, used for CI runners and automation pipelines.
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/organizations/{org_id}/service-tokens |
List organization service tokens. | Admin |
POST |
/api/v3/organizations/{org_id}/service-tokens |
Create an organization service token. | Admin |
GET |
/api/v3/organizations/{org_id}/service-tokens/{token_id} |
Get a service token. | Admin |
PATCH |
/api/v3/organizations/{org_id}/service-tokens/{token_id} |
Revoke a service token. | Admin |
DELETE |
/api/v3/organizations/{org_id}/service-tokens/{token_id} |
Delete a service token. | Admin |
Health & System
| Method | Path | Description | Auth |
|---|---|---|---|
GET |
/api/v3/config |
Returns OIDC configuration for the frontend. | None |
GET |
/livez |
Kubernetes liveness probe. | None |
GET |
/readyz |
Kubernetes readiness probe (includes database connectivity check). | None |