API Documentation

QuickCommerce API v1 — Real-time product search, pricing, and delivery data across quick commerce and e-commerce platforms in India and the UAE.

18 platforms in India and the UAE. India: 7 quick commerce apps, Amazon, Nykaa, Myntra, Flipkart and Meesho for search and item, plus electronics platforms Reliance Digital, Croma, vivo & OnePlus for item price & stock. UAE: Noon Minutes & talabat mart for search, item and delivery ETA, priced in AED. Delivery ETA covers all 9 quick commerce apps.

UAE platforms 🇦🇪

Noon Minutes & talabat mart work on search, item, and ETA like the India apps — pass a UAE lat/lon (e.g. Downtown Dubai 25.1972, 55.2744); no pincode needed. Prices are in AED: every product and item carries a currency field (AED or INR). Platform names: NoonMinutes, TalabatMart.

Base URLhttps://api.quickcommerceapi.com

Authentication

All /v1/* endpoints require an API key passed via the X-API-Key header.

curl -H "X-API-Key: your-api-key" \
  "https://api.quickcommerceapi.com/v1/search?q=milk&lat=12.9021&lon=77.6639&platform=BlinkIt"

# Or pass API key as a query parameter:
curl "https://api.quickcommerceapi.com/v1/search?q=milk&lat=12.9021&lon=77.6639&platform=BlinkIt&api_key=your-api-key"

Get your API key from the Dashboard after signing up. Each API call costs 1 credit per platform (group endpoints cost 1 credit for each platform that answers). API key can be passed via X-API-Key header or api_key query parameter.

GET/v1/item

Item Details

Get real-time price, stock, and availability for a specific item on a platform. Use the id from search results.

Response note: data.items is always an array. Most platforms return a single item; some (like Swiggy) may return multiple variants.

Query Parameters

ParameterTypeRequiredDescription
item_idstringRequiredPlatform-specific item ID (from search results or a product link)
latfloatRequiredLatitude (e.g. 12.9021)
lonfloatRequiredLongitude (e.g. 77.6639)
platformstringRequiredBlinkIt, Zepto, Swiggy, BigBasket, DMart, JioMart, Minutes, Amazon, Nykaa, Myntra, Flipkart, Meesho, NoonMinutes, TalabatMart, RelianceDigital, Croma, Vivo, or OnePlus
pincodestringOptionalPincode (required for DMart, JioMart, Minutes; optional for Croma/RelianceDigital, else derived from lat/lon)
GET /v1/item?item_id=362674&lat=12.9021&lon=77.6639&platform=BlinkIt

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 48,
  "data": {
    "item_id": "362674",
    "platform": "BlinkIt",
    "lat": 12.9021,
    "lon": 77.6639,
    "count": 1,
    "items": [
      {
        "item_id": "362674",
        "name": "Tender Coconut (Thengina Kayi)",
        "brand": null,
        "quantity": "1 pc",
        "available": true,
        "price": 65,
        "mrp": 82,
        "inventory": 20,
        "deeplink": "https://blinkit.com/prn/x/prid/362674",
        "rating": null,
        "rating_count": null,
        "platform": "BlinkIt",
        "store_id": "45342",
        "fetched_at": "16-03-2026 06:52:12 AM",
        "gallery": [
          { "type": "image", "url": "https://cdn.grofers.com/da/cms-assets/cms/product/..." },
          { "type": "image", "url": "https://cdn.grofers.com/da/cms-assets/cms/product/..." }
        ]
      }
    ]
  }
}

Swiggy variants

Swiggy items can include multiple pack sizes/SKUs. We normalize these into data.items (one entry per variant).

Electronics platforms (item only)

These support /v1/item and /v1/items only — no search or ETA. Take the item ID from the product link (or use the Item ID Finder):

  • RelianceDigital — the product slug after /product/ in a reliancedigital.in link, e.g. poco-m8x-5g-128-gb-4-gb-ram-smartphone-blue-mt782n-10555462
  • Croma — the number after /p/ in a croma.com link, e.g. 317418
  • Vivo — <spuId>:<skuId> from a mshop.vivo.com/in/product/<spuId>?skuId=<skuId> link (bare spuId = default variant), e.g. 10373:19585
  • OnePlus — <productCode>:<skuCode> from the OnePlus store (bare productCode = first in-stock variant), e.g. P1120230:5011122818
GET/v1/eta

Delivery ETA

Get estimated delivery time and store availability for a quick commerce platform at a given location. ETA is not available for Amazon, Nykaa, Myntra, Flipkart, Meesho, or the item-only electronics stores. If the platform times out or errors, the call costs no credit and the platform is listed in failed_platforms.

Query Parameters

ParameterTypeRequiredDescription
latfloatRequiredLatitude (e.g. 12.9021)
lonfloatRequiredLongitude (e.g. 77.6639)
platformstringRequiredBlinkIt, Zepto, Swiggy, BigBasket, DMart, JioMart, Minutes, NoonMinutes, or TalabatMart
pincodestringOptionalPincode (required for DMart, JioMart, Minutes)
GET /v1/eta?lat=12.9021&lon=77.6639&platform=BlinkIt

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 47,
  "data": {
    "platform": "BlinkIt",
    "eta": "14 mins",
    "open": true,
    "store_id": "45342",
    "store_ids": ["36475", "38212", "42814", "45342"],
    "icon": "https://d2chhaxkq6tvay.cloudfront.net/platforms/blinkit.webp",
    "url": "https://blinkit.com",
    "lat": 12.9021,
    "lon": 77.6639,
    "failed_platforms": []
  }
}
GET/v1/groupsearch

Group Search (Multi-Platform)

Search for products across multiple platforms at once in a single API call. Credits charged = number of platforms that answer.

Credit Cost

1 credit per platform that answers. For example, searching 3 platforms costs 3 credits; if one times out or errors, it costs 2 and that platform is listed in failed_platforms.

Query Parameters

ParameterTypeRequiredDescription
qstringRequiredSearch query (e.g. 'atta', 'milk')
latfloatRequiredLatitude (e.g. 12.9021)
lonfloatRequiredLongitude (e.g. 77.6639)
platformsstringRequiredComma-separated platform names (e.g. BlinkIt,Zepto,Amazon,Flipkart)
groupbooleanOptionalIf true, return raw grouped response from platform instead of per-platform results
pincodestringOptionalPincode (required if platforms include DMart, JioMart, or Minutes)
GET /v1/groupsearch?q=atta&lat=12.9021&lon=77.6639&platforms=BlinkIt,Zepto

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 45,
  "data": {
    "query": "atta",
    "platforms": ["BlinkIt", "Zepto"],
    "lat": 12.9021,
    "lon": 77.6639,
    "credit_cost": 2,
    "failed_platforms": [],
    "results": {
      "BlinkIt": [
        {
          "id": "501346",
          "name": "Aashirvaad Atta",
          "mrp": 280,
          "offer_price": 265,
          "available": true,
          "platform": { "name": "BlinkIt", "sla": "8 mins" }
        }
      ],
      "Zepto": [
        {
          "id": "zp-9823",
          "name": "Aashirvaad Atta",
          "mrp": 280,
          "offer_price": 270,
          "available": true,
          "platform": { "name": "Zepto", "sla": "10 mins" }
        }
      ]
    }
  }
}

Raw Grouped Response (group=true)

Pass group=true to get the raw grouped response from the platform instead of per-platform results.

GET /v1/groupsearch?q=atta&lat=12.9021&lon=77.6639&platforms=BlinkIt,Zepto&group=true

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 45,
  "data": {
    "query": "atta",
    "platforms": ["BlinkIt", "Zepto"],
    "lat": 12.9021,
    "lon": 77.6639,
    "credit_cost": 2,
    "failed_platforms": [],
    "groups": [
      {
        "data": [
          {
            "id": "501346",
            "name": "Aashirvaad Atta",
            "brand": "Aashirvaad",
            "available": true,
            "images": ["https://cdn.grofers.com/..."],
            "mrp": 280,
            "offer_price": 265,
            "quantity": "5 kg",
            "deeplink": "https://blinkit.com/prn/x/prid/501346",
            "rank": 1,
            "inventory": 6,
            "rating": 4.68,
            "ratingCount": 52060,
            "platform": {
              "name": "BlinkIt",
              "sla": "8 mins",
              "storeId": 45342,
              "open": true
            },
            "siblings": ["501346"]
          }
        ]
      }
    ]
  }
}
GET/v1/groupeta

Group ETA (Multi-Platform)

Get delivery ETA across multiple platforms at once in a single API call. Credits charged = number of platforms that answer.

Credit Cost

1 credit per platform that answers. For example, checking ETA for 4 platforms costs 4 credits; if one times out or errors, it costs 3 and that platform is listed in failed_platforms.

Query Parameters

ParameterTypeRequiredDescription
latfloatRequiredLatitude (e.g. 12.9021)
lonfloatRequiredLongitude (e.g. 77.6639)
platformsstringRequiredComma-separated quick commerce platform names (e.g. BlinkIt,Zepto,DMart)
pincodestringOptionalPincode (required if platforms include DMart, JioMart, or Minutes)
GET /v1/groupeta?lat=12.9021&lon=77.6639&platforms=BlinkIt,Zepto,Swiggy

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 42,
  "data": {
    "platforms": ["BlinkIt", "Zepto", "Swiggy"],
    "lat": 12.9021,
    "lon": 77.6639,
    "credit_cost": 3,
    "failed_platforms": [],
    "results": [
      {
        "platform": "BlinkIt",
        "eta": "14 mins",
        "open": true,
        "store_id": "45342"
      },
      {
        "platform": "Zepto",
        "eta": "10 mins",
        "open": true,
        "store_id": "zp-1234"
      },
      {
        "platform": "Swiggy Instamart",
        "eta": "20 mins",
        "open": true,
        "store_id": "sw-5678"
      }
    ]
  }
}
GET/v1/screenshot

Product Page Screenshot

Capture a platform's own product page at a delivery location, as proof of the price shoppers there see. You get a PNG (with a banner recording platform, item, location, store and time), a one-page PDF report and, if you ask, a video of the session. Works for BlinkIt, Swiggy (Instamart), Zepto, BigBasket, JioMart, Minutes and DMart, the marketplaces Amazon, Flipkart, Myntra and Nykaa, and the electronics stores Croma, Reliance Digital, OnePlus and Vivo.

Credit Cost

50 credits per screenshot, whatever the options. A capture that fails is refunded: at once with sync=true, otherwise when you next check its status.

Query Parameters

ParameterTypeRequiredDescription
platformstringRequiredBlinkIt, Swiggy, Zepto, BigBasket, JioMart, Minutes, DMart, Amazon, Flipkart, Myntra, Nykaa, Croma, RelianceDigital, OnePlus or Vivo
item_idstringRequiredPlatform-specific item ID (from /v1/search or /v1/item); for a marketplace you can pass url instead
urlstringOptionalMarketplaces only: a product page link instead of item_id
latfloatOptionalLatitude (e.g. 12.9116); quick commerce needs lat and lon, or a pincode
lonfloatOptionalLongitude (e.g. 77.6389)
pincodestringOptional6-digit pincode; worked out from lat/lon when omitted. Enough on its own for marketplaces
devicestringOptionaldesktop (default) or mobile, the platform's phone website (BlinkIt, Swiggy, Zepto, BigBasket, JioMart and Minutes only)
capturestringOptionalvisible (default, the first screen) or full (the whole page)
formatstringOptionalpng, pdf, both (default), video, all, or a list like png,video
videobooleanOptionaltrue also records a WebM video of the session
syncbooleanOptionaltrue waits for the result in this call
waitintegerOptionalSeconds to wait with sync, 1 to 90 (default 90)
GET /v1/screenshot?platform=BlinkIt&item_id=36961&lat=12.9116&lon=77.6389&sync=true

{
  "status": "success",
  "request_id": "a1b2c3d4-...",
  "credits_remaining": 950,
  "data": {
    "job_id": "777c7cd464e34fcb802460504ed3a19d",
    "status": "done",
    "platform": "BlinkIt",
    "item_id": "36961",
    "device": "desktop",
    "capture": "visible",
    "formats": ["png", "pdf"],
    "location": { "lat": 12.9116, "lon": 77.6389, "pincode": "560102", "precision": "exact" },
    "api_price": { "price": 63, "mrp": 63, "available": true, "name": "Mother Dairy Salted Butter" },
    "result": {
      "png_url": "https://...",
      "pdf_url": "https://...",
      "video_url": null,
      "expires_in_seconds": 3600,
      "captured_at": "2026-10-26T09:33:39+00:00",
      "page_url": "https://blinkit.com/prn/x/prid/36961",
      "page_price": "63",
      "price_match": true,
      "location_shown": "Sector 4, HSR Layout, Bengaluru, Karnataka 560102",
      "truncated": false,
      "sha256": { "png": "5b6b90ad...", "pdf": "f1bf7a61..." }
    },
    "error": null,
    "credit_refunded": false
  }
}

How long it takes

About 15 to 20 seconds for BlinkIt, BigBasket and Swiggy, 30 to 50 seconds for Zepto and JioMart, and about 35 seconds for Minutes. Without sync (or if the wait runs out) you get status: queued or running with a job_id; poll Screenshot Status every poll_after_seconds. With sync, allow a 100-second HTTP timeout.

api_price is what the platform's app API reported when the job started; price_match says whether the page showed that price. Files are kept 30 days; links last 1 hour, so call Screenshot Status again for fresh ones.

Amazon, Flipkart, Myntra and Nykaa

These deliver by pincode, so pincode alone is enough. Pass the item ID you get from /v1/search (an ASIN, a Flipkart pid, a Myntra style id or a Nykaa product id) or the product link as url. The page's own price is read from the page and returned as page_price, with result.product_name and result.available as the page states them. Desktop site only; about 10 to 25 seconds. Meesho can't be captured. DMart, Croma, Reliance Digital, OnePlus and Vivo are also desktop only: Croma, Reliance Digital and Vivo set the pincode, DMart the store for your location, and OnePlus prices are the same everywhere.

GET /v1/screenshot?platform=Amazon&item_id=B071Z8M4KX&pincode=560034&sync=true
GET/v1/screenshot/status

Screenshot Status

A screenshot job's state and, once it is done, its download links. Only the API key that started the job can read it.

Free

Checking a job costs no credits.

Query Parameters

ParameterTypeRequiredDescription
job_idstringRequiredjob_id returned by /v1/screenshot
GET /v1/screenshot/status?job_id=777c7cd464e34fcb802460504ed3a19d

{
  "status": "success",
  "request_id": "e5f6a7b8-...",
  "credits_remaining": 950,
  "data": {
    "job_id": "777c7cd464e34fcb802460504ed3a19d",
    "status": "running",
    "poll_after_seconds": 10,
    "result": null,
    "error": null,
    "credit_refunded": false,
    "...": "same fields as /v1/screenshot"
  }
}

status is queued, running, done or failed. A failed job carries an error and credit_refunded: true. An unknown job, or one started with a different key, returns 404 job_not_found.

GET/v1/credits

Check Credits

Check your available credits, usage summary, and per-recharge breakdown. This endpoint is free — it does not consume any credits.

Free Endpoint

No credits are deducted for calling this endpoint. Use it to monitor your balance programmatically.

GET /v1/credits

{
  "summary": {
    "total_available": 2450,
    "total_used": 50,
    "active_packs": 2
  },
  "active": [
    {
      "id": "a1b2c3d4-...",
      "pack_name": "starter",
      "credits_total": 2500,
      "credits_remaining": 2450,
      "credits_used": 50,
      "amount_paid": 500.0,
      "is_trial": false,
      "status": "active",
      "purchased_at": "2026-03-16T05:14:03Z",
      "expires_at": "2026-04-15T05:14:03Z"
    }
  ],
  "inactive": [
    {
      "id": "e5f6g7h8-...",
      "pack_name": "trial",
      "credits_total": 50,
      "credits_remaining": 0,
      "credits_used": 50,
      "amount_paid": 0.0,
      "is_trial": true,
      "status": "exhausted",
      "purchased_at": "2026-03-10T10:00:00Z",
      "expires_at": "2026-04-09T10:00:00Z"
    }
  ]
}

Response Fields

ParameterTypeRequiredDescription
summary.total_availableintegerRequiredTotal credits available across all active packs
summary.total_usedintegerRequiredTotal credits consumed across all packs
summary.active_packsintegerRequiredNumber of active (non-expired, non-exhausted) packs
activearrayRequiredList of active credit packs with remaining credits
inactivearrayRequiredList of exhausted or expired credit packs
GET/v1/supported-platforms

Supported Platforms

Returns platform names by endpoint (14 for search, 18 for item, 9 for ETA) and, under countries, the platforms and price currency for each country. This endpoint is free — no authentication or credits required.

Free & Public

No API key or credits needed. Use this to dynamically populate platform dropdowns in your app.

GET /v1/supported-platforms

{
  "platforms": [
    "BlinkIt",
    "Zepto",
    "Swiggy",
    "BigBasket",
    "DMart",
    "JioMart",
    "Minutes",
    "Amazon",
    "Nykaa",
    "Myntra",
    "Flipkart",
    "Meesho",
    "NoonMinutes",
    "TalabatMart",
    "RelianceDigital",
    "Croma",
    "Vivo",
    "OnePlus"
  ],
  "count": 18,
  "search": [
    "BlinkIt",
    "Zepto",
    "Swiggy",
    "BigBasket",
    "DMart",
    "JioMart",
    "Minutes",
    "Amazon",
    "Nykaa",
    "Myntra",
    "Flipkart",
    "Meesho",
    "NoonMinutes",
    "TalabatMart"
  ],
  "item": [
    "BlinkIt",
    "Zepto",
    "Swiggy",
    "BigBasket",
    "DMart",
    "JioMart",
    "Minutes",
    "Amazon",
    "Nykaa",
    "Myntra",
    "Flipkart",
    "Meesho",
    "NoonMinutes",
    "TalabatMart",
    "RelianceDigital",
    "Croma",
    "Vivo",
    "OnePlus"
  ],
  "eta": [
    "BlinkIt",
    "Zepto",
    "Swiggy",
    "BigBasket",
    "DMart",
    "JioMart",
    "Minutes",
    "NoonMinutes",
    "TalabatMart"
  ],
  "countries": {
    "IN": {
      "platforms": [
        "BlinkIt",
        "Zepto",
        "Swiggy",
        "BigBasket",
        "DMart",
        "JioMart",
        "Minutes",
        "Amazon",
        "Nykaa",
        "Myntra",
        "Flipkart",
        "Meesho",
        "RelianceDigital",
        "Croma",
        "Vivo",
        "OnePlus"
      ],
      "currency": "INR"
    },
    "AE": {
      "platforms": [
        "NoonMinutes",
        "TalabatMart"
      ],
      "currency": "AED"
    }
  }
}

Catalogue & datasets

The QuickCommerce API returns live search and item results for 18 platforms, plus delivery ETA for 9 quick commerce platforms at a latitude/longitude. For national product catalogues, brand rollups, dark store maps, and bulk exports, start with API vs datasets, then browse and license on QuickCommerceData.

Error Codes

CodeMeaning
401Invalid or missing API key
402No credits remaining (purchase more)
404Item not found or platform unavailable at location, or screenshot job not found
422Invalid query parameters or platform name
429Rate limit exceeded (100 req/min)
500Internal server error
502Platform upstream error
504Platform request timed out

A call that returns an error costs no credits. On /v1/items, IDs that aren't found are free too.

Response Headers

Every API response includes these headers:

HeaderDescription
X-Request-IdUnique request identifier (UUID)
X-Credits-RemainingYour total remaining credits
X-Credits-ExpiryEarliest credit expiry date (ISO 8601)