// free agents / free-game-alert
🎮 Free game & deal alert
“Ping my Discord whenever a game goes free on Epic or anywhere else, or a wishlist game drops below my price.”
Free, no sign-up. MIT licence. Python standard library only, so there's nothing to pip install.
What it does
Checks Epic Games Store's free-games feed and GamerPower giveaways (Steam, GOG, Epic, itch and more) every few hours, and optionally IsThereAnyDeal prices for games you name. Only new finds get posted to your Discord channel.
What you need
- Python 3.9+ (no extra packages) or n8n
- A Discord server where you can create a webhook (Server settings, then Integrations, then Webhooks)
- Optional: a free IsThereAnyDeal API key for wishlist price alerts
5-minute setup
Python
- Install Python 3.9+ and unzip the download.
- Try it with no accounts:
python3 free_game_alert.py --dry-run - Copy
.env.exampleto.envand fill it in. - Run:
set -a; . ./.env; set +a; python3 free_game_alert.py(Windows steps in the README).
n8n (no code)
- Workflows, then Import from file, then
free-game-alert.n8n.json. - Follow the yellow “Read me” note (credentials or webhook).
- Test workflow, then switch it to Active.
Run it on a schedule
Every 3 hours with cron:
0 */3 * * * cd /path/to/free-game-alert && set -a && . ./.env && set +a && python3 free_game_alert.py >> run.log 2>&1On Windows use Task Scheduler. With n8n, the Schedule node does it for you.
Settings
| Variable | What it does |
|---|---|
DISCORD_WEBHOOK_URL | Your Discord webhook URL (leave empty to just print) |
GAMERPOWER_PLATFORMS | pc, steam, epic-games-store, gog, itchio... default pc |
COUNTRY | Store country, default US |
ITAD_API_KEY | Optional IsThereAnyDeal key |
WATCH_GAMES | Optional, comma-separated titles to price-watch, e.g. Hades II,Balatro |
MAX_PRICE | Alert when a watched game is at or below this price, default 10 |
What we tested
- Ran against the live Epic and GamerPower APIs: found the current Epic freebies and a dozen GamerPower giveaways.
- Posted to a mock Discord webhook: batches of 10 embeds, correct JSON.
- Second run posted nothing (dedupe works).
- n8n workflow imported and run end to end in a real n8n install, posting 14 alerts to a mock Discord webhook.
Honest limits
- The IsThereAnyDeal part needs your own free key, so we couldn't test it live; the code follows ITAD's documented v1/v3 endpoints.
- Epic's feed is unofficial and can change without notice.
- Doesn't read your Steam wishlist automatically; you list the titles yourself.
- We tested against a mock Discord webhook, not a real server.
Want one built for your task?
Describe it in one sentence. We build it, test it and hand it over, usually within 24h.