Giveaways
- Topic
channel.giveaways
This topic carries the full giveaway lifecycle: starting, entries, winner selection, closing, and refunds.
Payload
Section titled “Payload”| Parameter | Type | Description |
|---|---|---|
data.channelId |
string |
Channel ID (ObjectID hex) |
data.giveawayId |
string |
Giveaway ID (ObjectID hex) |
data.event |
string |
Event type |
data.state |
string |
Current giveaway state |
data.data |
object |
Event-specific payload data |
State Values
Section titled “State Values”| State | Description |
|---|---|
created |
Initial state |
running |
Active, accepting entries |
closed |
Closed, can pick winners or refund |
refunded |
All entries refunded |
completed |
Fully completed |
Example
Section titled “Example”{ "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": {} }}Events
Section titled “Events”| Event | Description |
|---|---|
start |
Giveaway started accepting entries |
enter |
User entered the giveaway |
complete |
Giveaway entries closed, ready for winner selection |
winner |
Winner selected |
close |
Giveaway closed |
refund |
Entire giveaway refunded |
refund-entry |
Single entry refunded |
Giveaway started accepting entries.
{ "channelId": "5ad23dcc18fff500d78c5348", "giveawayId": "67cf4296216c6ff883878c0a", "event": "start", "state": "running", "data": null}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 } }}| Parameter | Type | Description |
|---|---|---|
totalUsers |
number |
Total number of users entered |
totalTickets |
number |
Total tickets across all entries |
entry |
object |
The user entry (see User Object) |
complete
Section titled “complete”Giveaway entries closed, ready for winner selection.
{ "channelId": "5ad23dcc18fff500d78c5348", "giveawayId": "67cf4296216c6ff883878c0a", "event": "complete", "state": "completed", "data": { "totalUsers": 200, "totalTickets": 5000 }}| Parameter | Type | Description |
|---|---|---|
totalUsers |
number |
Final number of users entered |
totalTickets |
number |
Final total tickets |
winner
Section titled “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 } }}| Parameter | Type | Description |
|---|---|---|
totalUsers |
number |
Total number of users entered |
totalTickets |
number |
Total tickets across all entries |
winner |
object |
The winning user (see User Object) |
Giveaway closed.
{ "channelId": "5ad23dcc18fff500d78c5348", "giveawayId": "67cf4296216c6ff883878c0a", "event": "close", "state": "closed", "data": null}refund
Section titled “refund”Entire giveaway refunded.
{ "channelId": "5ad23dcc18fff500d78c5348", "giveawayId": "67cf4296216c6ff883878c0a", "event": "refund", "state": "refunded", "data": null}refund-entry
Section titled “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 } }}| Parameter | Type | Description |
|---|---|---|
entry |
object |
The refunded user entry (see User Object) |
Data Types
Section titled “Data Types”User Object
Section titled “User Object”| Field | Type | Description |
|---|---|---|
providerId |
string |
Provider-prefixed user ID |
username |
string |
Display username |
avatar |
string |
Avatar URL (optional, not currently populated) |
subscriber |
boolean |
Whether user is a subscriber |
tickets |
number |
Number of tickets for this entry |
new |
boolean |
Whether this is a new entrant (only on enter event) |
Related
Section titled “Related”- Contests - Contest and prediction events
- Activities - General channel activity events
- Websockets - General information about the Astro WebSocket Gateway