Traffic Stats API
If an API secret is set in your configuration, you will need to add the Authorization
header when making a request.
Example:
GET /traffic
This endpoint returns a JSON map of client IDs to their traffic statistics.
Response:
You can also use the query parameter clear
to zero out the statistics after they are returned:
POST /kick
This endpoint allows you to kick a list of clients by their IDs.
Request:
NOTE: Due to the reconnect logic built into the client, it will attempt to reconnect after being kicked. To avoid having to repeatedly kick the same client, you should also block the user in your authentication backend.
GET /online
This endpoint returns a JSON map of online clients to the number of connections they have. The connection count here refers to the number of Hysteria client instances ("devices"), NOT the number of active proxy connections.
Response:
GET /dump/streams
This endpoint returns a JSON object containing information about each QUIC stream of a Hysteria TCP proxy connection.
Response:
{
"streams": [
{
"state": "estab",
"auth": "user",
"connection": 3191736581,
"stream": 4,
"req_addr": "192.0.2.1:80",
"hooked_req_addr": "example.com:80",
"tx": 3937,
"rx": 4441,
"initial_at": "2024-11-08T16:07:45.956956773+09:00",
"last_active_at": "2024-11-08T16:07:47.121503203+09:00"
}
]
}
When making a request to this API, you can add Accept: text/plain
to the header to get a human-readable output similar to ss -atn
.
Response: