How to Use the TeamSpeak ServerQuery Interface
ServerQuery is TS3's text-based remote admin interface. Connect via telnet, run commands to manage your server programmatically, power bots, and automate tasks — all without opening the TS3 client.
What Is ServerQuery
ServerQuery is TeamSpeak 3's built-in remote administration interface. It's a text-based protocol — similar to a raw telnet session — that lets you manage your server programmatically. Every action you can take in the TS3 client GUI, you can do via ServerQuery commands.
It's how music bots like SinusBot connect, how web panels like YaTQA work, and how monitoring scripts pull stats from your server.
Connecting
ServerQuery listens on TCP port 10011 by default. Connect with any telnet client:
telnet your.server.ip 10011
On Windows, if telnet isn't enabled, use PuTTY in "Raw" mode, or a tool like YaTQA which wraps the interface in a GUI.
You'll see a welcome banner like this when you connect:
TS3
Welcome to the TeamSpeak 3 ServerQuery interface...
Basic Session
A typical session looks like this:
login client_login_name=YourUser client_login_password=YourPass
use sid=1
serverinfo
clientlist
quit
Breaking that down:
login— authenticate with your ServerQuery credentialsuse sid=1— select virtual server 1 (most servers only have one)serverinfo— returns server name, uptime, client count, etc.clientlist— returns all currently connected clients with their IDsquit— close the connection cleanly
Response lines are pipe-delimited key=value pairs. Errors return error id=0 msg=ok on success or a non-zero error ID on failure.
Creating a ServerQuery Login
You need a login before you can do anything useful. In your TS3 client (connected as Server Admin):
- Go to Tools → ServerQuery Login
- Enter a username
- Click OK — save the generated password immediately, it's shown once
Useful Commands
serverinfo — server details and stats
clientlist — list connected clients
channellist — list all channels
clientkick clid=5 reasonid=5 reasonmsg=AFK
— kick client ID 5
banadd cldbid=12 bantime=0 banreason=Cheating
— permanent ban by client DB ID
banlist — list all active bans
bandel banid=3 — delete ban entry ID 3
sendtextmessage targetmode=3 msg=Server\sis\srestarting\sin\s5\sminutes
— send a server-wide message
clientmove clid=5 cid=10 — move client to channel ID 10
servergroupaddclient sgid=8 cldbid=12 — add client to server group
Note: spaces in values must be escaped as \s in the ServerQuery protocol.
Security — This Part Matters
Port 10011 should never be publicly accessible. Anyone who can reach that port and brute-force or guess credentials has full control of your server. On DustBowl.Games managed servers, ServerQuery access is restricted by firewall — you access it through your control panel or a whitelisted IP.
Never use serveradmin for bots or scripts. The serveradmin account has unrestricted access including the ability to delete virtual servers, modify licensing, and nuke your entire setup. Create a dedicated low-privilege query login for each bot or script.
One login per use case. If you're running SinusBot and a custom monitoring script, create two separate query logins. If one gets compromised, you revoke just that one.
Tools That Use ServerQuery
- SinusBot — music bot, connects via query to stream audio
- YaTQA — Windows GUI tool for managing TS3 via ServerQuery
- TS3AudioBot — open source audio bot alternative to SinusBot
- ts3bot — Python-based bot framework
- Custom scripts — anything you write in Python, Node, PHP, etc.