https://neuro.appstun.net/api/v2/
Full docs of endpoint: schedule.md
GET /schedule
- Purpose: Weekly schedule for Neuro-sama streams (includes
status:auto_twitch,auto_discord, orconfirmed) - Parameters:
week(required),year(optional) - Public: No (Auth required)
- Example:
/schedule?week=25&year=2024
GET /schedule/latest
- Purpose: Latest weekly schedule in database
- Parameters: None
- Public: Yes
GET /schedule/search
- Purpose: Search schedule messages with cursor-based pagination
- Parameters:
query(required),year(optional),limit(optional),sort(optional),type(optional),cursorYear+cursorWeek(optional pair) - Public: No (Auth required)
- Example:
/schedule/search?query=karaoke&limit=10&sort=desc
GET /schedule/weeks
- Purpose: Available schedule week numbers grouped by year
- Parameters: None
- Public: Yes
Full docs of endpoint: twitch.md
GET /twitch/stream
- Purpose: Current stream information
- Parameters: None
- Public: Yes
GET /twitch/vods
- Purpose: All VODs
- Parameters: None
- Public: No (Auth required)
GET /twitch/vod
- Purpose: Specific VOD by stream ID
- Parameters:
id(required, Twitch stream ID) - Public: No (Auth required)
- Example:
/twitch/vod?id=324052648700
Full docs of endpoint: subathon.md
GET /subathon
- Purpose: Current active subathon data with goals
- Parameters: None
- Public: Yes
GET /subathon
- Purpose: Subathon data for specific year
- Parameters:
year(required) - Public: No (Auth required)
- Example:
/subathon?year=2024
GET /subathon/years
- Purpose: All subathon years mapped to names (
{ "2024": "Subathon Name" }) - Parameters: None
- Public: Yes
Full docs of endpoint: blog.md
GET /blog
- Purpose: Cached Neuro-sama blog feed with parsed entry content
- Parameters:
raw(optional, if present returnsrawContentHTML instead of parsedcontent) - Public: No (Auth required)
- Example:
/blog?raw
Full docs of endpoint: schedule.md
GET /devstream/times
- Purpose: Timestamps of past devstreams
- Parameters: None
- Public: Yes
GET /api/info
- Purpose: API version and status information
- Parameters: None
- Public: Yes
- Rate limit: Generous (
300/min)
Full docs of endpoint: websocket.md
GET /api/v2/ws/ticket
- Purpose: Generate one-time ticket for secure WebSocket authentication
- Parameters: None
- Public: No (Auth required)
WSS /api/v2/ws
- Purpose: Receive real-time stream/schedule/subathon events
- Authentication: Required (ticket query param or Authorization header)
- Event Types:
blogFeedUpdate,scheduleUpdate,subathonUpdate,subathonGoalUpdate,streamOnline,streamUpdate,streamOffline,secretneuroaccountOnline,streamRaidIncoming,streamRaidOutgoing - Heartbeat Tip: For custom clients, use lightweight
ping/pongfor liveness checks - Example:
/api/v2/ws?ticket=YOUR_ONE_TIME_TICKET
In Header: Authorization: Bearer YOUR_API_TOKEN
Note
To access non-public API endpoints, you need an API token.
Visit the API Dashboard, connect with your Twitch account, and click the Generate API Token button to create one.
For a quick overview of endpoints requiring authentication, refer to needsAuth.md.