Skip to main content
Choose the right streaming method for your use case.

Feature Comparison

FeatureWebSocketPublic SSEPrivate SSE
Endpointwss://scrape.st/wsGET /streamGET /stream?token=
Authenticationx-api-key headerNoneToken (24h, via /stream/token)
DirectionBidirectionalServer → ClientServer → Client
PayloadFull SourceEventTruncated (100 chars)Full SourceEvent
X enriched❌ (fast-x only)
Telegram / Discord
Auto-reconnect❌ (implement yourself)✅ (built-in EventSource)✅ (built-in EventSource)
Buffer on reconnect✅ Last 5 events✅ Last 5 events
KeepalivePing/Pong (30s interval): comment (15s interval): comment (15s interval)
Dead timeout60sN/AN/A
Best forProduction bots, tradingDemos, public dashboardsProduction web apps

When to Use What

WebSocket

Use when you need:
  • Full payload for all sources
  • Bidirectional communication
  • Fine-grained connection control
  • Server-side Node.js / Python apps
WebSocket docs

Public SSE

Use when you need:
  • Quick prototype, zero setup
  • No API key at hand
  • Public monitoring dashboard
  • Browser-only (no backend)
Public SSE docs

Private SSE

Use when you need:
  • Full data in a browser app
  • Automatic reconnection
  • Token-based auth (no exposed API key)
  • Frontend EventSource compatibility
Private SSE docs

Latency

All methods deliver data within milliseconds of each other:
MethodTypical Latency (fast-x)Typical Latency (enriched)
WebSocket~50ms~200-500ms
Public SSE~50msN/A (not streamed)
Private SSE~50ms~200-500ms

Query Parameters (All Methods)

ParameterWebSocketPublic SSEPrivate SSEDescription
useFastXReceive fast-x push events
ignoreFullPayloadN/ASkip enriched X payloads
tokenN/AN/AAuthentication token