Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gnmyt/Nexterm/llms.txt

Use this file to discover all available pages before exploring further.

Entries are the core resource in Nexterm. Each entry represents a single connection target — an SSH server, RDP host, VNC endpoint, or Proxmox VE resource. The entries API lets you create and manage these connections, import bulk configs, reorder entries in the sidebar, and send Wake-On-LAN packets. All endpoints require authentication via Authorization: Bearer YOUR_TOKEN.

GET /api/entry/list

Returns all entries accessible to the authenticated user, including both personal entries and entries shared through organizations.

Response

Returns an array of entry objects.
[].id
number
Unique entry identifier.
[].name
string
Display name of the entry.
[].type
string
Entry type. One of server, pve-shell, pve-lxc, or pve-qemu.
[].icon
string
Optional icon identifier.
[].folderId
number
ID of the folder this entry belongs to, or null if at the root level.
[].organizationId
number
ID of the organization this entry belongs to, or null for personal entries.
[].config
object
curl --request GET \
  --url http://your-server:6989/api/entry/list \
  --header 'Authorization: Bearer YOUR_TOKEN'

GET /api/entry/recent

Returns recently connected entries for the authenticated user, ordered by most recent activity.

Query parameters

limit
number
default:"5"
Maximum number of recent connections to return.

Response

Returns an array of recent entry objects with the same shape as the list response.
curl --request GET \
  --url 'http://your-server:6989/api/entry/recent?limit=10' \
  --header 'Authorization: Bearer YOUR_TOKEN'

GET /api/entry/:entryId

Returns the full details of a single entry.

Path parameters

entryId
string
required
Unique identifier of the entry.

Response

Returns a single entry object. See the list response above for field descriptions.
curl --request GET \
  --url http://your-server:6989/api/entry/42 \
  --header 'Authorization: Bearer YOUR_TOKEN'

PUT /api/entry

Creates a new entry.

Request body

name
string
required
Display name for the entry. Cannot be empty.
config
object
required
Connection configuration object.
type
string
default:"server"
Entry type. One of server, pve-shell, pve-lxc, or pve-qemu.
folderId
number
ID of the folder to place the entry in. Omit or pass null to place at root.
organizationId
number
ID of the organization to assign the entry to. Omit for a personal entry.
icon
string
Icon identifier for the entry.
renderer
string
Terminal renderer preference.
identities
number[]
Array of identity IDs to associate with this entry.

Response

id
number
ID of the newly created entry.
message
string
Confirmation message.
curl --request PUT \
  --url http://your-server:6989/api/entry \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Production Web Server",
    "type": "server",
    "config": {
      "protocol": "ssh",
      "ip": "192.168.1.10",
      "port": 22
    },
    "identities": [1]
  }'

PATCH /api/entry/:entryId

Updates an existing entry. Only the fields you include in the request body are changed.

Path parameters

entryId
string
required
Unique identifier of the entry to update.

Request body

All fields are optional. Include only the fields you want to change. The config object follows the same schema as PUT /api/entry.
name
string
New display name.
folderId
number
Move the entry to a different folder. Pass null to move to root.
organizationId
number
Reassign to a different organization, or null to make personal.
icon
string
Updated icon identifier.
type
string
Updated entry type.
renderer
string
Updated renderer preference.
identities
number[]
Replacement list of identity IDs.
config
object
Partial config update. Unset fields are left unchanged.

Response

message
string
Confirmation message.
curl --request PATCH \
  --url http://your-server:6989/api/entry/42 \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"name": "Renamed Server", "config": {"port": 2222}}'

DELETE /api/entry/:entryId

Permanently deletes an entry. This action cannot be undone.

Path parameters

entryId
string
required
Unique identifier of the entry to delete.

Response

message
string
Confirmation message.
curl --request DELETE \
  --url http://your-server:6989/api/entry/42 \
  --header 'Authorization: Bearer YOUR_TOKEN'

POST /api/entry/:entryId/duplicate

Creates an exact copy of an existing entry with all its settings preserved. The duplicate is treated as an independent entry.

Path parameters

entryId
string
required
Unique identifier of the entry to duplicate.

Response

message
string
Confirmation message.
curl --request POST \
  --url http://your-server:6989/api/entry/42/duplicate \
  --header 'Authorization: Bearer YOUR_TOKEN'

POST /api/entry/import/ssh-config

Imports one or more pre-processed entry configurations with specific identities already assigned. Use this endpoint to bulk-import connections from an SSH config parser.

Request body

The body is an object (or array) of entry configurations with identities pre-resolved. The exact shape depends on the output of your SSH config parser.

Response

imported
number
Number of entries successfully imported.
failed
number
Number of entries that failed to import.
curl --request POST \
  --url http://your-server:6989/api/entry/import/ssh-config \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[{"name": "server-1", "config": {"protocol": "ssh", "ip": "10.0.0.1", "port": 22}, "identities": [1]}]'

PATCH /api/entry/:entryId/reposition

Moves an entry to a new position in the sidebar, either before or after a target entry. Use targetId: null with placement: "after" to move the entry to the end of a folder or root.

Path parameters

entryId
string
required
Unique identifier of the entry to reposition.

Request body

placement
string
required
Where to place the entry relative to the target. One of before or after.
targetId
number
The entry ID to position relative to. Pass null to move to the end.
folderId
number
Destination folder ID. Pass null to move to the root level.
organizationId
number
Destination organization ID, or null for personal scope.

Response

message
string
Confirmation message.
curl --request PATCH \
  --url http://your-server:6989/api/entry/42/reposition \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"targetId": 38, "placement": "after"}'

POST /api/entry/:entryId/wake

Sends a Wake-On-LAN magic packet to the server associated with the entry. The entry must have wakeOnLanEnabled: true and a valid macAddress in its config.

Path parameters

entryId
string
required
Unique identifier of the entry to wake.

Response

message
string
Confirmation that the magic packet was sent.
curl --request POST \
  --url http://your-server:6989/api/entry/42/wake \
  --header 'Authorization: Bearer YOUR_TOKEN'
A 400 is returned if the entry has no MAC address configured or if the entry type does not support Wake-On-LAN.

Build docs developers (and LLMs) love