Back to Blog
Use CaseMarch 14, 20268 min read

Track Grocery Prices Across BlinkIt, Zepto & Swiggy with One API

Monitor and track grocery prices across India's top quick commerce platforms. Set up automated price tracking with cron jobs and alerts.

#price tracking#search#automation#cron

Grocery prices on quick commerce platforms fluctuate more than you might think. The same 5kg bag of Aashirvaad Atta can be Rs 100 on BlinkIt today and Rs 180 on Zepto tomorrow. Festive sales, platform-specific discounts, and dynamic pricing mean that the cheapest platform changes constantly. For budget-conscious families, D2C brands tracking competitors, or deal-hunting apps, real-time price tracking across platforms is essential.

In this guide, we will show you how to set up automated price tracking using the QuickCommerce API. You will learn how to query prices, store them over time, and set up alerts when prices drop below your target. Whether you are a developer building a consumer app or a business monitoring competitor pricing, this approach scales from tracking a single product to thousands of SKUs.

Platforms We Will Track

The QuickCommerce API supports all 7 major quick commerce platforms in India. For comprehensive price tracking, we recommend monitoring at least these key platforms. Each one has different pricing strategies and discount patterns. Visit any platform page below for platform-specific details.

Using the Search Endpoint

The search endpoint is the foundation of price tracking. It queries a single platform and returns product results with prices, MRP, offer prices, and availability. The search endpoint costs just 1 credit per call, making it the most cost-effective way to track prices when you know exactly which platform you want to query. For searching across multiple platforms in one call, use the groupsearch endpoint instead.

Searching on BlinkIt

GET /api/v1/searchSearch for Aashirvaad Atta on BlinkIt
Request (cURL)
curl -X GET "https://api.quickcommerceapi.com/api/v1/search?query=Aashirvaad+Atta+5kg&platform=blinkit" \
  -H "X-API-Key: YOUR_API_KEY"
Response (JSON)
{
  "query": "Aashirvaad Atta 5kg",
  "platform": "blinkit",
  "products": [
    {
      "name": "Aashirvaad Superior MP Atta 5 kg",
      "price": 327,
      "mrp": 365,
      "offer_price": 327,
      "image": "https://cdn.blinkit.com/aashirvaad-atta-5kg.jpg",
      "in_stock": true,
      "quantity": "5 kg",
      "brand": "Aashirvaad",
      "category": "Atta, Flours & Sooji",
      "sub_category": "Atta"
    },
    {
      "name": "Aashirvaad Whole Wheat Atta 5 kg",
      "price": 331,
      "mrp": 369,
      "offer_price": 331,
      "image": "https://cdn.blinkit.com/aashirvaad-ww-5kg.jpg",
      "in_stock": true,
      "quantity": "5 kg",
      "brand": "Aashirvaad",
      "category": "Atta, Flours & Sooji",
      "sub_category": "Atta"
    }
  ],
  "total_results": 2,
  "credits_used": 1,
  "response_time_ms": 892
}

Try it live in the API Playground →

Comparing with Zepto

GET /api/v1/searchSame product on Zepto for price comparison
Request (cURL)
curl -X GET "https://api.quickcommerceapi.com/api/v1/search?query=Aashirvaad+Atta+5kg&platform=zepto" \
  -H "X-API-Key: YOUR_API_KEY"
Response (JSON)
{
  "query": "Aashirvaad Atta 5kg",
  "platform": "zepto",
  "products": [
    {
      "name": "Aashirvaad Superior MP Whole Wheat Atta, 5 kg",
      "price": 339,
      "mrp": 365,
      "offer_price": null,
      "image": "https://cdn.zepto.co/aashirvaad-5kg.webp",
      "in_stock": true,
      "quantity": "5 kg",
      "brand": "Aashirvaad",
      "category": "Foodgrains",
      "sub_category": "Atta & Flour"
    }
  ],
  "total_results": 1,
  "credits_used": 1,
  "response_time_ms": 764
}

Try it live in the API Playground →

Price Comparison Across Platforms

After querying all platforms, here is what the Aashirvaad Atta 5kg prices look like across 5 major platforms. Notice the significant price variation. DMart consistently offers the lowest prices, while convenience-focused platforms like Zepto and BlinkIt charge a small premium for faster delivery.

PlatformPriceMRPSavingsIn Stock
BlinkItRs 327Rs 365Rs 38 (10.4%)Yes
ZeptoRs 339Rs 365Rs 26 (7.1%)Yes
Swiggy InstamartRs 319Rs 365Rs 46 (12.6%)Yes
BigBasketRs 325Rs 365Rs 40 (11.0%)Yes
DMart ReadyRs 299Rs 365Rs 66 (18.1%)Yes

Aashirvaad Atta 5kg — Price Trend (7 Days)

Price Comparison: Aashirvaad Atta 5kg

₹45

Price Variance

Across platforms

DMart

Cheapest

Most often

1 credit

Tracking Cost

Per search

7

Platforms

Monitored

Tip

The search endpoint costs just 1 credit per call. So tracking 10 products across 5 platforms every 6 hours uses only 200 credits per day. Check the pricing page for bulk credit packs.

Automated Price Tracking with Node.js

The real power of price tracking comes from automation. Here is a complete Node.js script that queries prices on a schedule, stores them in SQLite, and maintains a historical price database. This script runs every 6 hours using node-cron and tracks the products you configure.

price-tracker.js — Node.js Cron Job
const cron = require("node-cron");
const Database = require("better-sqlite3");
const fetch = require("node-fetch");

const API_KEY = process.env.QC_API_KEY;
const BASE_URL = "https://api.quickcommerceapi.com/api/v1";

// Products and platforms to track
const PRODUCTS = [
  "Aashirvaad Atta 5kg",
  "Amul Butter 500g",
  "Tata Salt 1kg",
  "Fortune Sunflower Oil 1L",
  "Maggi Noodles 12 Pack",
];
const PLATFORMS = ["blinkit", "zepto", "swiggy", "bigbasket", "dmart"];

// Initialize SQLite database
const db = new Database("prices.db");
db.exec(`
  CREATE TABLE IF NOT EXISTS price_history (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    product TEXT NOT NULL,
    platform TEXT NOT NULL,
    price REAL,
    mrp REAL,
    offer_price REAL,
    in_stock INTEGER,
    tracked_at DATETIME DEFAULT CURRENT_TIMESTAMP
  )
`);

const insertPrice = db.prepare(`
  INSERT INTO price_history (product, platform, price, mrp, offer_price, in_stock)
  VALUES (?, ?, ?, ?, ?, ?)
`);

async function trackProduct(query, platform) {
  try {
    const url = `${BASE_URL}/search?query=${encodeURIComponent(query)}&platform=${platform}`;
    const res = await fetch(url, {
      headers: {
        "X-API-Key": API_KEY,
        "x-geolocation-pincode": "560001", // Bangalore
      },
    });
    const data = await res.json();
    const product = data.products?.[0];
    if (product) {
      insertPrice.run(
        query,
        platform,
        product.price,
        product.mrp,
        product.offer_price || null,
        product.in_stock ? 1 : 0
      );
      console.log(`[OK] ${platform} | ${query} | Rs ${product.price}`);
    }
  } catch (err) {
    console.error(`[ERR] ${platform} | ${query}: ${err.message}`);
  }
}

async function runTrackingCycle() {
  console.log(`\n--- Price tracking run: ${new Date().toISOString()} ---`);
  for (const product of PRODUCTS) {
    for (const platform of PLATFORMS) {
      await trackProduct(product, platform);
      // Small delay to avoid rate limiting
      await new Promise((r) => setTimeout(r, 500));
    }
  }
  console.log("--- Tracking cycle complete ---\n");
}

// Run every 6 hours
cron.schedule("0 */6 * * *", runTrackingCycle);

// Also run immediately on start
runTrackingCycle();
console.log("Price tracker started. Running every 6 hours.");

Setting Up Price Drop Alerts

Once you have price data flowing in, you can set up alerts for when prices drop below a threshold. Here is a Python script that checks the latest prices and sends an email alert when it finds a deal. This pairs perfectly with the Node.js tracker above. For a more complete alerting system, check out our dedicated price drop alerts guide.

alert_checker.py — Price Drop Alerts
import sqlite3
import smtplib
from email.mime.text import MIMEText
from datetime import datetime, timedelta

# Configuration
DB_PATH = "prices.db"
ALERT_EMAIL = "your-email@gmail.com"
SMTP_PASSWORD = "your-app-password"

# Products and their target prices
ALERTS = {
    "Aashirvaad Atta 5kg": 310,     # Alert if below Rs 310
    "Amul Butter 500g": 270,        # Alert if below Rs 270
    "Fortune Sunflower Oil 1L": 145, # Alert if below Rs 145
}

def check_price_drops():
    conn = sqlite3.connect(DB_PATH)
    cursor = conn.cursor()

    since = (datetime.now() - timedelta(hours=7)).isoformat()
    deals = []

    for product, target in ALERTS.items():
        cursor.execute("""
            SELECT platform, price, mrp
            FROM price_history
            WHERE product = ? AND price < ? AND tracked_at > ?
            ORDER BY price ASC
        """, (product, target, since))

        rows = cursor.fetchall()
        for platform, price, mrp in rows:
            savings = round((1 - price / mrp) * 100, 1)
            deals.append(f"{product} on {platform}: Rs {price} "
                        f"(MRP Rs {mrp}, {savings}% off)")

    conn.close()

    if deals:
        send_alert(deals)

def send_alert(deals):
    body = "Price drop alerts:\n\n" + "\n".join(deals)
    body += "\n\nPowered by QuickCommerce API"

    msg = MIMEText(body)
    msg["Subject"] = f"Price Drop Alert - {len(deals)} deals found"
    msg["From"] = ALERT_EMAIL
    msg["To"] = ALERT_EMAIL

    with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
        server.login(ALERT_EMAIL, SMTP_PASSWORD)
        server.send_message(msg)

    print(f"Alert sent with {len(deals)} deals!")

if __name__ == "__main__":
    check_price_drops()

Quick Setup Guide

1

Create your free account

Head to quickcommerceapi.com/auth/signup and create your account. You will get 50 free credits to start.

2

Install dependencies

Run: npm install node-cron better-sqlite3 node-fetch. For the Python alert script, you just need the standard library.

3

Configure your products

Edit the PRODUCTS and PLATFORMS arrays in price-tracker.js to include the products and platforms you want to track.

4

Set your API key

Export your API key as an environment variable: export QC_API_KEY=your_key_here. Never hardcode API keys in source code.

5

Run the tracker

Start with: node price-tracker.js. It will run immediately and then every 6 hours. Use PM2 or systemd for production deployments.

6

Set up alerts

Configure the alert_checker.py with your target prices and email. Run it via cron: 0 */6 * * * python3 alert_checker.py

Test the Search Endpoint Live

Before setting up your tracker, try the search endpoint in our interactive playground. You can test with different products, platforms, and see the exact response format you will be working with.

Info

The API Playground lets you test all endpoints with your API key in a live, interactive environment. Try searching for your favorite grocery items and see prices in real-time.

What You Can Build Next

Price tracking is just the beginning. Once you have historical data, you can build price trend charts, identify the best day to buy certain products, or build a full price comparison app. You can also combine price data with delivery ETA data to recommend the cheapest and fastest platform for each order. For businesses, this data feeds into market intelligence dashboards for competitive analysis.

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.