BotDrop › Guides › How to Get Steam Patch Notes in Discord

How to Get Steam Patch Notes in Discord

By BotDrop · Updated October 17, 2026 · Free guide, no purchase needed

When a game your community plays gets patched, people want to know what changed. You can get Steam patch notes into Discord for free, from zero setup to a tiny script. Here are three ways, plus how to keep the channel from filling up with noise.

Option 1: Follow the game on Steam (just for you)

Click Follow on a game's Steam store page. Its announcements, patch notes included, then show up in your Steam activity feed and in the Steam News Hub, which by default shows posts from games you play, wishlist or follow. Games you own also show updates in the Library's What's New row.

That's perfect for keeping yourself informed, but nothing reaches Discord. To share patch notes with your server, use Option 2 or 3.

Option 2: Follow the game's official Discord announcements

Many studios run an official Discord server with an announcement channel (a megaphone icon next to the channel name). Discord lets you pipe that channel into your own server:

  1. Join the game's official server and open its announcement channel.
  2. Click Follow, pick your server and channel (for example #patch-notes), and confirm. You need the Manage Webhooks permission in your server.
  3. From then on, every post the studio publishes appears in your channel, sent by a bot named after their server.

Pros: no code, no hosting, and it comes straight from the developers. Cons: not every game has an official server, the studio decides what gets published (often events and merch as well as patches), and @everyone and role mentions are removed. You can see and remove followed channels under Server Settings → Integrations.

Option 3: Steam's news feed plus a Discord webhook

Steam publishes every game's announcements in machine-readable form, so a small script can watch them and post into Discord. It works for any game on Steam, official Discord server or not.

1. Find the game's App ID

Open the game's store page. The App ID is the number in the address: in store.steampowered.com/app/440/Team_Fortress_2/ it's 440.

2. Pick a source: RSS or the ISteamNews API

  • RSS. The Steamworks docs say Steam automatically generates an RSS feed for each game. In our test, this address worked: https://store.steampowered.com/feeds/news/app/440/. Any RSS reader can follow it. It returned the latest 10 posts.
  • The ISteamNews API. GetNewsForApp needs no API key. Its options are appid, count, maxlength (a short summary instead of the full post) and feeds (only certain news sources). For example:
    https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?appid=440&count=5&maxlength=300

3. Create a Discord webhook

In your server, open Server Settings → Integrations → Webhooks, click New Webhook (older help pages call it Create Webhook), give it a name like "Patch Notes", choose the channel, and click Copy Webhook URL. Treat that URL like a password: anyone who has it can post in that channel. If it leaks, delete the webhook and make a new one.

4. Run a small script on a timer

This Python script checks the API, keeps only posts tagged as patch notes, skips anything it already posted, and sends the rest to your webhook. On its first run it only records what already exists, so your channel isn't flooded with old patches.

# steam_patch_notes.py: posts new Steam patch notes to a Discord channel.
# Needs Python 3 only (no extra packages). Run it every 30-60 minutes.
import json, os, urllib.request

WEBHOOK = os.environ["DISCORD_WEBHOOK_URL"]  # keep it out of the code
GAMES = [440, 730]          # Steam App IDs: the number in the game's store URL
SEEN_FILE = "seen.json"     # remembers what was already posted
API = ("https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/"
       "?appid={}&count=10&maxlength=300&feeds=steam_community_announcements")

def call(url, data=None):
    req = urllib.request.Request(url, data=data, headers={
        "User-Agent": "steam-patch-notes-script", "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=20) as r:
        return r.read()

seen = json.load(open(SEEN_FILE)) if os.path.exists(SEEN_FILE) else {}
for app in GAMES:
    first_run = str(app) not in seen          # first run: just remember, don't flood
    done = seen.setdefault(str(app), [])
    news = json.loads(call(API.format(app)))["appnews"]["newsitems"]
    for item in reversed(news):                # oldest first
        if item["gid"] in done or "patchnotes" not in item.get("tags", []):
            continue
        done.append(item["gid"])
        if not first_run:
            link = f"https://store.steampowered.com/news/app/{app}/"
            text = f"**{item['title']}**\n{item['contents']}\n<{link}>"
            call(WEBHOOK, json.dumps({"content": text[:2000]}).encode())
    seen[str(app)] = done[-50:]
json.dump(seen, open(SEEN_FILE, "w"))

Set the webhook as an environment variable (on Windows: setx DISCORD_WEBHOOK_URL "your-webhook-url", then open a new window), change GAMES to your App IDs, and run python steam_patch_notes.py. To repeat it on Windows, create a task in Task Scheduler and, in the task's trigger, tick Repeat task every 30 minutes. On Linux or a Raspberry Pi, use a cron line like */30 * * * * cd ~/patchnotes && python3 steam_patch_notes.py.

What we tested (Oct 17, 2026): we ran this script against Steam's live API for Team Fortress 2 (440) and Counter-Strike 2 (730), with a local test endpoint standing in for Discord. The first run posted nothing; new posts were sent once and never repeated. We didn't send it to a real Discord channel for this guide. Discord webhooks accept this same {"content": …} format, up to 2,000 characters.

Filtering out the noise

A patch-notes channel only stays useful if people don't mute it. What we saw in Steam's real data, and how to handle it:

  • The same update appears more than once. For Team Fortress 2, one update came back three times, from three feeds: Community Announcements, Product Update and the game's blog. Asking only for feeds=steam_community_announcements leaves one copy.
  • Most news isn't a patch. Sales, events and dev blogs are mixed in. In our test, posts the developers marked as patch notes carried a patchnotes tag. Steam listed 3,958 news items for Team Fortress 2 across all feeds, and only 147 community announcements had that tag. Valve doesn't document this tag, so the script simply skips posts without it rather than relying on it to exist.
  • Don't ping everyone. Make a @patch-notes role that members can pick, and only mention that role for big updates.
  • Keep it short. A title, a 300-character summary and a link is easier to read than a 5,000-word changelog pasted into chat.
  • Check every 30–60 minutes, not every minute. Patch notes aren't that urgent, and it keeps you well within Steam's and Discord's limits.
  • Use one channel per topic. Put patch notes in their own channel, so members can mute general chatter but keep updates.

Want it done for you?

If you'd rather not maintain a script, our Patch Tracker ($12) does this for the games your community plays: it posts official Steam patch notes, tells major updates apart from small patches, and never repeats an alert. The Gaming Community Kit ($25) includes patch notes alongside moderation, free games and Steam deals. Both are one-time purchases you run yourself.

Sources

Checked against these pages on October 17, 2026. Menus in Discord and Steam move from time to time; if a button has a slightly different name, look for it nearby.

More free guides