Summary
Browser-based streaming overlay and chat management tool. WebSocket (wss://) and HTTP REST API for real-time bidirectional control of messages, waitlists, polls, timers, and featured content. No authentication required.
Transport
protocols:
- http
- tcp # WebSocket over TLS
addressing:
base_url: https://io.socialstream.ninja
# port: null # UNRESOLVED: port number not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- queryable # inferred: getQueueSize, getChatSources, getUserHistory, getpollpresets, gettimerstate
Actions
- id: sendChat
label: Send Chat Message
kind: action
params:
- name: value
type: string
description: Chat message text
- id: sendEncodedChat
label: Send Encoded Chat Message
kind: action
params:
- name: value
type: string
description: URL-encoded chat message
- id: blockUser
label: Block User
kind: action
params:
- name: value
type: object
description: '{"chatname": "username", "type": "twitch"}'
- id: extContent
label: Send External Content
kind: action
params:
- name: value
type: string
description: JSON string with chatname and chatmessage
- id: removefromwaitlist
label: Remove from Waitlist
kind: action
params:
- name: value
type: integer
description: Waitlist entry index
- id: highlightwaitlist
label: Highlight Waitlist Entry
kind: action
params:
- name: value
type: integer
description: Waitlist entry index
- id: resetwaitlist
label: Reset Waitlist
kind: action
params: []
- id: stopentries
label: Stop Waitlist Entries
kind: action
params: []
- id: downloadwaitlist
label: Download Waitlist
kind: action
params: []
- id: selectwinner
label: Select Waitlist Winner
kind: action
params:
- name: value
type: integer
description: Waitlist entry index
- id: clear
label: Clear Messages
kind: action
params: []
- id: clearAll
label: Clear All Messages
kind: action
params: []
- id: clearOverlay
label: Clear Overlay
kind: action
params: []
- id: nextInQueue
label: Next in Queue
kind: action
params: []
- id: getQueueSize
label: Get Queue Size
kind: action
params: []
- id: autoShow
label: Toggle Auto-Show
kind: action
params:
- name: value
type: string
description: '"toggle"'
- id: feature
label: Feature Next Message
kind: action
params: []
- id: getChatSources
label: Get Chat Sources
kind: action
params: []
- id: toggleVIPUser
label: Toggle VIP User
kind: action
params:
- name: value
type: object
description: '{"chatname": "username", "type": "twitch"}'
- id: getUserHistory
label: Get User History
kind: action
params:
- name: value
type: object
description: '{"chatname": "username", "type": "twitch"}'
- id: waitlistmessage
label: Set Waitlist Message
kind: action
params:
- name: value
type: string
description: Custom message text
- id: drawmode
label: Toggle Draw Mode
kind: action
params:
- name: value
type: string
description: 'true, false, or "toggle"'
- id: emoteonly
label: Toggle Emote-Only Filter
kind: action
params:
- name: value
type: string
description: 'true, false, or "toggle"'
- id: resetpoll
label: Reset Poll
kind: action
params: []
- id: closepoll
label: Close Poll
kind: action
params: []
- id: loadpoll
label: Load Poll Preset
kind: action
params:
- name: value
type: object
description: '{"pollId": "poll-123456"}'
- id: getpollpresets
label: Get Poll Presets
kind: action
params: []
- id: setpollsettings
label: Set Poll Settings
kind: action
params:
- name: value
type: object
description: '{"pollQuestion": "...", "pollType": "...", ...}'
- id: createpoll
label: Create Poll
kind: action
params:
- name: value
type: object
description: '{"settings": {"pollQuestion": "...", "pollType": "freeform"}}'
- id: content
label: Display Content
kind: action
params:
- name: value
type: object
description: Content object with chatname, chatmessage, etc.
- id: content2
label: Display Content Channel 2
kind: action
params:
- name: value
type: object
- id: content3
label: Display Content Channel 3
kind: action
params:
- name: value
type: object
- id: content4
label: Display Content Channel 4
kind: action
params:
- name: value
type: object
- id: content5
label: Display Content Channel 5
kind: action
params:
- name: value
type: object
- id: content6
label: Display Content Channel 6
kind: action
params:
- name: value
type: object
- id: content7
label: Display Content Channel 7
kind: action
params:
- name: value
type: object
- id: toggleTTS
label: Toggle Text-to-Speech
kind: action
params:
- name: value
type: string
description: '"toggle" or "on"/"off"'
- id: tts
label: Text-to-Speech
kind: action
params:
- name: value
type: string
description: TTS state
- id: starttimer
label: Start Timer
kind: action
params: []
- id: pausetimer
label: Pause Timer
kind: action
params: []
- id: toggletimer
label: Toggle Timer
kind: action
params: []
- id: resettimer
label: Reset Timer
kind: action
params: []
- id: timeradd
label: Add Timer Seconds
kind: action
params:
- name: value
type: integer
description: Seconds to add
- id: timersubtract
label: Subtract Timer Seconds
kind: action
params:
- name: value
type: integer
description: Seconds to subtract
- id: settimer
label: Set Timer State
kind: action
params:
- name: value
type: object
description: '{"seconds": 300, "label": "...", "mode": "countdown", ...}'
- id: gettimerstate
label: Get Timer State
kind: action
params:
- name: get
type: string
description: Unique identifier for callback response
- id: waitlist
label: Update Waitlist
kind: action
params:
- name: value
type: array
description: Array of waitlist entries
- id: drawPoolSize
label: Set Draw Pool Size
kind: action
params:
- name: value
type: integer
description: Number of entries in draw
- id: startgame
label: Start Battle Game
kind: action
params: []
Feedbacks
- id: callback_result
label: Command Callback Result
type: object
fields:
- name: get
type: string
description: Unique identifier from request
- name: result
type: string
description: '"true", "failed", "timeout", or "special"'
- id: queue_size
label: Queue Size
type: integer
description: Current message queue size
- id: poll_presets
label: Poll Presets
type: array
description: List of saved poll presets with IDs and names
- id: timer_state
label: Timer State
type: object
description: Current timer state returned via callback
Variables
- id: queue_size
type: integer
description: Current queue size (read-only)
Events
- id: inbound_donation_stripe
label: Stripe Donation
description: checkout.session.completed webhook from Stripe
fields:
- name: chatname
type: string
- name: chatmessage
type: string
- name: hasDonation
type: string
- name: type
type: string
- name: id
type: string
- id: inbound_donation_kofi
label: Ko-Fi Donation
description: Ko-Fi donation webhook
- id: inbound_donation_bmac
label: Buy Me A Coffee Donation
description: bmac donation.created or membership.started events
- id: inbound_donation_fourthwall
label: Fourthwall Order
description: Fourthwall ORDER_PLACED event
Macros
# UNRESOLVED: no explicit multi-step macros described in source
Safety
confirmation_required_for: []
interlocks: []
Notes
WebSocket endpoint: wss://io.socialstream.ninja. HTTP base: https://io.socialstream.ninja. Channel system (1-9) routes messages between components (dock, featured, extension, waitlist pages). SSE endpoint: https://io.socialstream.ninja/sse/SESSION_ID. Inbound webhooks normalize donation data into SSN message format. Battle page uses WebRTC direct to extension, not the WebSocket API.
Provenance
source_domains:
- socialstream.ninja
source_urls:
- https://socialstream.ninja/api
retrieved_at: 2026-04-30T04:45:54.854Z
last_checked_at: 2026-06-02T22:14:39.974Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:14:39.974Z
matched_actions: 49
action_count: 49
confidence: medium
summary: "All 49 spec actions traced to source (dip-safe re-verify). (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "port number not explicitly stated; standard 443 assumed for WSS/HTTPS"
- "port number not stated in source"
- "no explicit multi-step macros described in source"
- "port number not explicitly stated in source"
- "firmware version compatibility not stated in source"
- "authentication token format not applicable (none required)"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0