Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rate Limits & Security

Connection limits

LimitValueScope
Per-IP concurrent connections20Single IP address
Per-IP connection rate10 / minuteSliding window
Per-key concurrent connectionsConfigurablePer API key

If you exceed any of these limits, the server responds with HTTP 429 Too Many Requests during the handshake:

{
  "error": "max_connections_reached",
  "limit": 5,
  "current": 5
}

Client message limits

LimitValueScopeConsequence
Message rate3 / minutePer connectionConnection closed (rate_limit_exceeded)
Max frame size1 KBPer frameConnection closed (frame_too_large)
Test requests1 / minutePer API keyError response (test_rate_limited)

The test request rate limit is shared across all connections using the same API key. Unlike the other limits, exceeding it does not disconnect you — you receive an error message with a retryAfterSecs field instead. See Message Reference — Test Announcement.

TLS

All connections use TLS encryption by default (WSS on port 9201).

The server may use a self-signed certificate. If so, you will need to disable certificate verification in your client. See Code Examples for how to do this in each language.

API key security

  • Keys are hashed before storage – raw keys cannot be recovered from the database.
  • Keys can be revoked instantly by an administrator, immediately disconnecting all active sessions.
  • Keys can have expiration dates – expired keys are automatically rejected.