Quick answer: Twitch stores a complete timestamped chat replay for every public VOD but exposes no public API or bulk-export endpoint for it. To get the data programmatically you walk the same VideoCommentsByOffsetOrCursor GraphQL endpoint the web player uses. The Apify Actor below does that for $0.001 per message (~$1.05 per 1,000), with TLS fingerprinting, residential-proxy rotation, and pagination handled for you — no login required.
Twitch chat looks straightforward until you try to pull it at volume. The web player loads it fine; the Twitch Helix API does not expose VOD chat at all — that endpoint was never built. A handful of third-party Apify Actors covered the gap for years, but most are now deprecated and delisted. If you are training a moderation classifier, building a hype-peak esports dashboard, or doing post-broadcast review, and you need more than you can scroll through by hand, you are writing your own extractor. Here is what that involves, and how I turned it into one API call.
What is a Twitch VOD chat replay? 🎮
A Twitch VOD is the archived recording of a live broadcast. As long as the VOD exists, Twitch retains the full chat history — every message, its timestamp, the commenter's identity, chat color, badges, and structured emote data — and presents it in its own player as a replay synced to the timeline.











