Skip to main content
Server Query provides programmatic access to your TeamSpeak 6 server through multiple protocols. You can automate server administration, monitor server status, and integrate TeamSpeak with external applications.

Available Protocols

TeamSpeak 6 Server supports three Server Query protocols:

HTTP

REST-style interface over HTTP for web applications and modern APIs

HTTPS

Secure HTTP interface with SSL/TLS encryption

SSH

Terminal-based interface over SSH for secure command-line access

Common Configuration Options

All Server Query protocols share common configuration options:
ParameterEnvironment VariableDefaultDescription
--query-pool-sizeTSSERVER_QUERY_POOL_SIZE2Number of threads for query command processing (2-32)
--query-timeoutTSSERVER_QUERY_TIMEOUT300Timeout in seconds before query connections expire
--query-buffer-mbTSSERVER_QUERY_BUFFER_MB20Memory in MB allocated for query connection buffering (20-100)
--query-log-commandsTSSERVER_QUERY_LOG_COMMANDSfalseLog every command received on the query interface
--query-log-timingTSSERVER_QUERY_LOG_TIMING3600Interval in seconds to log query statistics (10-31556952)
--query-documentation-pathTSSERVER_QUERY_DOCUMENTATION_PATHserverquerydocsPath to the query documentation files

Security Options

IP Access Control

Control which IP addresses can access your Server Query interface:
Command Line
./tsserver \
  --query-ip-allow-list query_ip_allowlist.txt \
  --query-ip-block-list query_ip_denylist.txt
Environment Variables
export TSSERVER_QUERY_ALLOW_LIST=query_ip_allowlist.txt
export TSSERVER_QUERY_DENY_LIST=query_ip_denylist.txt
tsserver.yaml
server:
  query:
    ip-allow-list: query_ip_allowlist.txt
    ip-block-list: query_ip_denylist.txt
ParameterEnvironment VariableDefaultDescription
--query-ip-allow-listTSSERVER_QUERY_ALLOW_LISTquery_ip_allowlist.txtIPs exempt from flood protection
--query-ip-block-listTSSERVER_QUERY_DENY_LISTquery_ip_denylist.txtIPs blocked from query interface

Brute Force Protection

By default, the server includes brute force protection. You can disable this in trusted environments:
Command Line
./tsserver --query-skip-brute-force-check
Environment Variables
export TSSERVER_QUERY_SKIP_BRUTE_FORCE_CHECK=1
tsserver.yaml
server:
  query:
    skip-brute-force-check: 1
Only disable brute force checking in secure, controlled environments. This protection helps prevent unauthorized access attempts.

Authentication

All Server Query protocols require authentication. See the Authentication guide for detailed information on setting up admin passwords and managing query credentials.

Performance Tuning

1

Adjust Pool Size

Increase --query-pool-size for servers with high query traffic:
./tsserver --query-pool-size 8
2

Configure Buffer Memory

Allocate more memory for query buffering on busy servers:
./tsserver --query-buffer-mb 50
3

Enable Query Logging

Monitor query performance by enabling logging:
./tsserver --query-log-commands --query-log-timing 1800
Query pool size should be adjusted based on your server’s concurrent query connections. Higher values consume more resources but handle more simultaneous queries.

Configuration File Example

Here’s a complete Server Query configuration in tsserver.yaml:
server:
  query:
    pool-size: 4
    log-timing: 3600
    ip-allow-list: query_ip_allowlist.txt
    ip-block-list: query_ip_denylist.txt
    admin-password: "your-secure-password"
    log-commands: 0
    skip-brute-force-check: 0
    buffer-mb: 30
    documentation-path: serverquerydocs
    timeout: 300
    
    ssh:
      enable: 1
      port: 10022
      ip:
        - 0.0.0.0
        - "::"
      rsa-key: ssh_host_rsa_key
    
    http:
      enable: 1
      port: 10080
      ip:
        - 0.0.0.0
        - "::"
    
    https:
      enable: 1
      port: 10443
      ip:
        - 0.0.0.0
        - "::"
      certificate: "/path/to/cert.pem"
      private-key: "/path/to/key.pem"

Next Steps

HTTP/HTTPS Setup

Configure the HTTP and HTTPS query interfaces

SSH Setup

Configure the SSH query interface

Authentication

Set up query admin credentials and manage access

Build docs developers (and LLMs) love