Nodes
Manage remote 3x-ui panels acting as nodes for a central panel. All endpoints under /panel/api/nodes.
API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Response Body
application/json
curl -X GET "https://example.com/panel/api/nodes/list"{ "success": true, "obj": [ { "activeCount": 23, "address": "node1.example.com", "allowPrivateAddress": false, "apiToken": "abcdef0123456789", "basePath": "/", "clientCount": 27, "configDirty": false, "configDirtyAt": 0, "cpuPct": 23.5, "createdAt": 1700000000, "depletedCount": 1, "disabledCount": 3, "enable": true, "guid": "", "id": 1, "inboundCount": 5, "inboundSyncMode": "all", "inboundTags": [ "" ], "lastError": "", "lastHeartbeat": 1700000000, "latencyMs": 42, "memPct": 45.1, "name": "de-fra-1", "netDown": 2097152, "netUp": 1048576, "onlineCount": 3, "outboundTag": "", "panelVersion": "v3.x.x", "parentGuid": "", "pinnedCertSha256": "", "port": 2053, "remark": "", "scheme": "https", "status": "online", "tlsVerifyMode": "verify", "transitive": false, "updatedAt": 1700000000, "uptimeSecs": 86400, "xrayError": "", "xrayState": "", "xrayVersion": "25.10.31" } ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/mtls/ca"{ "success": true, "obj": { "caCert": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n" }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/mtls/trustCA" \ -H "Content-Type: application/json" \ -d '{ "caCert": "-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----\\n" }'{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Response Body
application/json
curl -X GET "https://example.com/panel/api/nodes/get/0"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Response Body
application/json
curl -X GET "https://example.com/panel/api/nodes/webCert/0"{ "success": true, "obj": { "webCertFile": "/root/cert/example.com/fullchain.pem", "webKeyFile": "/root/cert/example.com/privkey.pem" }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/add" \ -H "Content-Type: application/json" \ -d '{ "name": "de-fra-1", "remark": "", "scheme": "https", "address": "node1.example.com", "port": 2053, "basePath": "/", "apiToken": "abcdef...", "enable": true, "allowPrivateAddress": false }'{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/update/0" \ -H "Content-Type: application/json" \ -d '{ "name": "de-fra-1", "remark": "", "scheme": "https", "address": "node1.example.com", "port": 2053, "basePath": "/", "apiToken": "abcdef...", "enable": true, "allowPrivateAddress": false }'{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/del/0"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/setEnable/0" \ -H "Content-Type: application/json" \ -d '{ "enable": true }'{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/test" \ -H "Content-Type: application/json" \ -d '{ "scheme": "https", "address": "node1.example.com", "port": 2053, "basePath": "/", "apiToken": "abcdef..." }'{ "success": true, "obj": { "cpuPct": 12.5, "error": "", "latencyMs": 42, "memPct": 45.2, "panelVersion": "v3.x.x", "status": "online", "uptimeSecs": 86400, "xrayError": "", "xrayState": "", "xrayVersion": "25.10.31" }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/certFingerprint" \ -H "Content-Type: application/json" \ -d '{ "scheme": "https", "address": "node1.example.com", "port": 2053, "basePath": "/" }'{ "success": true, "obj": "k3b1...base64-sha256...="}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/inbounds" \ -H "Content-Type: application/json" \ -d '{ "name": "de-fra-1", "scheme": "https", "address": "node1.example.com", "port": 2053, "basePath": "/", "apiToken": "abcdef..." }'{ "success": true, "obj": [ { "tag": "inbound-443", "remark": "VLESS", "protocol": "vless", "port": 443 } ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/probe/0"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/nodes/updatePanel" \ -H "Content-Type: application/json" \ -d '{ "ids": [ 1, 2, 3 ], "dev": false }'{ "success": true, "obj": [ { "id": 1, "name": "de-1", "ok": true }, { "id": 2, "name": "fr-1", "ok": false, "error": "node is offline" } ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Node ID.
cpu | mem.
Bucket size in seconds. Allowed: 2, 30, 60, 120, 180, 300.
Response Body
application/json
curl -X GET "https://example.com/panel/api/nodes/history/0/string/0"{ "success": true, "msg": "string", "obj": null}
3x-ui