{"success":true,"events":[{"event":"lol.match.started","game":"lol","kind":"lifecycle","description":"A League of Legends series has started.","whenFires":"When a series goes live. Once per match.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 5 per week","last7Days":5,"lastSentAt":"2026-11-07T22:02:21.764Z","latency":{"p50Ms":1250,"p95Ms":1978,"deliveries":77,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":409,"max":549,"sampledRows":300},"fields":[{"name":"coverageLevel","types":["null","string"],"presentPct":44},{"name":"format","types":["string"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueName","types":["string"],"presentPct":44},{"name":"matchId","types":["string"],"presentPct":100},{"name":"payload_version","types":["number"],"presentPct":44},{"name":"scheduledStart","types":["string"],"presentPct":44},{"name":"startTime","types":["string"],"presentPct":100},{"name":"streamLinks","types":["null","object"],"presentPct":44},{"name":"streamLinks.vod","types":["string"],"presentPct":1},{"name":"teams","types":["array"],"presentPct":100},{"name":"tournament","types":["string"],"presentPct":100},{"name":"tournamentName","types":["string"],"presentPct":44}],"example":{"event":"lol.match.started","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-04T22:10:06.862Z","event_type":"lol.match.started","match_id":"lol-match-115660540726095115","previous_state":null,"data":{"teams":["gen","lyon-gaming"],"format":"Bo5","league":"Worlds","matchId":"lol-match-115660540726095115","startTime":"2026-11-04T22:00:00Z","leagueName":"Worlds","tournament":"lol-worlds_2026","streamLinks":null,"coverageLevel":null,"scheduledStart":"2026-11-04T22:00:00Z","tournamentName":"Worlds 2026","payload_version":2}},"exampleCapturedAt":"2026-11-04T22:10:06.862Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-match-started"},{"event":"lol.match.completed","game":"lol","kind":"lifecycle","description":"A League of Legends series has finished, with the final score and winner.","whenFires":"When a series ends. Once per final score, so a corrected score sends a second event.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 5 per week","last7Days":5,"lastSentAt":"2026-11-08T00:42:33.838Z","latency":{"p50Ms":1013,"p95Ms":1799,"deliveries":147,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":1264,"max":4015,"sampledRows":300},"notes":"data.statsPending true means per-game stats are still arriving. data.games and data.players appear on payload_version 2 events.","fields":[{"name":"format","types":["string"],"presentPct":100},{"name":"games","types":["array"],"presentPct":87},{"name":"games[].duration","types":["null","number"],"presentPct":33},{"name":"games[].gameId","types":["string"],"presentPct":33},{"name":"games[].number","types":["number"],"presentPct":33},{"name":"games[].teamStats","types":["object"],"presentPct":33},{"name":"games[].winner","types":["null","string"],"presentPct":33},{"name":"league","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"payload_version","types":["number"],"presentPct":87},{"name":"players","types":["array"],"presentPct":87},{"name":"players[].assists","types":["number"],"presentPct":33},{"name":"players[].avgCs","types":["number"],"presentPct":33},{"name":"players[].championPool","types":["array"],"presentPct":33},{"name":"players[].deaths","types":["number"],"presentPct":33},{"name":"players[].id","types":["string"],"presentPct":33},{"name":"players[].kills","types":["number"],"presentPct":33},{"name":"players[].name","types":["string"],"presentPct":33},{"name":"players[].team","types":["string"],"presentPct":33},{"name":"score","types":["string"],"presentPct":100},{"name":"statsPending","types":["boolean"],"presentPct":65},{"name":"teams","types":["array"],"presentPct":100},{"name":"tournament","types":["string"],"presentPct":100},{"name":"winner","types":["string"],"presentPct":100}],"example":{"event":"lol.match.completed","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-10-12T10:26:35.708Z","event_type":"lol.match.completed","match_id":"lol-match-117133830110912099","previous_state":null,"data":{"games":[{"gameId":"lol-game-117133830110912100","number":1,"winner":null,"duration":2098,"teamStats":{"red":{"gold":61949,"kills":8,"barons":0,"towers":5,"dragons":3,"heralds":null,"inhibitors":0},"blue":{"gold":73829,"kills":16,"barons":2,"towers":10,"dragons":3,"heralds":null,"inhibitors":2}}},{"gameId":"lol-game-117133830110912101","number":2,"winner":null,"duration":2391,"teamStats":{"red":{"gold":75687,"kills":22,"barons":2,"towers":10,"dragons":3,"heralds":null,"inhibitors":2},"blue":{"gold":73129,"kills":16,"barons":1,"towers":8,"dragons":3,"heralds":null,"inhibitors":1}}},{"gameId":"lol-game-117133830110912102","number":3,"winner":null,"duration":1393,"teamStats":{"red":{"gold":35624,"kills":2,"barons":0,"towers":0,"dragons":0,"heralds":null,"inhibitors":0},"blue":{"gold":51569,"kills":17,"barons":1,"towers":9,"dragons":3,"heralds":null,"inhibitors":1}}},{"gameId":"lol-game-117133830110912103","number":4,"winner":null,"duration":1693,"teamStats":{"red":{"gold":43752,"kills":5,"barons":0,"towers":2,"dragons":1,"heralds":null,"inhibitors":0},"blue":{"gold":54983,"kills":15,"barons":1,"towers":10,"dragons":2,"heralds":null,"inhibitors":2}}},{"gameId":"lol-game-117133830110912104","number":5,"winner":"kt","duration":null,"teamStats":{"red":{"gold":60691,"kills":20,"barons":1,"towers":2,"dragons":4,"heralds":null,"inhibitors":0},"blue":{"gold":67041,"kills":23,"barons":0,"towers":10,"dragons":0,"heralds":null,"inhibitors":2}}}],"score":"3-2","teams":["kt","team-vitality"],"format":"Bo5","league":"DCGI","winner":"kt","matchId":"lol-match-117133830110912099","players":[{"id":"b5598781-6f93-4cd8-b516-3af0b34420b6","name":"VITNaakNako","team":"team-vitality","avgCs":227,"kills":12,"deaths":22,"assists":21,"championPool":["Rumble","Ambessa","Camille","Cho'Gath","Varus"]},{"id":"50b1177b-c863-40fa-b3a8-0d6a13c9933e","name":"KTPerfecT","team":"kt","avgCs":247.4,"kills":13,"deaths":11,"assists":29,"championPool":["K'Sante","Renekton","Olaf","Yorick","Jax"]},{"id":"032f9c34-51e8-4231-b50a-1ffd046d1db4","name":"VITLyncas","team":"team-vitality","avgCs":210.6,"kills":16,"deaths":13,"assists":27,"championPool":["Qiyana","Lee Sin","Wukong","Trundle","Aatrox"]},{"id":"dea412e3-5797-4422-a999-86246dbd626d","name":"VITFIESTA","team":"team-vitality","avgCs":272.6,"kills":18,"deaths":17,"assists":22,"championPool":["Orianna","Syndra","Ahri","Hwei","Akali"]},{"id":"be637a06-5fef-4c0c-a9db-f3cff4c4dcf1","name":"VITFleshy","team":"team-vitality","avgCs":36.2,"kills":0,"deaths":14,"assists":52,"championPool":["Rakan","Alistar","Nautilus","Karma","Blitzcrank"]},{"id":"42674dd7-9981-4a42-973a-9152421f04a3","name":"KTJiwoo","team":"kt","avgCs":291.4,"kills":32,"deaths":14,"assists":19,"championPool":["Kalista","Ezreal","Miss Fortune","Yunara","Corki"]},{"id":"c5ed5727-29f5-486f-82bd-697f1914f4e5","name":"VITCarzzy","team":"team-vitality","avgCs":293.4,"kills":19,"deaths":13,"assists":27,"championPool":["Xayah","Ziggs","Kai'Sa","Caitlyn","Aphelios"]},{"id":"ecd7827d-b6bc-4281-b587-70ae5d0e4545","name":"KTCuzz","team":"kt","avgCs":198.4,"kills":10,"deaths":14,"assists":50,"championPool":["Pantheon","Jarvan IV","Vi","Skarner","Xin Zhao"]},{"id":"27796c82-2b9c-4291-a967-fc94245ae4d6","name":"KTBdd","team":"kt","avgCs":281.8,"kills":22,"deaths":11,"assists":34,"championPool":["Ryze","Viktor","Taliyah","Locke","Vex"]},{"id":"830c7c55-fc4d-488d-92f6-599a09833ae6","name":"KTEffort","team":"kt","avgCs":30.8,"kills":2,"deaths":15,"assists":54,"championPool":["Renata Glasc","Seraphine","Leona","Lulu","Maokai"]}],"tournament":"lol-tournament-117133773242499009","statsPending":true,"payload_version":2}},"exampleCapturedAt":"2026-10-12T10:26:35.708Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-match-completed"},{"event":"lol.score.updated","game":"lol","kind":"lifecycle","description":"A game inside a series ended and the series score changed.","whenFires":"After each game of a series, once per result.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 130 per day across all matches (about 59 per match)","last7Days":911,"lastSentAt":"2026-11-08T01:02:09.809Z","latency":{"p50Ms":1221,"p95Ms":1780,"deliveries":6018,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":347,"max":420,"sampledRows":300},"notes":"data.score is team1-team2 in the order of data.teams. data.gameWinner, data.gameId and data.gameNumber appear on most events, not all.","fields":[{"name":"gameId","types":["string"],"presentPct":52},{"name":"gameNumber","types":["number"],"presentPct":52},{"name":"gameWinner","types":["null","string"],"presentPct":52},{"name":"league","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"payload_version","types":["number"],"presentPct":91},{"name":"previousScore","types":["string"],"presentPct":91},{"name":"score","types":["string"],"presentPct":100},{"name":"teams","types":["array"],"presentPct":100}],"example":{"event":"lol.score.updated","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-03T14:09:13.170Z","event_type":"lol.score.updated","match_id":"lol-match-116249880467010563","previous_state":null,"data":{"score":"1-2","teams":["t1-challengers","kt-challengers"],"gameId":"lol-game-116249880467010566","league":"LCK Challengers","matchId":"lol-match-116249880467010563","gameNumber":3,"gameWinner":"kt-challengers","previousScore":"2-1","payload_version":2}},"exampleCapturedAt":"2026-11-03T14:09:13.170Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-score-updated"},{"event":"lol.standings.updated","game":"lol","kind":"summary","description":"League standings changed.","whenFires":"When standings for a league change.","status":"not_observed","statusNote":"You can subscribe, but none has been recorded. Do not rely on it.","typicalFrequency":"none recorded so far","last7Days":0,"lastSentAt":null,"latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":[],"filtersNote":"Not known yet: no stored event to read them from.","payloadBytes":null,"fields":[],"example":null,"exampleCapturedAt":null,"docsUrl":"https://citoapi.com/docs/webhooks/#lol-standings-updated"},{"event":"lol.transfer.new","game":"lol","kind":"lifecycle","description":"A player transfer was recorded.","whenFires":"When a new transfer is recorded.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 5 per week","last7Days":5,"lastSentAt":"2026-11-08T21:02:46.420Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":[],"filtersNote":"Not known yet: no stored event to read them from.","payloadBytes":null,"fields":[],"example":null,"exampleCapturedAt":null,"docsUrl":"https://citoapi.com/docs/webhooks/#lol-transfer-new"},{"event":"lol.tournament.started","game":"lol","kind":"lifecycle","description":"A tournament has started.","whenFires":"When a tournament begins.","status":"not_observed","statusNote":"You can subscribe, but none has been recorded. Do not rely on it.","typicalFrequency":"none recorded so far","last7Days":0,"lastSentAt":null,"latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":[],"filtersNote":"Not known yet: no stored event to read them from.","payloadBytes":null,"fields":[],"example":null,"exampleCapturedAt":null,"docsUrl":"https://citoapi.com/docs/webhooks/#lol-tournament-started"},{"event":"lol.tournament.completed","game":"lol","kind":"lifecycle","description":"A tournament has finished.","whenFires":"When a tournament ends.","status":"not_observed","statusNote":"You can subscribe, but none has been recorded. Do not rely on it.","typicalFrequency":"none recorded so far","last7Days":0,"lastSentAt":null,"latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":[],"filtersNote":"Not known yet: no stored event to read them from.","payloadBytes":null,"fields":[],"example":null,"exampleCapturedAt":null,"docsUrl":"https://citoapi.com/docs/webhooks/#lol-tournament-completed"},{"event":"lol.live.game_started","game":"lol","kind":"lifecycle","description":"A game inside a live series has started.","whenFires":"When a game of a tracked series goes in progress.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 5 per day across all matches (about 4 per match)","last7Days":33,"lastSentAt":"2026-11-08T21:54:23.074Z","latency":{"p50Ms":1213,"p95Ms":2017,"deliveries":412,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["matchId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":508,"max":877,"sampledRows":300},"notes":"Some events carry matchId only. data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"canonicalGameId","types":["string"],"presentPct":62},{"name":"gameId","types":["string"],"presentPct":62},{"name":"gameNumber","types":["number"],"presentPct":62},{"name":"gameState","types":["string"],"presentPct":62},{"name":"gameTime","types":["null"],"presentPct":62},{"name":"league","types":["string"],"presentPct":62},{"name":"leagueId","types":["string"],"presentPct":62},{"name":"leagueSlug","types":["string"],"presentPct":62},{"name":"matchId","types":["string"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":62},{"name":"sequenceNumber","types":["number"],"presentPct":38},{"name":"teams","types":["object"],"presentPct":62},{"name":"teams.blue","types":["string"],"presentPct":62},{"name":"teams.red","types":["string"],"presentPct":62}],"example":{"event":"lol.live.game_started","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-10-31T17:57:25.477Z","event_type":"lol.live.game_started","match_id":"lol-match-115660540726095085","previous_state":null,"data":{"teams":{"red":"103461966965149786","blue":"111692118851466302"},"gameId":"115660540726095087","league":"Worlds","matchId":"lol-match-115660540726095085","gameTime":null,"leagueId":"98767975604431411","gameState":"inProgress","sampledAt":"2026-10-31T17:57:25.403Z","gameNumber":2,"leagueSlug":"worlds","canonicalGameId":"lol-game-115660540726095087"}},"exampleCapturedAt":"2026-10-31T17:57:25.477Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-game_started"},{"event":"lol.live.state","game":"lol","kind":"live_tick","description":"A snapshot of a live game: gold, kills, towers, barons, dragons and inhibitors for both sides.","whenFires":"Repeatedly during a live game, on tracked leagues.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 127 per day across all matches (about 177 per match)","last7Days":886,"lastSentAt":"2026-11-08T00:46:47.528Z","latency":{"p50Ms":980,"p95Ms":1473,"deliveries":3490,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":840,"max":875,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}. Check GET /lol/matches/{matchId}/coverage for expected_webhooks before relying on it.","fields":[{"name":"blue","types":["object"],"presentPct":100},{"name":"blue.barons","types":["number"],"presentPct":100},{"name":"blue.dragons","types":["array"],"presentPct":100},{"name":"blue.gold","types":["number"],"presentPct":100},{"name":"blue.inhibitors","types":["number"],"presentPct":100},{"name":"blue.kills","types":["number"],"presentPct":100},{"name":"blue.towers","types":["number"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["number"],"presentPct":100},{"name":"goldDiff","types":["number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"red","types":["object"],"presentPct":100},{"name":"red.barons","types":["number"],"presentPct":100},{"name":"red.dragons","types":["array"],"presentPct":100},{"name":"red.gold","types":["number"],"presentPct":100},{"name":"red.inhibitors","types":["number"],"presentPct":100},{"name":"red.kills","types":["number"],"presentPct":100},{"name":"red.towers","types":["number"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.state","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-08T00:46:47.528Z","event_type":"lol.live.state","match_id":"lol-match-115660540726095127","previous_state":null,"data":{"red":{"gold":78179,"kills":16,"barons":1,"towers":9,"dragons":["mountain","mountain"],"inhibitors":1},"blue":{"gold":71690,"kills":18,"barons":0,"towers":5,"dragons":["ocean","hextech","mountain","mountain"],"inhibitors":0},"teams":{"red":"100205573495116443","blue":"99566404848691211"},"gameId":"115660540726095130","league":"Worlds","matchId":"lol-match-115660540726095127","gameTime":4,"goldDiff":-6489,"leagueId":"98767975604431411","sampledAt":"2026-11-08T00:41:06.806Z","gameNumber":3,"leagueSlug":"worlds","canonicalGameId":"lol-game-115660540726095130"}},"exampleCapturedAt":"2026-11-08T00:46:47.528Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-state"},{"event":"lol.live.objective","game":"lol","kind":"live_tick","description":"A side took an objective (data.objective, data.side), with running totals.","whenFires":"When a baron, dragon or inhibitor falls in a live game.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 19 per day across all matches (about 27 per match)","last7Days":136,"lastSentAt":"2026-11-08T00:44:16.225Z","latency":{"p50Ms":877,"p95Ms":1337,"deliveries":960,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId","side"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":802,"max":812,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"objective","types":["string"],"presentPct":100},{"name":"objectiveType","types":["string"],"presentPct":71},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"side","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100},{"name":"totals","types":["object"],"presentPct":100},{"name":"totals.blueBarons","types":["number"],"presentPct":100},{"name":"totals.blueDragons","types":["number"],"presentPct":100},{"name":"totals.blueInhibitors","types":["number"],"presentPct":100},{"name":"totals.redBarons","types":["number"],"presentPct":100},{"types":["number"],"presentPct":100},{"name":"totals.redInhibitors","types":["number"],"presentPct":100}],"example":{"event":"lol.live.objective","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-08T00:40:13.786Z","event_type":"lol.live.objective","match_id":"lol-match-115660540726095127","previous_state":null,"data":{"side":"blue","teams":{"red":"100205573495116443","blue":"99566404848691211"},"gameId":"115660540726095130","league":"Worlds","totals":{"redBarons":1,"blueBarons":0,"redDragons":2,"blueDragons":4,"redInhibitors":0,"blueInhibitors":0},"matchId":"lol-match-115660540726095127","gameTime":9,"leagueId":"98767975604431411","objective":"dragon","sampledAt":"2026-11-08T00:36:59.780Z","gameNumber":3,"leagueSlug":"worlds","objectiveType":"mountain","canonicalGameId":"lol-game-115660540726095130"}},"exampleCapturedAt":"2026-11-08T00:40:13.786Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-objective"},{"event":"lol.live.gold_swing","game":"lol","kind":"live_tick","description":"The gold lead moved sharply.","whenFires":"When the gold difference moves by a large amount between two samples of a live game.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 22 per day across all matches (about 31 per match)","last7Days":153,"lastSentAt":"2026-11-08T00:44:16.137Z","latency":{"p50Ms":874,"p95Ms":1394,"deliveries":1553,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":743,"max":753,"sampledRows":300},"notes":"data.swing is the change in data.goldDiff. data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"blueGold","types":["number"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["number"],"presentPct":100},{"name":"goldDiff","types":["number"],"presentPct":100},{"name":"leadingSide","types":["string"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"previousGoldDiff","types":["number"],"presentPct":100},{"name":"redGold","types":["number"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"swing","types":["number"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.gold_swing","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-08T00:44:16.137Z","event_type":"lol.live.gold_swing","match_id":"lol-match-115660540726095127","previous_state":null,"data":{"swing":-1166,"teams":{"red":"100205573495116443","blue":"99566404848691211"},"gameId":"115660540726095130","league":"Worlds","matchId":"lol-match-115660540726095127","redGold":77295,"blueGold":71601,"gameTime":9,"goldDiff":-5694,"leagueId":"98767975604431411","sampledAt":"2026-11-08T00:40:59.782Z","gameNumber":3,"leagueSlug":"worlds","leadingSide":"red","canonicalGameId":"lol-game-115660540726095130","previousGoldDiff":-4528}},"exampleCapturedAt":"2026-11-08T00:44:16.137Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-gold_swing"},{"event":"lol.live.kill_update","game":"lol","kind":"live_tick","description":"Team kill totals changed.","whenFires":"When kills change between two samples of a live game.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 41 per day across all matches (about 57 per match)","last7Days":286,"lastSentAt":"2026-11-08T00:44:26.967Z","latency":{"p50Ms":871,"p95Ms":1377,"deliveries":2273,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":699,"max":701,"sampledRows":300},"notes":"data.delta holds the kills added per side. data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"blueKills","types":["number"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"delta","types":["object"],"presentPct":100},{"name":"delta.blue","types":["number"],"presentPct":100},{"name":"delta.red","types":["number"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"redKills","types":["number"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.kill_update","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-08T00:44:26.967Z","event_type":"lol.live.kill_update","match_id":"lol-match-115660540726095127","previous_state":null,"data":{"delta":{"red":1,"blue":0},"teams":{"red":"100205573495116443","blue":"99566404848691211"},"gameId":"115660540726095130","league":"Worlds","matchId":"lol-match-115660540726095127","gameTime":6,"leagueId":"98767975604431411","redKills":16,"blueKills":18,"sampledAt":"2026-11-08T00:41:06.806Z","gameNumber":3,"leagueSlug":"worlds","canonicalGameId":"lol-game-115660540726095130"}},"exampleCapturedAt":"2026-11-08T00:44:26.967Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-kill_update"},{"event":"lol.live.tower_destroyed","game":"lol","kind":"live_tick","description":"A tower fell.","whenFires":"When tower totals change between two samples of a live game.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 31 per day across all matches (about 43 per match)","last7Days":217,"lastSentAt":"2026-11-08T00:44:16.227Z","latency":{"p50Ms":854,"p95Ms":1332,"deliveries":1916,"basis":"From the moment Cito recorded the event to the moment a customer endpoint answered, recent deliveries."},"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":708,"max":711,"sampledRows":300},"notes":"data.delta holds the towers added per side. data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"blueTowers","types":["number"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"delta","types":["object"],"presentPct":100},{"name":"delta.blue","types":["number"],"presentPct":100},{"name":"delta.red","types":["number"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"redTowers","types":["number"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.tower_destroyed","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-11-07T00:21:50.600Z","event_type":"lol.live.tower_destroyed","match_id":"lol-match-115660540726095103","previous_state":null,"data":{"delta":{"red":0,"blue":4},"teams":{"red":"98767991853197861","blue":"111692118851466302"},"gameId":"115660540726095106","league":"Worlds","matchId":"lol-match-115660540726095103","gameTime":0,"leagueId":"98767975604431411","redTowers":11,"sampledAt":"2026-11-07T00:21:50.176Z","blueTowers":11,"gameNumber":3,"leagueSlug":"worlds","canonicalGameId":"lol-game-115660540726095106"}},"exampleCapturedAt":"2026-11-07T00:21:50.600Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-tower_destroyed"},{"event":"lol.live.player_down","game":"lol","kind":"live_tick","description":"One or more players died, with champion, role and death count.","whenFires":"When a player death is seen in a live game.","status":"quiet","statusNote":"You can subscribe, but it has not been sent recently. Do not build on it alone without checking lastSentAt.","typicalFrequency":"none in the last 7 days; last sent 2026-08-21","last7Days":0,"lastSentAt":"2026-08-21T00:56:09.011Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":940,"max":1501,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["null","number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"playersDown","types":["array"],"presentPct":100},{"name":"playersDown[].championId","types":["string"],"presentPct":100},{"name":"playersDown[].deaths","types":["number"],"presentPct":100},{"name":"playersDown[].participantId","types":["number"],"presentPct":100},{"name":"playersDown[].role","types":["string"],"presentPct":100},{"name":"playersDown[].side","types":["string"],"presentPct":100},{"name":"playersDown[].summonerName","types":["string"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.player_down","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-08-21T00:42:41.281Z","event_type":"lol.live.player_down","match_id":"lol-match-116792888905448318","previous_state":null,"data":{"teams":{"red":"102141671183409133","blue":"114746424759893687"},"gameId":"116792888905448320","league":"NACL","matchId":"lol-match-116792888905448318","gameTime":771,"leagueId":"109511549831443335","sampledAt":"2026-08-21T00:36:59.878Z","gameNumber":2,"leagueSlug":"nacl","playersDown":[{"role":"top","side":"blue","deaths":1,"championId":"Olaf","summonerName":"DOG Dcoy","participantId":1},{"role":"jungle","side":"blue","deaths":2,"championId":"Maokai","summonerName":"DOG Lojaz","participantId":2},{"role":"top","side":"red","deaths":1,"championId":"Ambessa","summonerName":"MU Crimson","participantId":6},{"role":"bottom","side":"red","deaths":1,"championId":"Jhin","summonerName":"MU Scary Jerry","participantId":9},{"role":"support","side":"red","deaths":1,"championId":"Nautilus","summonerName":"MU Obstinatus","participantId":10}],"canonicalGameId":"lol-game-116792888905448320"}},"exampleCapturedAt":"2026-08-21T00:42:41.281Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-player_down"},{"event":"lol.live.map_delta","game":"lol","kind":"live_tick","description":"Per-player alive state and map position changed.","whenFires":"During a live game.","status":"quiet","statusNote":"You can subscribe, but it has not been sent recently. Do not build on it alone without checking lastSentAt.","typicalFrequency":"none in the last 7 days; last sent 2026-08-21","last7Days":0,"lastSentAt":"2026-08-21T00:56:09.501Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":1332,"max":1352,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["null","number"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"players","types":["array"],"presentPct":100},{"name":"players[].alive","types":["boolean"],"presentPct":100},{"name":"players[].participantId","types":["number"],"presentPct":100},{"name":"players[].position","types":["null"],"presentPct":100},{"name":"players[].side","types":["string"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.map_delta","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-08-21T00:47:11.907Z","event_type":"lol.live.map_delta","match_id":"lol-match-116792888905448318","previous_state":null,"data":{"teams":{"red":"102141671183409133","blue":"114746424759893687"},"gameId":"116792888905448320","league":"NACL","matchId":"lol-match-116792888905448318","players":[{"side":"blue","alive":true,"position":null,"participantId":1},{"side":"blue","alive":false,"position":null,"participantId":2},{"side":"blue","alive":false,"position":null,"participantId":3},{"side":"blue","alive":true,"position":null,"participantId":4},{"side":"blue","alive":true,"position":null,"participantId":5},{"side":"red","alive":false,"position":null,"participantId":6},{"side":"red","alive":false,"position":null,"participantId":7},{"side":"red","alive":true,"position":null,"participantId":8},{"side":"red","alive":true,"position":null,"participantId":9},{"side":"red","alive":true,"position":null,"participantId":10}],"gameTime":1050,"leagueId":"109511549831443335","sampledAt":"2026-08-21T00:41:39.224Z","gameNumber":2,"leagueSlug":"nacl","canonicalGameId":"lol-game-116792888905448320"}},"exampleCapturedAt":"2026-08-21T00:47:11.907Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-map_delta"},{"event":"lol.live.pick_locked","game":"lol","kind":"live_tick","description":"A champion pick was locked in.","whenFires":"During the draft of a live game.","status":"quiet","statusNote":"You can subscribe, but it has not been sent recently. Do not build on it alone without checking lastSentAt.","typicalFrequency":"none in the last 7 days; last sent 2026-08-21","last7Days":0,"lastSentAt":"2026-08-21T00:29:45.399Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId","side"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":1829,"max":1861,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"bans","types":["array"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"championId","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameState","types":["string"],"presentPct":100},{"name":"gameTime","types":["null"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"participantId","types":["number"],"presentPct":100},{"name":"patchVersion","types":["string"],"presentPct":100},{"name":"picks","types":["array"],"presentPct":100},{"name":"picks[].championId","types":["string"],"presentPct":100},{"name":"picks[].participantId","types":["number"],"presentPct":100},{"name":"picks[].role","types":["string"],"presentPct":100},{"name":"picks[].side","types":["string"],"presentPct":100},{"name":"picks[].summonerName","types":["string"],"presentPct":100},{"name":"role","types":["string"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"side","types":["string"],"presentPct":100},{"name":"summonerName","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.live.pick_locked","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-08-20T22:55:23.881Z","event_type":"lol.live.pick_locked","match_id":"lol-match-116792888905448314","previous_state":null,"data":{"bans":[],"role":"mid","side":"blue","picks":[{"role":"top","side":"blue","championId":"Ambessa","summonerName":"CPD Horder","participantId":1},{"role":"jungle","side":"blue","championId":"Qiyana","summonerName":"CPD Music","participantId":2},{"role":"mid","side":"blue","championId":"Cassiopeia","summonerName":"CPD Ablazeolive","participantId":3},{"role":"bottom","side":"blue","championId":"Kaisa","summonerName":"CPD Mobility","participantId":4},{"role":"support","side":"blue","championId":"Rell","summonerName":"CPD Breezy","participantId":5},{"role":"top","side":"red","championId":"Riven","summonerName":"CNV Sniper","participantId":6},{"role":"jungle","side":"red","championId":"JarvanIV","summonerName":"CNV Tomio","participantId":7},{"role":"mid","side":"red","championId":"Syndra","summonerName":"CNV Insanity","participantId":8},{"role":"bottom","side":"red","championId":"Ezreal","summonerName":"CNV Cody Sun","participantId":9},{"role":"support","side":"red","championId":"Shen","summonerName":"CNV Zyko","participantId":10}],"teams":{"red":"109783170393931575","blue":"116877540282721669"},"gameId":"116792888905448316","league":"NACL","matchId":"lol-match-116792888905448314","gameTime":null,"leagueId":"109511549831443335","gameState":"in_game","sampledAt":"2026-08-20T22:49:49.980Z","championId":"Cassiopeia","gameNumber":2,"leagueSlug":"nacl","patchVersion":"16.16.805.442","summonerName":"CPD Ablazeolive","participantId":3,"canonicalGameId":"lol-game-116792888905448316"}},"exampleCapturedAt":"2026-08-20T22:55:23.881Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-live-pick_locked"},{"event":"lol.game.completed","game":"lol","kind":"lifecycle","description":"One game of a series finished, with draft, team stats, players and first objectives.","whenFires":"When a game inside a series ends.","status":"active","statusNote":"Sent during the last 7 days.","typicalFrequency":"about 3 per week","last7Days":3,"lastSentAt":"2026-11-08T20:59:41.337Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":2024,"max":2590,"sampledRows":229},"notes":"data.statsPending true means the stats are still arriving. Read /lol/games/{gameId} a little later for the complete record.","fields":[{"name":"draft","types":["object"],"presentPct":100},{"name":"draft.blueBans","types":["array"],"presentPct":100},{"name":"draft.picks","types":["object"],"presentPct":100},{"name":"draft.redBans","types":["array"],"presentPct":100},{"name":"duration","types":["null","number"],"presentPct":100},{"name":"firstObjectives","types":["object"],"presentPct":100},{"name":"firstObjectives.firstBaron","types":["null","string"],"presentPct":100},{"name":"firstObjectives.firstBlood","types":["null","string"],"presentPct":100},{"name":"firstObjectives.firstDragon","types":["null","string"],"presentPct":100},{"name":"firstObjectives.firstHerald","types":["null"],"presentPct":100},{"name":"firstObjectives.firstTower","types":["null","string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"patch","types":["null","string"],"presentPct":100},{"name":"payload_version","types":["number"],"presentPct":100},{"name":"players","types":["object"],"presentPct":100},{"name":"players.blue","types":["array"],"presentPct":100},{"name":"players.red","types":["array"],"presentPct":100},{"name":"statsPending","types":["boolean"],"presentPct":31},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["object"],"presentPct":100},{"name":"teams.red","types":["object"],"presentPct":100},{"name":"teamStats","types":["object"],"presentPct":100},{"name":"teamStats.blue","types":["object"],"presentPct":100},{"name":"teamStats.red","types":["object"],"presentPct":100},{"name":"winner","types":["null","string"],"presentPct":100}],"example":{"event":"lol.game.completed","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-08-21T00:56:19.279Z","event_type":"lol.game.completed","match_id":"lol-match-116792888905448318","previous_state":null,"data":{"draft":{"picks":{"red":["Jhin","Ambessa","Nautilus","Lee Sin","Cassiopeia"],"blue":["Zeri","Corki","Alistar","Olaf","Maokai"]},"redBans":[],"blueBans":[]},"patch":"16.16.805.442","teams":{"red":{"code":"MU","name":"Maryville University","slug":"maryville-university"},"blue":{"code":"DOG","name":"Dorado Gaming","slug":"dog"}},"gameId":"lol-game-116792888905448320","winner":"maryville-university","matchId":"lol-match-116792888905448318","players":{"red":[{"cs":229,"id":"1d18b5d5-7c5a-4593-a1c9-9192f8948560","gold":12473,"name":"Scary Jerry","kills":3,"deaths":2,"assists":17,"champion":"Jhin","position":"ADC"},{"cs":211,"id":"4ef78162-ec11-4ab6-b8bd-8ab3d338f043","gold":10283,"name":"Crimson","kills":5,"deaths":2,"assists":9,"champion":"Ambessa","position":"Top"},{"cs":23,"id":"08b82514-9517-43ee-b72b-0cd93ff5f056","gold":7322,"name":"Obstinatus","kills":0,"deaths":1,"assists":21,"champion":"Nautilus","position":"Support"},{"cs":171,"id":"8f9b0edd-f49d-4333-a9e8-41399c94468c","gold":11079,"name":"Niles","kills":5,"deaths":2,"assists":16,"champion":"Lee Sin","position":"Jungle"},{"cs":248,"id":"18a0192f-b383-45b8-bbb7-109b232ed0ac","gold":13393,"name":"AoJune","kills":14,"deaths":0,"assists":6,"champion":"Cassiopeia","position":"Mid"}],"blue":[{"cs":234,"id":"6d2f4263-798e-447d-85c6-89f1786f1e22","gold":10872,"name":"aadam","kills":4,"deaths":6,"assists":3,"champion":"Zeri","position":"Mid"},{"cs":209,"id":"d84b2c65-9c33-422b-9ab7-daaaa8956795","gold":9227,"name":"Hub","kills":0,"deaths":3,"assists":5,"champion":"Corki","position":"ADC"},{"cs":27,"id":"0c6ed2c1-0804-4d89-a334-cf4e13fce5e6","gold":5911,"name":"InFlame","kills":0,"deaths":8,"assists":4,"champion":"Alistar","position":"Support"},{"cs":208,"id":"9cdfb559-174a-4d30-93db-2d9438452018","gold":8260,"name":"Dcoy","kills":1,"deaths":3,"assists":1,"champion":"Olaf","position":"Top"},{"cs":162,"id":"3de113b1-2e66-453c-a8c6-445667ba1504","gold":9140,"name":"Lojaz","kills":2,"deaths":7,"assists":4,"champion":"Maokai","position":"Jungle"}]},"duration":1569,"teamStats":{"red":{"gold":58388,"kills":31,"barons":1,"towers":8,"dragons":4,"heralds":null,"inhibitors":1},"blue":{"gold":45032,"kills":8,"barons":0,"towers":1,"dragons":0,"heralds":null,"inhibitors":0}},"gameNumber":2,"firstObjectives":{"firstBaron":"red","firstBlood":"red","firstTower":"red","firstDragon":"red","firstHerald":null},"payload_version":2}},"exampleCapturedAt":"2026-08-21T00:56:19.279Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-game-completed"},{"event":"lol.draft.updated","game":"lol","kind":"live_tick","description":"A pick or ban was made in a live draft.","whenFires":"During the draft of a live game.","status":"quiet","statusNote":"You can subscribe, but it has not been sent recently. Do not build on it alone without checking lastSentAt.","typicalFrequency":"none in the last 7 days; last sent 2026-08-21","last7Days":0,"lastSentAt":"2026-08-21T00:29:44.894Z","latency":null,"minimumPlan":"pro","plans":["PRO","BUSINESS","ENTERPRISE","ONE_GAME_STARTER (own game)","BASIC"],"filters":["league","matchId","gameId"],"filtersNote":"A filter on a field this event does not carry stops every delivery of it, so only filter on the fields listed here.","payloadBytes":{"average":776,"max":791,"sampledRows":300},"notes":"data.teams.red and data.teams.blue are team ids. matchId, gameId and canonicalGameId identify the series and the game; pass canonicalGameId or gameId to /lol/games/{gameId}.","fields":[{"name":"action","types":["string"],"presentPct":100},{"name":"bansSoFar","types":["number"],"presentPct":100},{"name":"canonicalGameId","types":["string"],"presentPct":100},{"name":"champion","types":["string"],"presentPct":100},{"name":"gameId","types":["string"],"presentPct":100},{"name":"gameNumber","types":["number"],"presentPct":100},{"name":"gameTime","types":["null"],"presentPct":100},{"name":"league","types":["string"],"presentPct":100},{"name":"leagueId","types":["string"],"presentPct":100},{"name":"leagueSlug","types":["string"],"presentPct":100},{"name":"matchId","types":["string"],"presentPct":100},{"name":"order","types":["number"],"presentPct":100},{"name":"payload_version","types":["number"],"presentPct":100},{"name":"picksSoFar","types":["number"],"presentPct":100},{"name":"sampledAt","types":["string"],"presentPct":100},{"name":"team","types":["string"],"presentPct":100},{"name":"teams","types":["object"],"presentPct":100},{"name":"teams.blue","types":["string"],"presentPct":100},{"name":"teams.red","types":["string"],"presentPct":100}],"example":{"event":"lol.draft.updated","id":"a1b2c3d4-0000-4000-8000-000000000000","timestamp":"2026-08-20T22:55:23.885Z","event_type":"lol.draft.updated","match_id":"lol-match-116792888905448314","previous_state":null,"data":{"team":"blue","order":3,"teams":{"red":"109783170393931575","blue":"116877540282721669"},"action":"pick","gameId":"116792888905448316","league":"NACL","matchId":"lol-match-116792888905448314","champion":"Cassiopeia","gameTime":null,"leagueId":"109511549831443335","bansSoFar":0,"sampledAt":"2026-08-20T22:49:49.980Z","gameNumber":2,"leagueSlug":"nacl","picksSoFar":10,"canonicalGameId":"lol-game-116792888905448316","payload_version":2}},"exampleCapturedAt":"2026-08-20T22:55:23.885Z","docsUrl":"https://citoapi.com/docs/webhooks/#lol-draft-updated"}],"count":18,"games":["lol","cod","fortnite","cs2","dota2","tennis","ufc"],"plans":{"live_delivery":{"plans":["PRO","BUSINESS","ENTERPRISE"],"names":"Pro and Scale (and Enterprise)","pro_monthly_usd":59,"scale_monthly_usd":100},"closed_plans":"Accounts still on the closed One Game Starter and Basic plans keep webhooks for the events their plan allows. They cannot subscribe to the real-time CS2 events.","free_and_starter":"Free and Starter accounts can create a test inbox (POST /api/v1/webhook-inbox) and send sample events to it. Live delivery needs Pro or Scale.","upgrade_url":"https://citoapi.com/signup/pro?checkout=1&source=webhook_access","limits":{"webhooks_per_account":5}},"setup":[{"step":1,"title":"Pick events","detail":"GET /api/v1/webhooks/events lists every event, with status, volume, fields and a real example. Subscribe to the fewest that do the job: cs2.player.state_changed alone is hundreds of thousands of requests a week."},{"step":2,"title":"Get a URL","detail":"A public HTTPS route that accepts POST and answers 2xx within 10 seconds. No server yet? POST /api/v1/webhook-inbox gives you a hosted temporary URL, on any plan."},{"step":3,"title":"Create the webhook","detail":"POST /api/v1/webhooks with x-api-key and {\"url\":\"...\",\"events\":[\"...\"],\"filters\":{...}}. Needs Pro or Scale. Save webhook.secret from the response: it is shown once."},{"step":4,"title":"Verify signatures","detail":"HMAC-SHA256 of the raw request body with your secret, hex, compared with the X-Cito-Signature header. Hash the raw bytes before parsing JSON."},{"step":5,"title":"Send a test","detail":"POST /api/v1/webhooks/{id}/test with {\"event\":\"cs2.match.completed\"} sends a real recent sample, signed, marked as a test (X-Cito-Test: true, data.test true, test true). The response has the status code, latency and a plain-English diagnosis."},{"step":6,"title":"Watch deliveries","detail":"GET /api/v1/webhooks/{id}/deliveries lists each delivery. Handle retries with the payload id as your idempotency key."}],"envelope":{"fields":{"event":"The event name.","id":"Unique id of this event. Use it as your idempotency key (same as the X-Cito-Event-Id header).","timestamp":"When Cito sent this delivery, ISO 8601 UTC.","event_type":"The event name.","match_id":"The match id, or null when the event is not about one match.","previous_state":"The state before the change, on events that have one. Otherwise null.","data":"The event body. See fields and example on each event."},"test_markers":"A test delivery has test: true on the envelope, data.test true and the header X-Cito-Test: true. A replay has data.replayed true and data.original_event_id."},"signature_headers":["X-Cito-Signature","X-Cito-Event","X-Cito-Event-Id","X-Cito-Timestamp","X-Cito-Delivery-Attempt","X-Cito-Test (test deliveries only)"],"signing":{"algorithm":"HMAC-SHA256","signedContent":"UTF-8 bytes of the exact JSON request body sent by Cito","bodySerialization":"JSON.stringify(payload)","signatureHeader":"X-Cito-Signature","signatureEncoding":"hex","signaturePrefix":"none","secretFormat":"Use the exact webhook secret value shown when the webhook is created or regenerated. No whsec_ prefix is used.","verificationRule":"Verify against the raw request body bytes before reparsing or reserializing JSON.","sampleSecret":"cito_test_secret_123","samplePayload":{"event":"lol.live.state","id":"sample-event-id-123","timestamp":"2026-06-07T16:00:00.000Z","data":{"gameId":"lol-game-123","matchId":"lol-match-123","league":"LEC","gameTime":1337,"blueTeam":{"tag":"G2","kills":7,"gold":24800,"towers":3,"dragons":2,"barons":0},"redTeam":{"tag":"FNC","kills":5,"gold":23700,"towers":2,"dragons":1,"barons":0}}},"samplePayloadString":"{\"event\":\"lol.live.state\",\"id\":\"sample-event-id-123\",\"timestamp\":\"2026-06-07T16:00:00.000Z\",\"data\":{\"gameId\":\"lol-game-123\",\"matchId\":\"lol-match-123\",\"league\":\"LEC\",\"gameTime\":1337,\"blueTeam\":{\"tag\":\"G2\",\"kills\":7,\"gold\":24800,\"towers\":3,\"dragons\":2,\"barons\":0},\"redTeam\":{\"tag\":\"FNC\",\"kills\":5,\"gold\":23700,\"towers\":2,\"dragons\":1,\"barons\":0}}}","sampleSignature":"97db77f5cd96e09a70dcf6cc75fc5d92d780c41ce82c853b51e4070954c54171","sampleHeaders":{"Content-Type":"application/json","X-Cito-Signature":"97db77f5cd96e09a70dcf6cc75fc5d92d780c41ce82c853b51e4070954c54171","X-Cito-Event":"lol.live.state","X-Cito-Event-Id":"sample-event-id-123","X-Cito-Timestamp":"2026-06-07T16:00:00.000Z","X-Cito-Delivery-Attempt":"1"}},"delivery":{"timeout_ms":10000,"attempts_per_event":3,"retry_gaps_seconds":[1,2],"retried":"Timeouts, network errors, 5xx, 408 and 429.","not_retried":"Other 4xx answers.","success":"Any 2xx answer.","redirects":"307 and 308 keep the POST. 301, 302 and 303 turn it into a GET with no body, so set the webhook to the final URL.","ordering":"Not guaranteed. Use data timestamps or seq-like fields, and treat each event independently.","idempotency":"Use the payload id / X-Cito-Event-Id header as your idempotency key.","failure_pause":{"after_consecutive_failures":3,"pause_minutes":[1,5,15,30],"behaviour":"After 3 failed events in a row, Cito pauses sending to that webhook: 1, then 5, 15 and 30 minutes (30 is the cap). Events that occur during a pause are NOT queued for you. They are logged with status \"skipped_backoff\" and are not sent again unless you ask. Any success ends the pause.","after_recovery":"When the first delivery after a pause succeeds, Cito re-sends up to 50 missed match and result events from the last 24 hours, oldest first, with data.catch_up true and the same event id. POST /api/v1/webhooks/{id}/catch-up re-sends any still missing. POST /api/v1/webhooks/{id}/replay re-sends a specific event or match."},"auto_disable":{"behaviour":"A webhook is switched off (isActive false, reason in lastError) after 100 failures in a row, 20 in a row when the answer is permanent (401, 403, 404, 410, 530, DNS or certificate errors), or 50 in a row with no success for 7 days.","re_enable":"POST /api/v1/webhooks/{id}/reset, or PATCH with {\"isActive\":true}."},"log_note":"attempt in the delivery log is currently always 1, even when retries happened. X-Cito-Delivery-Attempt on the request is the real attempt number.","outbound_addresses":"Deliveries come from Cito servers and may change. Verify X-Cito-Signature instead of allow-listing addresses."},"filters":{"note":"Set on a webhook as {\"filters\":{\"league\":\"LEC\"}}. Each field takes one value or a list, compared case-insensitively. Fields per event are on each event.","fields":{"league":"data.league (for example LEC, Worlds, or cs2 for CS2 events).","matchId":"data.matchId.","gameId":"data.gameId.","side":"data.side.","tour":"Tennis: ATP, WTA and so on.","tournamentId":"Tennis tournament id.","playerId":"Tennis: matches either player."},"tennis_matchId":"For tennis events, matchId matches data.id."},"endpoints":{"catalog":"GET /api/v1/webhooks/events?game=&event=&examples=false&fields=false (public)","openapi":"GET /api/v1/webhooks/openapi.json (public)","list":"GET /api/v1/webhooks","get":"GET /api/v1/webhooks/{id}","create":"POST /api/v1/webhooks","update":"PATCH /api/v1/webhooks/{id}","delete":"DELETE /api/v1/webhooks/{id}","test":"POST /api/v1/webhooks/{id}/test","regenerate_secret":"POST /api/v1/webhooks/{id}/regenerate-secret","reset":"POST /api/v1/webhooks/{id}/reset","deliveries":"GET /api/v1/webhooks/{id}/deliveries","delivery":"GET /api/v1/webhooks/{id}/deliveries/{deliveryId}","replay":"POST /api/v1/webhooks/{id}/replay","catch_up":"POST /api/v1/webhooks/{id}/catch-up","inbox":"POST, GET /api/v1/webhook-inbox"},"auth":"Management routes take your API key (x-api-key header or Authorization: Bearer) or a dashboard session. A key only reaches its own account's webhooks.","measured_at":"2026-11-08T20:30:57.835Z","docs":"https://citoapi.com/docs/webhooks/","dashboard":"https://citoapi.com/dashboard/webhooks"}