Access required
Contact an administrator if you need access to this area.
CATALOG & MAPPING COVERAGE
Your catalog, across six platforms
Track approved mappings and FirstClub reviews in one place.
Platform coverage
Mapped = approved mapping Β· FC verified = reviewed by FirstClub. Coverage does not indicate live API availability.
Category coverage
Distinct catalog products. Each platform shows mapped / FC verified counts.
| Super-category | Category | Total | Blinkit | Swiggy | Now | Zepto | BigBasket | Minutes | Details |
|---|
| product_id | product_name | brand | uom | mrp | super_category | category | sub_category | images |
|---|
| product_id | platform | platform_id | platform_xid | fc_verified | fc_verifiedby | fc_verifiedat | View |
|---|
fc_verified.
verifiedby / verifiedat columns β the
fc_verified flag is left untouched.
| Club house | Blinkit ETA | Blinkit open | Blinkit store | Swiggy ETA | Swiggy open | Swiggy store |
|---|
Rows from public.firstclub_clubhouses (ordered by id).
| id | name | location_id | clubhouse_id | latitude | longitude | created_at |
|---|
Crons public.fc_crawl_run
Paginated from the database (newest first). Tap a cron_id for run metadata and price
observations (same columns as export cron.csv).
| cron_id | Scheduled (IST) | Started (IST) | Duration | Status | Locations | Manifest summary |
|---|
Daily charges (IST)
ETA stores = COUNT(*) from public.firstclub_clubhouses (shared across Blinkit, Swiggy, and Zepto).
| Date (IST) | Cron runs | Credit rows | Crawl βΉ | Mapping rows | Mapping βΉ | ETA stores | Blinkit ETA βΉ | Swiggy ETA βΉ | Zepto ETA βΉ | Total βΉ |
|---|
Monthly charges (IST)
Calendar months from May 2026 through today. Totals include every IST day in each month (not limited by the daily window above).
| Month (IST) | IST days | Cron runs | Credit rows | Crawl βΉ | Mapping rows | Mapping βΉ | Blinkit ETA βΉ | Swiggy ETA βΉ | Zepto ETA βΉ | Total βΉ |
|---|
Pricing (aligned)
Recent crons β credit rows per run
Crawl βΉ is charged only when status is completed; running/failed runs show βΉ0.
| cron_id | Started (IST) | Status | Credit rows | Crawl βΉ | Manifest summary |
|---|
Create user
Users
| Admin | Active | Tabs | Last email |
|---|
FirstClub API Key
Use this API Key to authenticate programmatic requests to QuickCompare detailed ETA and raincheck endpoints without browser session cookies. Pass the key via the api-token GET parameter.
Loadingβ¦
Exposed API Endpoints
| Platform | API Endpoint | Example URL (Click to test) |
|---|
API Documentation
Authentication
All public API calls must include your API key via the api-token query parameter. No request body or special headers are needed.
GET https://api.quickcompare.in/qc?type=eta-detailed&platform=BlinkIt&api-token=YOUR_API_KEY
?type=eta-detailed
Returns the latest ETA snapshot for every FirstClub clubhouse location, joined on exact latitude/longitude. One row per (clubhouse, platform) pair.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | β Yes | Must be eta-detailed |
api-token | string | β Yes | Your API key |
platform | string | β No | BlinkIt or Swiggy. Omit to return all platforms. |
Response Shape
{
"platform": "BlinkIt", // requested platform (or "ALL")
"rows": [
{
"name": "HSR Layout", // clubhouse name
"location_id": "loc_001", // internal location identifier
"platform": "BlinkIt",
"lat": 12.9224, // latitude
"lon": 77.6779, // longitude
"city": "Bengaluru",
"pincode": "560102",
"eta": 10, // raw ETA value from platform
"eta_minutes": 10, // numeric minutes (parsed)
"open": true, // store open status (boolean)
"store_id": "42", // primary store / dark store ID
"store_ids": null, // additional store IDs (array or null)
"last_checked": "2026-05-14T12:00:00Z", // ISO-8601 UTC timestamp
// BlinkIt-only fields (null for Swiggy):
"surge_applicable": false,
"surge_amount": 0,
"status_code": "AVAILABLE",
"store_status": "OPEN",
"distance_meters": 1200,
"operational_start": 600, // minutes from midnight
"operational_end": 1380,
// Swiggy-only fields (null for BlinkIt):
"serviceability_status": null,
"serviceability_type": null,
"stress_message": null
}
// β¦ one object per clubhouse location
]
}
?type=eta-detailed-history
Returns a time-series history of ETA readings for a single (platform, lat, lon) coordinate, ordered oldest-first. Ideal for plotting trends over time.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | β Yes | Must be eta-detailed-history |
api-token | string | β Yes | Your API key |
platform | string | β Yes | BlinkIt or Swiggy |
lat | number | β Yes | Latitude of the clubhouse (e.g. 12.92240514) |
lon | number | β Yes | Longitude of the clubhouse (e.g. 77.67790149) |
days | integer | β No | Lookback window in days. Allowed: 1, 3, 7 (default), 15, 30. |
Response Shape
{
"platform": "BlinkIt",
"lat": 12.92240514,
"lon": 77.67790149,
"days": 7, // window used
"limit": 5000, // max rows returned
"points": [
{
"created_at": "2026-05-08T04:00:00Z", // ISO-8601 UTC timestamp
"open": true,
"eta_minutes": 9, // numeric minutes (null if unparseable)
// BlinkIt-only (null for Swiggy):
"surge_applicable": false,
"surge_amount": 0,
"status_code": "AVAILABLE",
"store_status": "OPEN",
// Swiggy-only (null for BlinkIt):
"serviceability_status": null,
"serviceability_type": null,
"stress_message": null
}
// β¦ one object per crawl interval, oldest first
]
}
β οΈ Returns {"error": "platform, lat, lon are required"} (HTTP 400) if any required parameter is missing or lat/lon are not valid numbers.
?type=raincheck
Returns a clubhouse-centric snapshot of rain, surge, open/closed status, and ETA across competitors. Same underlying data as eta-detailed, grouped and normalized per location.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | β Yes | Must be raincheck |
api-token | string | β Yes | Your API key |
platforms | string | β No | Comma-separated list, e.g. BlinkIt,Swiggy,Zepto. Default: BlinkIt,Swiggy,Zepto if omitted. |
platform | string | β No | Alias for platforms (single value or comma-separated). |
storeid | string | β No | FirstClub clubhouse location_id (e.g. LOCID25040900213). Comma-separated for multiple. Aliases: store_id, location_id, loc_id. |
clubhouse_id | string | β No | FirstClub clubhouse_id from public.firstclub_clubhouses. Comma-separated for multiple. Aliases: clubhouse_ids, clubhouseId. Can be combined with storeid (both must match). |
Example calls
GET https://api.quickcompare.in/qc?type=raincheck&api-token=YOUR_API_KEY
GET https://api.quickcompare.in/qc?type=raincheck&platforms=BlinkIt,Swiggy&api-token=YOUR_API_KEY
GET https://api.quickcompare.in/qc?type=raincheck&storeid=LOCID25040900213&api-token=YOUR_API_KEY
GET https://api.quickcompare.in/qc?type=raincheck&clubhouse_id=YOUR_CLUBHOUSE_ID&api-token=YOUR_API_KEY
Response Shape
{
"platforms": ["BlinkIt", "Swiggy", "Zepto"],
"clubhouse_id": "YOUR_CLUBHOUSE_ID",
"clubhouse_ids": ["YOUR_CLUBHOUSE_ID"],
"locations": [
{
"name": "HSR Layout",
"id": "LOCID25080507713",
"clubhouse_id": "YOUR_CLUBHOUSE_ID",
"lat": 12.9224,
"lon": 77.6779,
"competitors": [
{
"name": "BlinkIt",
"id": "42",
"lat": 12.9224,
"lon": 77.6779,
"rain": true,
"surgefee": 10,
"open": true,
"storeStatus": "High Demand",
"lastUpdated": "2026-05-14T17:30:00+05:30",
"etaMinutes": 10
},
{
"name": "Swiggy",
"id": "1387903",
"lat": 12.9224,
"lon": 77.6779,
"rain": false,
"surgefee": null,
"open": true,
"storeStatus": "Normal",
"lastUpdated": "2026-05-14T17:30:00+05:30",
"etaMinutes": 12
}
]
}
]
}
Each location has id (FirstClub location_id, e.g. LOCID25040900213) and clubhouse_id from public.firstclub_clubhouses.
When filtered by storeid or clubhouse_id, the response echoes storeid/storeids or clubhouse_id/clubhouse_ids at the top level.
Unknown filters return {"error": "unknown storeid", ...} or {"error": "unknown clubhouse_id", ...}.
Competitor fields use camelCase: storeStatus, lastUpdated, etaMinutes.
storeStatus is one of Normal, High Demand, or Temp Closed.
lastUpdated is ISO-8601 in IST (Asia/Kolkata, offset +05:30).
rain is derived from BlinkIt statusCode (rain disruption), Swiggy stress/serviceability text, or Zepto raining flag.