Server
System status, log retrieval, certificate generators, Xray binary management, and backup/restore. All under /panel/api/server.
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/openapi.json"{ "success": true, "msg": "string", "obj": null}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/server/status"{ "success": true, "obj": { "cpu": 12.5, "mem": { "current": 2147483648, "total": 8589934592 }, "swap": { "current": 0, "total": 4294967296 }, "disk": { "current": 53687091200, "total": 268435456000 }, "netIO": { "up": 1073741824, "down": 2147483648 }, "xray": { "state": "running", "version": "v25.10.31" }, "tcpCount": 42, "load": { "load1": 0.5, "load5": 0.3, "load15": 0.2 } }}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/server/fail2banStatus"{ "success": true, "obj": { "enabled": true, "installed": true, "usable": true, "windows": false }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Bucket size in seconds. Allowed: 2, 30, 60, 120, 180, 300.
Response Body
application/json
curl -X GET "https://example.com/panel/api/server/cpuHistory/0"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
cpu | mem | netUp | netDown | online | load1 | load5 | load15.
Bucket size in seconds. Allowed: 2, 30, 60, 120, 180, 300.
Response Body
application/json
curl -X GET "https://example.com/panel/api/server/history/string/0"{ "success": true, "obj": [ { "t": 1700000000, "v": 12.5 }, { "t": 1700000002, "v": 13.1 } ]}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/server/xrayMetricsState"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
xrAlloc | xrSys | xrHeapObjects | xrNumGC | xrPauseNs.
Bucket size in seconds. Allowed: 2, 30, 60, 120, 180, 300.
Response Body
application/json
curl -X GET "https://example.com/panel/api/server/xrayMetricsHistory/string/0"{ "success": true, "msg": "string", "obj": null}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/server/xrayObservatory"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Outbound tag from the observatory config.
Bucket size in seconds. Allowed: 2, 30, 60, 120, 180, 300.
Response Body
application/json
curl -X GET "https://example.com/panel/api/server/xrayObservatoryHistory/string/0"{ "success": true, "msg": "string", "obj": null}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/server/getXrayVersion"{ "success": true, "obj": [ "v25.10.31", "v25.9.15", "v25.8.1" ]}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/server/getPanelUpdateInfo"{ "success": true, "msg": "string", "obj": null}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/server/getUpdateStatus"{ "success": true, "obj": { "exitCode": 0, "finishedAt": 1735689612, "runId": "1735689600123456789", "state": "success" }}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/server/getConfigJson"{ "success": true, "msg": "string", "obj": null}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/server/getDb"{ "success": true, "msg": "string", "obj": null}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/server/getMigration"{ "success": true, "msg": "string", "obj": null}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/server/getNewUUID"{ "success": true, "obj": { "uuid": "550e8400-e29b-41d4-a716-446655440000" }}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/server/getWebCertFiles"{ "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
Response Body
application/json
curl -X GET "https://example.com/panel/api/server/descendants"{ "success": true, "obj": [ { "guid": "c3d4-...", "parentGuid": "a1b2-...", "name": "Node3", "address": "10.0.0.3", "status": "online" } ]}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/server/getNewX25519Cert"{ "success": true, "obj": { "privateKey": "uN9qLfV3zH8w...", "publicKey": "5v8xPqR2sM7k..." }}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/server/getNewmldsa65"{ "success": true, "obj": { "seed": "mldsa65-seed", "verify": "mldsa65-verify" }}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/server/getNewmlkem768"{ "success": true, "obj": { "client": "mlkem768-client", "seed": "mlkem768-seed" }}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/server/getNewVlessEnc"{ "success": true, "obj": { "auths": [ { "id": 0, "label": "Auth #0", "encryption": "aes-256-gcm", "decryption": "" } ] }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Response Body
application/json
application/json
curl -X POST "https://example.com/panel/api/server/stopXrayService"{ "success": true, "msg": "string", "obj": null}Reload Xray with the current config. Typically required after structural inbound or routing changes.
API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Response Body
application/json
application/json
curl -X POST "https://example.com/panel/api/server/restartXrayService"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Xray tag (e.g. v25.10.31) or "latest".
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/installXray/string"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/updatePanel" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d ''{ "success": true, "obj": { "runId": "1735689600123456789" }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/setUpdateChannel" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'dev=true'{ "success": true, "msg": "string", "obj": null}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/server/updateGeofile"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Filename of the data file to refresh.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/updateGeofile/string"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Number of trailing log lines.
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/logs/0" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d ''{ "success": true, "obj": [ "2025/01/01 12:00:00 [INFO] Server started", "2025/01/01 12:00:01 [INFO] Xray is running" ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Number of trailing log lines.
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/xraylogs/0" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d ''{ "success": true, "obj": [ { "DateTime": "2025-01-01T12:00:00Z", "Email": "alice@example.com", "Event": 0, "FromAddress": "192.0.2.10:54321", "Inbound": "inbound-443", "Outbound": "direct", "ToAddress": "example.com:443" } ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Path Parameters
Maximum peer rows and event lines to return.
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/amneziawglogs/0" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d ''{ "success": true, "obj": { "events": [ "2025/01/01 12:00:00 amneziawg: started interface awg1 for inbound 1" ], "peers": [ { "allowedIPs": "10.8.1.2/32", "down": 4194304, "email": "peer@example.com", "endpoint": "203.0.113.9:51820", "handshake": 1735732800000, "inboundId": 1, "interface": "awg1", "online": true, "tag": "inbound-51820", "up": 1048576 } ], "running": true }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/importDB" \ -F db="string"{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/getNewEchCert" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'sni=string'{ "success": true, "msg": "string", "obj": null}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/getCertHash" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'certFile=string'{ "success": true, "obj": [ "e8e2d3..." ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/getRemoteCertHash" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'server=string'{ "success": true, "obj": [ "e8e2d3..." ]}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/scanRealityTarget" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'target=string'{ "success": true, "obj": { "alpn": "h2", "certChainValid": true, "certIssuer": "Google Trust Services", "certSubject": "cloudflare.com", "certValid": true, "curveID": "X25519", "feasible": true, "h2": true, "host": "www.cloudflare.com", "ip": "104.16.124.96", "latencyMs": 180, "notAfter": "2026-08-01T00:00:00Z", "port": 443, "privateTarget": false, "reason": "", "serverNames": [ "" ], "target": "www.cloudflare.com:443", "tls13": true, "tlsVersion": "1.3", "x25519": true }}API token from Settings → Security → API Token. Send as Authorization: Bearer <token>.
In: header
Request Body
application/x-www-form-urlencoded
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/panel/api/server/scanRealityTargets" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d ''{ "success": true, "obj": [ { "alpn": "h2", "certChainValid": true, "certIssuer": "Google Trust Services", "certSubject": "cloudflare.com", "certValid": true, "curveID": "X25519", "feasible": true, "h2": true, "host": "www.cloudflare.com", "ip": "104.16.124.96", "latencyMs": 180, "notAfter": "2026-08-01T00:00:00Z", "port": 443, "privateTarget": false, "reason": "", "serverNames": [ "" ], "target": "www.cloudflare.com:443", "tls13": true, "tlsVersion": "1.3", "x25519": true } ]}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/server/clientIps"{ "success": true, "obj": [ { "clientEmail": "", "id": 0, "ips": 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/server/clientIps" \ -H "Content-Type: application/json" \ -d '[ { "clientEmail": "string", "ips": [ { "ip": "string", "timestamp": 0 } ] } ]'{ "success": true, "msg": "string", "obj": null}
3x-ui