Every week some product on Amazon drops to a price nobody meant to set. A $180 air fryer listed at $18 because a third-party seller missed a zero. A 4-pack priced like a single. A clearance rule that fires on the wrong category. These are price glitches, and people in deal groups race to buy before the listing gets fixed, often within minutes to an hour.
Most people try to profit by buying the glitches. That is the weak side of the trade: half the orders get cancelled, and the ones that ship are often one unit. The stronger side is being the channel that finds them first. When someone clicks your link and buys anything in the next 24 hours, you earn an Amazon affiliate commission, and the people who want alerts 5 minutes before everyone else pay you a monthly fee.
This guide builds the finder: a Python bot that pulls price drops from the Keepa API, filters out the noise, and posts the real outliers to a Telegram channel with your affiliate tag. Then we cover the money math, what it costs, and the risks, because there are several.
How the money works
There are three revenue lines, in order of how fast they show up:
- Affiliate commissions (free public channel). Amazon Associates pays a percentage of everything a clicker buys within 24 hours, not just the glitch item. Rates are fixed by category: roughly 1% (grocery, health, video game consoles) up to 4% to 4.5% (apparel, kitchen, books), with a few higher outliers like luxury beauty at 10%. Check the current rate table in Associates Central: Amazon has cut rates for some publishers in 2026 without announcing it publicly. Glitch traffic tends to convert better than average because people arrive ready to buy, and some add other items to the cart.
- Paid fast tier. The free channel gets alerts on a 5 to 10 minute delay. Subscribers on Whop or a private Telegram group get them instantly, plus filters by category. Typical pricing in this market is $10 to $30/month.
- Your own flips. You see every alert first. When a real glitch ships, buying 1 to 2 units and reselling on eBay or Facebook Marketplace is a bonus line. Treat it as a bonus, not the plan.
The asset is not the code. It is an audience that trusts your channel to be fast and not spammy. The code just keeps your cost of producing alerts close to zero.
What you need
| Item | Cost | Notes |
|---|---|---|
| Keepa API access | from €49/month | Cheapest plan is 20 tokens/minute. Check keepa.com, API section, for current plans |
| VPS | $4 to $6/month | Any 1 GB Linux box (Hetzner, DigitalOcean, Vultr) |
| Telegram bot + channel | Free | Create the bot with @BotFather |
| Amazon Associates account | Free | Approval needs 3 qualifying sales within 180 days of signup |
| Whop (paid tier, optional) | About 3% platform fee plus about 2.7% + $0.30 card processing at time of writing; more for non-US cards | Check Whop’s fee page before you rely on these numbers |
| Python 3.10+ | Free | pip install keepa requests (inside a venv on recent Ubuntu/Debian) |
Why Keepa and not your own Amazon scraper? Amazon blocks scrapers aggressively and its Conditions of Use prohibit them. Keepa already tracks price history for a huge share of Amazon’s catalog and sells that data through a paid API. You are a customer, not a scraper. That removes one whole category of risk.
Can you run this from outside the US? Yes. Amazon Associates US accepts international affiliates (you complete a W-8BEN tax interview). Check in Associates Central which payout methods your country supports before you invest time. Many non-US affiliates use a Payoneer or Wise USD account to receive direct deposit.
Step 1: Set up the bot and channel
- In Telegram, message @BotFather, send
/newbot, and save the token. - Create a public channel (for example
@glitchradar_us), then add your bot as an admin with permission to post. - Create a second private channel for the paid tier and add the bot there too.
- In Amazon Associates Central, add your public Telegram channel URL under “Edit your website, mobile app, and Alexa skill list”, so your account matches where your tagged links appear.
- Put Amazon’s required disclosure in the channel description: “As an Amazon Associate I earn from qualifying purchases.” The bot also adds it to every free-channel post.
Test the bot:
export TG_TOKEN="123456:ABC..."
curl -s "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
-d chat_id="@glitchradar_us" -d text="test"
If you get "ok":true, the bot can post.
Step 2: Check your Keepa key
pip install keepa requests
export KEEPA_KEY="your_key"
python -c "import keepa, os; api = keepa.Keepa(os.environ['KEEPA_KEY'], check_key=True); print(api.tokens_left)"
A number means you are connected (check_key=True matters: without it the library prints 0 even for a bad key). Keepa has a deals endpoint that returns products whose price dropped by some percentage over a time window. That endpoint does the heavy lifting for us: instead of tracking millions of products, we ask Keepa for the biggest recent drops a few times per minute. Each deal request costs 5 tokens and returns up to 150 deals. The script below makes 2 requests every 2 minutes (about 5 tokens/minute), so the cheapest 20 tokens/minute plan has plenty of room.
Step 3: The glitch finder
The trick is filtering. Keepa will happily return thousands of “40% off” items that are fake list prices or junk sellers. A glitch is something specific: the current price is far below the product’s own 90-day average, on a product that actually sells.
Save this as glitch.py:
#!/usr/bin/env python3
import os, time, html, sqlite3, requests, keepa
KEEPA_KEY = os.environ["KEEPA_KEY"]
TG_TOKEN = os.environ["TG_TOKEN"]
FREE_CH = os.environ.get("FREE_CH", "@glitchradar_us")
PAID_CH = os.environ.get("PAID_CH") # e.g. -1001234567890
TAG = os.environ["AMZ_TAG"] # e.g. yourtag-20
FREE_DELAY = 8 * 60 # seconds the free channel waits
MIN_DROP = 0.60 # current price at least 60% below 90-day average
MIN_AVG = 30_00 # only products that normally cost $30+ (cents)
MAX_RANK = 200_000 # must actually sell
api = keepa.Keepa(KEEPA_KEY)
db = sqlite3.connect("seen.db")
db.execute("CREATE TABLE IF NOT EXISTS seen (asin TEXT, price INT, ts INT, "
"PRIMARY KEY (asin, price))")
db.execute("CREATE TABLE IF NOT EXISTS queue (msg TEXT, due INT)")
# Price types (Keepa csv index): 0 = Amazon itself, 1 = new 3rd-party
QUERIES = [
{"page": 0, "domainId": 1, "priceTypes": [pt], "dateRange": 0,
"deltaPercentRange": [50, 100], "isRangeEnabled": True,
"isFilterEnabled": True, "isOutOfStock": False, "filterErotic": True,
"hasReviews": True, "sortType": 4}
for pt in (0, 1)
]
def send(chat, text):
r = requests.post(f"https://api.telegram.org/bot{TG_TOKEN}/sendMessage",
json={"chat_id": chat, "text": text, "parse_mode": "HTML",
"disable_web_page_preview": False}, timeout=15)
if not r.ok:
print("telegram error", r.text)
def check(deal, pt):
cur = deal["current"][pt]
avg90 = deal["avg"][3][pt] # [dateRange 3 = 90 days][price type]
rank = deal["current"][3] # index 3 = sales rank
if cur <= 0 or avg90 < MIN_AVG:
return None
if rank <= 0 or rank > MAX_RANK:
return None
drop = 1 - cur / avg90
if drop < MIN_DROP:
return None
return cur, avg90, drop
def run_once():
for q in QUERIES:
pt = q["priceTypes"][0]
res = api.deals(q, domain="US")
for d in res.get("dr", []):
hit = check(d, pt)
if not hit:
continue
cur, avg90, drop = hit
asin = d["asin"]
if db.execute("SELECT 1 FROM seen WHERE asin=? AND price=?",
(asin, cur)).fetchone():
continue
db.execute("INSERT INTO seen VALUES (?,?,?)", (asin, cur, int(time.time())))
title = html.escape((d.get("title") or asin)[:120])
seller = "Amazon" if pt == 0 else "3rd-party"
body = (f"<b>{drop:.0%} below 90-day avg</b> ({seller})\n"
f"{title}\n"
f"Now <b>${cur/100:.2f}</b> | 90d avg ${avg90/100:.2f}\n")
warn = "<i>Price errors get cancelled often. Buy at your own risk.</i>"
if PAID_CH: # untagged link: keep affiliate links out of the private group
send(PAID_CH, body + f"https://www.amazon.com/dp/{asin}\n" + warn)
msg = body + f"https://www.amazon.com/dp/{asin}?tag={TAG}\n" + warn
db.execute("INSERT INTO queue VALUES (?,?)", (msg, int(time.time()) + FREE_DELAY))
db.commit()
def flush_free():
now = int(time.time())
for rowid, msg in db.execute("SELECT rowid, msg FROM queue WHERE due<=?", (now,)).fetchall():
send(FREE_CH, msg + "\n#ad As an Amazon Associate I earn from qualifying purchases.")
db.execute("DELETE FROM queue WHERE rowid=?", (rowid,))
db.commit()
if __name__ == "__main__":
while True:
try:
run_once()
flush_free()
except Exception as e:
print("error:", e)
time.sleep(120)
What the filter does:
avg[3][pt]is Keepa’s 90-day average for that price type. Comparing against the product’s own history kills fake “was $299” list prices.- Sales rank under 200,000 removes dead listings nobody buys. Glitches on products with zero demand are worthless to your audience.
- Two price types. Amazon-sold glitches (type 0) are rarer and more likely to ship. Third-party glitches (type 1) are more common and more likely to be cancelled by the seller. The post tells the reader which one it is.
- Dedup by ASIN and price so a glitch is posted once, but a further drop on the same item is posted again.
- Untagged links in the paid channel. Only the public channel carries your affiliate tag (see the risks section for why). Titles are HTML-escaped because Telegram rejects messages with stray
<or&in HTML mode.
Field names follow Keepa’s deal object documentation. Run it with a print statement first and inspect one raw deal before you trust the indexes.
Step 4: Run it 24/7
sudo apt install -y python3-venv tmux
python3 -m venv ~/glitch-env && . ~/glitch-env/bin/activate
pip install keepa requests
export KEEPA_KEY=... TG_TOKEN=... AMZ_TAG=yourtag-20 PAID_CH=-100xxxxxxxxxx
tmux new -s glitch "~/glitch-env/bin/python glitch.py"
For a proper service, wrap it in a systemd unit with Restart=always. Then spend the first week tuning: if you post more than 15 to 20 alerts a day, tighten MIN_DROP to 0.7 or raise MIN_AVG. A glitch channel that posts 80 mediocre deals a day gets muted, and muted channels earn nothing.
Step 5: Grow the audience
The bot is a weekend. Distribution is the job.
- Screenshot the wins. When a glitch ships, members post their order confirmations. Repost them (with permission) on X, TikTok and Instagram. “This $240 Dyson-style vacuum went for $31 in our channel this morning” is the whole marketing plan.
- Do not spam Reddit. Most deal subreddits ban affiliate links and self-promotion. Contribute normally and link your channel in your profile.
- Niche down. “Price glitches” is crowded. “Glitches on tools and home improvement” or “LEGO and toy glitches” is easier to own and attracts buyers with bigger carts.
- Turn on the paid tier after the free channel has proof. Around 2,000 to 5,000 free members with a visible track record is a sensible point to test a $15/month instant tier.
Honest cost breakdown
| Item | Monthly |
|---|---|
| Keepa API (cheapest plan) | ~€49 (about $55 to $60) |
| VPS | $5 |
| Telegram, Python | $0 |
| Whop fees | ~3% platform + ~2.7% + $0.30 processing, only on paid revenue |
| Content tools for growth (CapCut, Canva free tiers) | $0 to $15 |
| Total fixed | about $60 to $75 |
| Time | One weekend to build, then 1 to 2 hours/day on growth and moderation |
No inventory, no capital at risk beyond about $75 a month. That is the main appeal compared to arbitrage plays where you tie up thousands in stock.
Realistic earnings
This is arithmetic, not a promise. The variables are clicks, conversion and cart size.
Affiliate side, assuming a $35 average cart at a 3% blended rate. The modest column assumes 3% of members click per day and 4% of clicks lead to an order. The optimistic column assumes 10% click and 8% order, which needs a very engaged audience and real glitches most days:
| Channel size | Modest (clicks / orders per day) | Modest/month | Optimistic (clicks / orders per day) | Optimistic/month |
|---|---|---|---|---|
| 1,000 members | 30 / ~1 | ~$40 | 100 / 8 | ~$250 |
| 10,000 members | 300 / 12 | ~$380 | 1,000 / 80 | ~$2,500 |
| 30,000 members | 900 / 36 | ~$1,100 | 3,000 / 240 | ~$7,500 |
Paid tier on top: if 0.5% to 2% of a 10,000-member channel pay $15/month, that is 50 to 200 subscribers, or $750 to $3,000/month before Whop and card fees (roughly 6%).
Put together, a 10,000-member channel lands somewhere between about $1,100 and $5,500 a month, depending on how good your alerts are and how much your audience buys. Many channels never reach 10,000 members, and nobody can promise how long it takes. Month one, with a few hundred members, expect close to nothing. Cancelled glitch orders pay zero commission, so most of your affiliate income comes from the other items people add to their carts.
The grey area (and how people push it)
Buying an item at a mistaken price is not illegal. You saw a price, you paid it. But the retailer is not obligated to honor it. Amazon’s Conditions of Use say some items may be mispriced and that, if the correct price is higher, Amazon can contact you before shipping or cancel the order. The order confirmation email is not acceptance. UK and EU retailers usually say the contract forms only on dispatch, which has the same effect.
How the aggressive end of the glitch scene operates:
- Multi-quantity and multi-account orders. Buying 10 units across several accounts and addresses to beat “limit 1” caps. This breaks Amazon’s terms, and Amazon links accounts through payment cards, addresses and devices.
- Chargebacks after cancellations. Some people dispute the charge when an order is cancelled. Do not. The charge is just an authorization that drops off on its own in a few days. A chargeback on a cancelled order is a fast way to get your Amazon account closed.
- Leaking paid alerts. Your paid members will forward alerts to the free world. Most channels accept this as free marketing; some use per-user watermarked links.
Risks you carry as the channel owner
- Amazon Associates termination. This is the big one. Amazon terminates accounts for policy breaches such as missing disclosure, and its rules are written around public sites and social media. Whether a private, paid Telegram group counts as an allowed placement is not spelled out, so treat it as a grey zone. Disclose every post (the code adds the required “As an Amazon Associate…” line), list your public channel, and keep untagged or non-Amazon links in the paid group (the code already does this) so your affiliate account does not depend on a private channel. Termination usually means losing unpaid commissions.
- Keepa ToS. Keepa data is licensed to you. Posting a link and a price you saw is low risk, but read Keepa’s API terms before you build a business on its data. Republishing Keepa’s charts or reselling raw data feeds is a different matter, so check their terms.
- Telegram channel takedowns. Reports for spam can get a channel restricted. Keep a backup channel and an email list.
- Reputation. Post three dead glitches in a row and members leave. Speed matters less than accuracy.
- Taxes. Affiliate and subscription income is taxable wherever you live. Amazon withholds US tax on some income for non-US affiliates depending on your treaty status.
Reality check: what does NOT work
- Posting every Keepa deal. The raw deals feed is mostly fake discounts. Without the 90-day-average filter you are running a spam channel.
- Relying on the glitch itself for commission. Most real glitches get cancelled. The money is in the carts and the subscriptions.
- Charging from day one. Nobody pays for speed until they have seen your free channel catch something big.
- Scraping Amazon directly to save €49. You will likely spend more on proxies and CAPTCHA solving than the API costs, and you will break Amazon’s Conditions of Use doing it.
- Ignoring other stores. Walmart, Target and Best Buy have glitches too. Once Amazon works, adding a second source keeps your channel ahead of copycats who only run Keepa.
Start today
- Create the bot with @BotFather, set up a free and a paid channel, and apply to Amazon Associates.
- Buy the cheapest Keepa API plan and run
glitch.pywith only a print statement for 48 hours to see what it catches. - Tune the thresholds until you get 5 to 15 strong alerts a day, then switch on posting.
- Post every confirmed win on X and TikTok, and track clicks in Associates Central weekly.
- When you reach a few thousand members with a track record, launch the $15/month instant tier.