Back to Blog
Use CaseMarch 8, 20267 min read

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.

#price alerts#automation#notifications#price tracking

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.

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:

GET /v1/searchSearch for Surf Excel on BlinkIt
Request (cURL)
curl -X GET "https://api.quickcommerceapi.com/v1/search?query=Surf+Excel+2kg&platform=blinkit" \
  -H "X-API-Key: YOUR_API_KEY"
Response (JSON)
{
  "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
}

Try it live in the API Playground →

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.

price_monitor.py — Threshold-based price alerting
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.

GET /v1/groupsearchSearch for Surf Excel 2kg across 4 platforms
Request (cURL)
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"
Response (JSON)
{
  "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
      }]
    }
  }
}

Try it live in the API Playground →

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.

PlatformOffer PriceMRPDiscountStock
ZeptoRs 275Rs 38028% OFFIn Stock
BigBasketRs 289Rs 38024% OFFIn Stock
BlinkItRs 299Rs 38021% OFFIn Stock
Swiggy InstamartRs 310Rs 38018% OFFIn 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.

telegram_notify.py — Send price alerts via Telegram
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.

price_history.py — SQLite storage for price tracking
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 None

Info

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

SchedulerEvery 4-6 hours
APISearch endpoint
📉Comparevs threshold
📱NotifyTelegram/Email

Quick Setup Guide

Ready to start monitoring prices? Follow these steps to go from zero to automated alerts in under 30 minutes.

1

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.

2

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.

3

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.

4

Configure notifications

Set up a Telegram bot (easiest), Slack webhook, or email alerts. Test the notification pipeline end to end.

5

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.

6

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.

Ready to Get Started?

Sign up for free and get 50 credits instantly. No credit card required. Start querying 7 quick commerce platforms with a single API.