Automate Price Drop Alerts for Quick Commerce Products
Set up automated price drop alerts for groceries and essentials across quick commerce platforms. Get notified when prices fall below your target.
Every savvy shopper knows the feeling: you buy a pack of Surf Excel for full price, only to see it discounted the very next day on BlinkIt or Zepto. Quick commerce platforms run flash deals, time-limited offers, and dynamic pricing that can save you anywhere from 5% to 40% on everyday essentials. The problem? You can't sit around refreshing four different apps all day.
With the QuickCommerce API, you can build an automated price monitoring system that watches products across multiple platforms and alerts you the moment a price drops below your target. Whether you are tracking groceries for your household or monitoring hundreds of SKUs for a business, this guide shows you exactly how to set it up.
How Price Tracking Works with the Search Endpoint
The core of any price tracking system is the search endpoint. When you search for a product on a specific platform, the API returns the current offer_price (what you actually pay) and the mrp (maximum retail price). The difference between these two values is your discount. By storing these values over time and comparing them against your target price, you can trigger alerts automatically.
The /v1/search endpoint accepts a query string and a platform parameter, and returns a list of matching products with full pricing details. Each product includes the name, brand, weight/quantity, offer_price, mrp, and available discount. This is everything you need to build a robust alerting system.
Searching for a Product on a Single Platform
Let's start with a simple example. Say you want to track the price of Surf Excel Easy Wash 2kg on BlinkIt. Here is the API call and what you get back:
curl -X GET "https://api.quickcommerceapi.com/v1/search?query=Surf+Excel+2kg&platform=blinkit" \
-H "X-API-Key: YOUR_API_KEY"{
"platform": "blinkit",
"query": "Surf Excel 2kg",
"results": [
{
"name": "Surf Excel Easy Wash Detergent Powder",
"brand": "Surf Excel",
"weight": "2 kg",
"offer_price": 299,
"mrp": 380,
"discount": "21% OFF",
"in_stock": true,
"image_url": "https://cdn.blinkit.com/surf-excel-2kg.jpg",
"product_id": "bk-surf-2kg-001"
},
{
"name": "Surf Excel Matic Top Load Detergent Powder",
"brand": "Surf Excel",
"weight": "2 kg",
"offer_price": 449,
"mrp": 530,
"discount": "15% OFF",
"in_stock": true,
"image_url": "https://cdn.blinkit.com/surf-matic-2kg.jpg",
"product_id": "bk-surf-matic-2kg-001"
}
],
"total_results": 2
}Notice that Surf Excel Easy Wash 2kg is currently available at Rs 299 against an MRP of Rs 380 -- that is a 21% discount. If your target price is Rs 280 or lower, you would not trigger an alert yet. But if BlinkIt drops it to Rs 275 during a flash sale, your system catches it instantly.
Surf Excel 2kg — Price History (14 Days)
Building the Price Monitoring Script
Here is a complete Python script that monitors a list of products across platforms and sends alerts when prices drop below your defined thresholds. It uses the QuickCommerce API for data and can be scheduled to run via cron or a task scheduler.
import requests
import json
from datetime import datetime
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.quickcommerceapi.com/v1"
# Define products to track with target prices
WATCHLIST = [
{"query": "Surf Excel 2kg", "platform": "blinkit", "target_price": 280},
{"query": "Surf Excel 2kg", "platform": "zepto", "target_price": 280},
{"query": "Tata Tea Gold 1kg", "platform": "blinkit", "target_price": 420},
{"query": "Aashirvaad Atta 5kg", "platform": "swiggy", "target_price": 280},
{"query": "Amul Butter 500g", "platform": "bigbasket", "target_price": 260},
]
def search_product(query: str, platform: str) -> dict:
"""Search for a product on a specific platform."""
resp = requests.get(
f"{BASE_URL}/search",
params={"query": query, "platform": platform},
headers={"X-API-Key": API_KEY},
)
resp.raise_for_status()
return resp.json()
def check_prices():
"""Check all watchlist items and collect alerts."""
alerts = []
for item in WATCHLIST:
data = search_product(item["query"], item["platform"])
if not data.get("results"):
continue
product = data["results"][0] # Best match
current_price = product["offer_price"]
if current_price <= item["target_price"]:
alerts.append({
"product": product["name"],
"platform": item["platform"],
"current_price": current_price,
"mrp": product["mrp"],
"target_price": item["target_price"],
"discount": product.get("discount", "N/A"),
"time": datetime.now().isoformat(),
})
print(f"ALERT: {product['name']} on {item['platform']} "
f"is Rs {current_price} (target: Rs {item['target_price']})")
else:
print(f"OK: {product['name']} on {item['platform']} "
f"is Rs {current_price} (target: Rs {item['target_price']})")
return alerts
if __name__ == "__main__":
alerts = check_prices()
if alerts:
print(f"\n{len(alerts)} price alert(s) triggered!")
# Send notifications (Telegram, email, Slack, etc.)
send_notifications(alerts)
else:
print("\nNo price drops detected. Prices are above target.")Multi-Platform Price Comparison
Why check one platform when you can check four at once? The groupsearch endpoint lets you search for a product across multiple platforms in a single API call. This is perfect for finding the cheapest option at any given moment. Instead of making 4 separate requests, you make one -- and pay N credits for N platforms.
curl -X GET "https://api.quickcommerceapi.com/v1/groupsearch?query=Surf+Excel+2kg&platforms=blinkit,zepto,swiggy,bigbasket" \
-H "X-API-Key: YOUR_API_KEY"{
"query": "Surf Excel 2kg",
"platforms": {
"blinkit": {
"results": [{
"name": "Surf Excel Easy Wash Detergent Powder",
"weight": "2 kg",
"offer_price": 299,
"mrp": 380,
"discount": "21% OFF",
"in_stock": true
}]
},
"zepto": {
"results": [{
"name": "Surf Excel Easy Wash Detergent Powder",
"weight": "2 kg",
"offer_price": 275,
"mrp": 380,
"discount": "28% OFF",
"in_stock": true
}]
},
"swiggy": {
"results": [{
"name": "Surf Excel Easy Wash 2 kg",
"weight": "2 kg",
"offer_price": 310,
"mrp": 380,
"discount": "18% OFF",
"in_stock": true
}]
},
"bigbasket": {
"results": [{
"name": "Surf Excel Easy Wash Detergent Powder 2 kg",
"weight": "2 kg",
"offer_price": 289,
"mrp": 380,
"discount": "24% OFF",
"in_stock": true
}]
}
}
}From this single response, you can instantly see that Zepto has the best price at Rs 275 (28% off), followed by BigBasket at Rs 289. This kind of real-time comparison is incredibly powerful for automated deal-hunting.
| Platform | Offer Price | MRP | Discount | Stock |
|---|---|---|---|---|
| Zepto | Rs 275 | Rs 380 | 28% OFF | In Stock |
| BigBasket | Rs 289 | Rs 380 | 24% OFF | In Stock |
| BlinkIt | Rs 299 | Rs 380 | 21% OFF | In Stock |
| Swiggy Instamart | Rs 310 | Rs 380 | 18% OFF | In Stock |
Current Price: Surf Excel 2kg
Notification Channels: Email, Slack, and Telegram
Once you detect a price drop, you need to get the alert to the right people. The most popular channels for automated alerts are Telegram (instant, free, great for personal use), Slack (ideal for teams and business workflows), and email (good as a fallback or summary digest). Here is how to set up Telegram notifications, which most Indian developers prefer for personal price alerts.
import requests
TELEGRAM_BOT_TOKEN = "YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID = "YOUR_CHAT_ID"
def send_telegram_alert(alerts: list[dict]):
"""Send price drop alerts to Telegram."""
for alert in alerts:
message = (
f"Price Drop Alert!\n\n"
f"Product: {alert['product']}\n"
f"Platform: {alert['platform'].title()}\n"
f"Current Price: Rs {alert['current_price']}\n"
f"MRP: Rs {alert['mrp']}\n"
f"Discount: {alert['discount']}\n"
f"Your Target: Rs {alert['target_price']}\n"
f"Savings vs Target: Rs {alert['target_price'] - alert['current_price']}\n\n"
f"Hurry! Prices can change quickly."
)
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage",
json={
"chat_id": TELEGRAM_CHAT_ID,
"text": message,
"parse_mode": "HTML",
},
)
print(f"Telegram alert sent for {alert['product']}")
# Usage:
# alerts = check_prices() # from the monitoring script
# if alerts:
# send_telegram_alert(alerts)₹30-50
Avg Savings
Per product
4-6 hrs
Check Frequency
Recommended
Instant
Alert Speed
Via Telegram
1 credit
Cost
Per check
Tip
Run your price monitoring script every 4-6 hours. Quick commerce prices don't change every minute -- most platforms update pricing once or twice a day. Running too frequently wastes API credits without catching more deals.
Advanced Patterns: Percentage Drops and Historical Tracking
Beyond simple threshold alerts, there are more sophisticated patterns. Percentage-based drop detection triggers when a product drops by a specific percentage from its recent average. Historical tracking stores every price observation in a local database so you can identify seasonal trends, like Atta prices dropping during harvest season or cleaning supplies going on sale around Diwali.
Storing Price History in SQLite
A lightweight SQLite database is perfect for personal price tracking. It requires no server setup, runs locally, and can store months of pricing data in a tiny file. Here is how to save and query price history.
import sqlite3
from datetime import datetime
DB_PATH = "price_history.db"
def init_db():
"""Create the price history table."""
conn = sqlite3.connect(DB_PATH)
conn.execute("""
CREATE TABLE IF NOT EXISTS prices (
id INTEGER PRIMARY KEY AUTOINCREMENT,
product_name TEXT NOT NULL,
platform TEXT NOT NULL,
offer_price REAL NOT NULL,
mrp REAL NOT NULL,
discount_pct REAL,
in_stock INTEGER,
recorded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
conn.commit()
conn.close()
def record_price(product_name: str, platform: str,
offer_price: float, mrp: float, in_stock: bool):
"""Save a price observation."""
discount_pct = round((1 - offer_price / mrp) * 100, 1) if mrp > 0 else 0
conn = sqlite3.connect(DB_PATH)
conn.execute(
"""INSERT INTO prices
(product_name, platform, offer_price, mrp, discount_pct, in_stock)
VALUES (?, ?, ?, ?, ?, ?)""",
(product_name, platform, offer_price, mrp, discount_pct, int(in_stock)),
)
conn.commit()
conn.close()
def get_price_trend(product_name: str, platform: str, days: int = 30):
"""Get price history for the last N days."""
conn = sqlite3.connect(DB_PATH)
rows = conn.execute(
"""SELECT offer_price, mrp, discount_pct, recorded_at
FROM prices
WHERE product_name = ? AND platform = ?
AND recorded_at >= datetime('now', ?)
ORDER BY recorded_at DESC""",
(product_name, platform, f"-{days} days"),
).fetchall()
conn.close()
return rows
def detect_percentage_drop(product_name: str, platform: str,
current_price: float, threshold_pct: float = 10):
"""Alert if current price is X% below the 7-day average."""
conn = sqlite3.connect(DB_PATH)
row = conn.execute(
"""SELECT AVG(offer_price) FROM prices
WHERE product_name = ? AND platform = ?
AND recorded_at >= datetime('now', '-7 days')""",
(product_name, platform),
).fetchone()
conn.close()
if row and row[0]:
avg_price = row[0]
drop_pct = ((avg_price - current_price) / avg_price) * 100
if drop_pct >= threshold_pct:
return {
"product": product_name,
"platform": platform,
"avg_7d": round(avg_price, 2),
"current": current_price,
"drop_pct": round(drop_pct, 1),
}
return NoneInfo
Each search call costs just 1 credit, and each groupsearch call costs N credits for N platforms. Price monitoring is extremely cost-effective -- tracking 10 products across 4 platforms every 6 hours uses only about 160 credits per day.
Price Alert System
Quick Setup Guide
Ready to start monitoring prices? Follow these steps to go from zero to automated alerts in under 30 minutes.
Sign up and get your API key
Create a free account at /auth/signup and grab your API key from the dashboard. You get 50 free credits to start.
Define your watchlist
List the products you want to track along with your target price for each. Start with 5-10 high-value items like detergent, cooking oil, and rice.
Set up the monitoring script
Copy the Python script above and configure your watchlist and API key. Test it manually first to make sure it works.
Configure notifications
Set up a Telegram bot (easiest), Slack webhook, or email alerts. Test the notification pipeline end to end.
Schedule with cron
Add a cron job to run every 4-6 hours: 0 */4 * * * python3 /path/to/price_monitor.py. You will start receiving alerts within the first day.
Optional: Add price history
Integrate the SQLite storage module to build historical data. After a few weeks you can spot patterns and seasonal trends.
With just a few hundred lines of Python and the QuickCommerce API, you have a powerful price alert system that runs 24/7. No more missing deals, no more overpaying for essentials. Try it out in the API Playground to experiment with search queries before writing your script.