Skip to main content

Giveaways

Topic

channel.giveaways

Description

This topic provides real-time updates for giveaway events. It covers the full giveaway lifecycle including starting, entries, winner selection, closing, and refunds.

Usage

Subscribe to this topic to receive notifications about giveaway activities, allowing you to build real-time giveaway displays or sync giveaway state across multiple clients.

Message Structure

{
"id": "01J6VTDB25SX14GDBDFZWDX3M9",
"ts": "2024-09-03T11:30:39Z",
"type": "message",
"topic": "channel.giveaways",
"room": "5ad23dcc18fff500d78c5348",
"data": {
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "enter",
"state": "running",
"data": {}
}
}

Parameters

ParameterTypeDescription
data.channelIdstringChannel ID (ObjectID hex)
data.giveawayIdstringGiveaway ID (ObjectID hex)
data.eventstringEvent type
data.statestringCurrent giveaway state
data.dataobjectEvent-specific payload data

State Values

StateDescription
createdInitial state
runningActive, accepting entries
closedClosed, can pick winners or refund
refundedAll entries refunded
completedFully completed

Events

EventDescription
startGiveaway started accepting entries
enterUser entered the giveaway
completeGiveaway entries closed, ready for winner selection
winnerWinner selected
closeGiveaway closed
refundEntire giveaway refunded
refund-entrySingle entry refunded

start

Giveaway started accepting entries.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "start",
"state": "running",
"data": null
}

enter

User entered the giveaway.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "enter",
"state": "running",
"data": {
"totalUsers": 150,
"totalTickets": 3200,
"entry": {
"providerId": "twitch:12345",
"username": "cooluser",
"subscriber": true,
"tickets": 10,
"new": true
}
}
}
ParameterTypeDescription
totalUsersnumberTotal number of users entered
totalTicketsnumberTotal tickets across all entries
entryobjectThe user entry (see User Object)

complete

Giveaway entries closed, ready for winner selection.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "complete",
"state": "completed",
"data": {
"totalUsers": 200,
"totalTickets": 5000
}
}
ParameterTypeDescription
totalUsersnumberFinal number of users entered
totalTicketsnumberFinal total tickets

winner

Winner selected.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "winner",
"state": "running",
"data": {
"totalUsers": 200,
"totalTickets": 5000,
"winner": {
"providerId": "twitch:67890",
"username": "luckyuser",
"subscriber": false,
"tickets": 5
}
}
}
ParameterTypeDescription
totalUsersnumberTotal number of users entered
totalTicketsnumberTotal tickets across all entries
winnerobjectThe winning user (see User Object)

close

Giveaway closed.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "close",
"state": "closed",
"data": null
}

refund

Entire giveaway refunded.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "refund",
"state": "refunded",
"data": null
}

refund-entry

Single entry refunded.

{
"channelId": "5ad23dcc18fff500d78c5348",
"giveawayId": "67cf4296216c6ff883878c0a",
"event": "refund-entry",
"state": "running",
"data": {
"entry": {
"providerId": "twitch:12345",
"username": "refundeduser",
"subscriber": true,
"tickets": 10
}
}
}
ParameterTypeDescription
entryobjectThe refunded user entry (see User Object)

Data Types

User Object

FieldTypeDescription
providerIdstringProvider-prefixed user ID
usernamestringDisplay username
avatarstringAvatar URL (optional, not currently populated)
subscriberbooleanWhether user is a subscriber
ticketsnumberNumber of tickets for this entry
newbooleanWhether this is a new entrant (only on enter event)