Monitor FirstCry Deals and Bestsellers: 2026 India Playbook
Track FirstCry deals, discounts and bestsellers across baby and kids categories with Thirdwatch. Discount-velocity alerts, flash deals, bestseller rankings.

Thirdwatch's FirstCry Scraper turns deal and bestseller monitoring into a structured workflow — 30-minute snapshots during sale windows, discount-velocity detection, bestseller indices weighted by rating_count, MRP drift tracking. Built for India baby-care affiliate marketers, deal-aggregator builders, brand teams and ecommerce founders.
Why monitor FirstCry deals and bestsellers
India's online baby-care economy concentrates around discount events and a relatively short head of bestselling SKUs. According to Brainbees Solutions' 2024 IPO prospectus, FirstCry recorded more than 9 million active customers across roughly 75 million app downloads — and sale events like Birthday Bash and end-of-season clearances are the single biggest demand spikes the platform sees in a year. For deal-aggregators, affiliate marketers, brand teams and consultants, deal-event monitoring on FirstCry is the canonical workflow during sale windows, and bestseller monitoring is the canonical year-round baseline.
The job-to-be-done is structured. A deal-aggregator surfaces 30 percent-plus off baby-care SKUs to its email list daily. An affiliate site refreshes a "Top 50 FirstCry diapers this week" page every Monday. A brand team watches its own bestseller rankings vs the next two competitors. A founder pricing into the market wants to see which SKUs have rating_count growing fastest. All of these reduce to category sweeps plus discount filtering plus rating-count weighting.
How does this compare to alternatives?
Three options for deal and bestseller data on FirstCry:
| Approach | Reliability | Setup time | Maintenance |
|---|---|---|---|
| Manual curation | Low — analyst hours | Continuous | Doesn't scale |
| Generic India deal-aggregator sites | Crowdsourced, low frequency | Days | Coverage gaps on baby categories |
| Thirdwatch FirstCry Scraper | Production-tested with production-grade anti-bot tooling | 5 minutes | Thirdwatch tracks FirstCry changes |
Generic aggregators undercover FirstCry's baby-and-kids specialization. The FirstCry Scraper actor page gives you the raw deal-and-popularity data programmatically at transparent per-result pricing.
How to monitor deals and bestsellers in 4 steps
Step 1: How do I authenticate against Apify?
Sign in at apify.com, open Settings → Integrations, and copy your personal API token.
export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"Step 2: How do I pull a deal-discovery sweep?
Sweep the deal-heavy categories with sortBy: discount to put the deepest discounts first, and tighten minPrice so you skip cheap accessory SKUs that distort discount-percent distributions.
import os, requests, datetime, json, pathlib
ACTOR = "thirdwatch~firstcry-scraper"
TOKEN = os.environ["APIFY_TOKEN"]
DEAL_SWEEP = [
{"queries": ["diapers"], "category": "diapers"},
{"queries": ["baby lotion"], "category": "baby-skincare"},
{"queries": ["feeding bottle"], "category": "baby-feeding"},
{"queries": ["stroller"], "category": "baby-gear-strollers"},
{"queries": ["kids tshirts"], "category": "kids-clothing"},
{"queries": ["school bag"], "category": "school-supplies"},
]
all_rows = []
for entry in DEAL_SWEEP:
r = requests.post(
f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
params={"token": TOKEN},
json={**entry,
"sortBy": "discount",
"minPrice": 199,
"maxResults": 200},
timeout=600,
)
for row in r.json():
row["_category"] = entry["category"]
all_rows.append(row)
ts = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M")
pathlib.Path(f"snapshots/firstcry-deals-{ts}.json").write_text(json.dumps(all_rows))
print(f"{ts}: {len(all_rows)} rows across {len(DEAL_SWEEP)} categories")Six categories × 200 = up to 1,200 rows per snapshot — well within budget even at 30-minute cadence.
Step 3: How do I compute discount and filter to deal-worthy SKUs?
Parse MRP and price, compute discount-percent, filter to 25 percent-plus, and rank by discount.
import pandas as pd, re
def parse_inr(s):
digits = re.sub(r"[^\d]", "", str(s or ""))
return int(digits) if digits else None
df = pd.DataFrame(all_rows)
df["price"] = df.price.apply(parse_inr)
df["mrp"] = df.original_price.apply(parse_inr)
df["discount_pct"] = ((df.mrp - df.price) / df.mrp * 100).round(1)
deep = df[
df.discount_pct.notna()
& (df.discount_pct >= 25)
& df.price.notna()
].sort_values("discount_pct", ascending=False)
print(f"{len(deep)} SKUs at 25%+ off")
print(deep[["product_name", "brand", "_category", "price", "mrp", "discount_pct"]].head(30))The 25 percent floor reliably surfaces deal-worthy content and filters out everyday pricing.
Step 4: How do I rank bestsellers and detect flash deals?
Bestsellers fall out naturally if you sort the same category sweep by rating_count. Flash deals fall out if you compare consecutive snapshots and look for a sharp jump in discount-percent.
import glob
# Bestsellers: top by rating_count per category
bestsellers = (
df.dropna(subset=["rating_count"])
.sort_values(["_category", "rating_count"], ascending=[True, False])
.groupby("_category").head(20)
)
bestsellers[["_category", "product_name", "brand", "price", "rating_count"]].to_csv(
"firstcry_bestsellers.csv", index=False)
# Flash deals: discount-pct spike between consecutive snapshots
frames = []
for f in sorted(glob.glob("snapshots/firstcry-deals-*.json")):
snap_ts = pd.to_datetime(pathlib.Path(f).stem.replace("firstcry-deals-", ""),
format="%Y%m%d-%H%M")
for row in json.loads(pathlib.Path(f).read_text()):
row["snapshot_ts"] = snap_ts
frames.append(row)
ts_df = pd.DataFrame(frames)
ts_df["price"] = ts_df.price.apply(parse_inr)
ts_df["mrp"] = ts_df.original_price.apply(parse_inr)
ts_df["discount_pct"] = (ts_df.mrp - ts_df.price) / ts_df.mrp * 100
ts_df = ts_df.sort_values(["url", "snapshot_ts"])
ts_df["prev_disc"] = ts_df.groupby("url").discount_pct.shift(1)
ts_df["disc_delta"] = ts_df.discount_pct - ts_df.prev_disc
flash = ts_df[(ts_df.disc_delta >= 15) & (ts_df.discount_pct >= 35)] \
.drop_duplicates(subset=["url"], keep="last")
print(f"{len(flash)} flash-deal alerts")A 15-percentage-point jump in discount that lands above 35 percent off is a strong flash-deal signal during FirstCry sale windows. Combine the flash-deal frame with the bestsellers frame to surface flash deals on already-popular SKUs — those are the highest-conversion alerts for affiliate sites and brand teams, because the SKU has demonstrated demand and the discount opens up margin headroom for a buy. SKUs that appear in both frames are also worth flagging to category managers, because they often signal that a competitor is clearing inventory before a relaunch or pack-size change.
Sample output
A single FirstCry deal record looks like this. Five rows weigh about 4 KB.
[
{
"product_name": "MamyPoko Pants Extra Absorb Diaper Large - 64 Pieces",
"brand": "MamyPoko",
"price": "₹899",
"original_price": "₹1,599",
"discount_percent": 43,
"rating_count": 8924,
"image_url": "https://cdn.fcglcdn.com/.../mamypoko-l-64.jpg",
"url": "https://www.firstcry.com/mamypoko/.../product-detail"
},
{
"product_name": "LuvLap Galaxy Stroller with 5 Point Safety Harness - Grey",
"brand": "LuvLap",
"price": "₹3,899",
"original_price": "₹7,995",
"discount_percent": 51,
"rating_count": 1142,
"url": "https://www.firstcry.com/luvlap/.../product-detail"
}
]url is the canonical natural key for dedup. original_price and price together drive deal classification. rating_count is the popularity proxy — a 50 percent-off SKU with 1,000-plus ratings is meaningful demand; a 50 percent-off SKU with rating_count of 4 is most likely inventory clearance.
Common pitfalls
Three things go wrong in production FirstCry deal-and-bestseller pipelines. MRP inflation — some long-tail brands inflate MRP to display a larger headline discount; cross-check against your historical MRP series before treating a 60 percent-off badge as genuine. Clearance vs demand — a deep discount on a SKU with single-digit rating_count is usually clearance, not a real deal; weight your aggregator surface by both discount and rating_count. Sort-rank bias — sortBy: discount produces a different population than sortBy: popularity for the same query; for bestseller research stay on popularity, for deal hunting stay on discount, and only mix the two at the analysis layer.
Thirdwatch's actor uses production-grade anti-bot tooling under the hood — your queries land like a normal Indian shopper's session and there's no per-request fiddling to do. Pair FirstCry with our Flipkart Scraper for cross-marketplace baby-care deal coverage, our Amazon Scraper for Amazon India parity, and our Myntra Scraper for kids fashion adjacency. A fourth subtle issue: festive sale events run nationally but stock and price availability sometimes vary by delivery PIN code; for affiliate use cases serving non-metro audiences, label deals as "metro pricing" when delivery checks reveal regional variance, or run separate sweeps once your watchlist is large enough to justify the cost.
Related use cases
- Scrape FirstCry products for India baby-care research
- Track FirstCry pricing on baby and kids products
- Build an India baby-care market database with FirstCry
- Monitor Flipkart deals and discounts
- The complete guide to scraping ecommerce
- All Thirdwatch use-case guides
Frequently asked questions
Why monitor FirstCry deals and bestsellers specifically?
FirstCry drives a large share of online baby-care discovery in India. Bestsellers there reliably predict demand on Flipkart and Amazon India for the same SKUs. For deal-aggregator sites, affiliate marketers and brand teams, FirstCry bestsellers and deep discounts are the canonical India baby-care signal worth tracking.
What discount threshold is meaningful on FirstCry?
Under 15 percent off is everyday pricing on FirstCry — most SKUs sit there. 25-40 percent off is sale-tier and worth surfacing to a deal feed. 50 percent and above is Birthday Bash or end-of-season clearance — high-priority and short-lived. Use 25 percent as the everyday filter for an affiliate or aggregator surface.
How fresh do deal snapshots need to be?
During sale windows (Birthday Bash, festive, end-of-season), 30-60 minute cadence is justified — deep discounts move with inventory. Outside sale windows, daily is sufficient. Most teams run daily year-round plus a 30-minute schedule during announced events.
Can I identify FirstCry bestsellers without a sales-rank field?
Yes. FirstCry doesn't publish a sales rank but rating_count is a strong popularity proxy on steady-state SKUs. Sort the per-category dataset by rating_count, and treat the top decile as the working bestseller set. For sharper signal, weight by rating_count growth between snapshots — fast-growing rating_count tracks real recent demand.
How do I dedupe deals across snapshots?
The product url is the canonical key. During sale windows the same SKU often appears in multiple sale-landing categories; dedupe on URL before counting unique deal events. Expect 15-25 percent of raw rows to duplicate across categories during a Birthday Bash sweep.
How does this compare to manual deal-curation or aggregator sites?
Manual curation tops out at a few dozen surfaced deals per day. Generic India deal-aggregator sites like MySmartPrice refresh daily and depend on user submissions. The actor gives you raw 30-minute-frequency FirstCry data — for affiliate sites, brand teams and deal platforms operating at scale, programmatic access enables better deal velocity than manual or crowdsourced workflows.
Run the FirstCry Scraper on Apify Store — pay per product, free to try, no credit card to test.
Frequently asked questions
Why monitor FirstCry deals and bestsellers specifically?
FirstCry drives a large share of online baby-care discovery in India. Bestsellers there reliably predict demand on Flipkart and Amazon India for the same SKUs. For deal-aggregator sites, affiliate marketers and brand teams, FirstCry bestsellers and deep discounts are the canonical India baby-care signal worth tracking.
What discount threshold is meaningful on FirstCry?
Under 15 percent off is everyday pricing on FirstCry — most SKUs sit there. 25-40 percent off is sale-tier and worth surfacing to a deal feed. 50 percent and above is Birthday Bash or end-of-season clearance — high-priority and short-lived. Use 25 percent as the everyday filter for an affiliate or aggregator surface.
How fresh do deal snapshots need to be?
During sale windows (Birthday Bash, festive, end-of-season), 30-60 minute cadence is justified — deep discounts move with inventory. Outside sale windows, daily is sufficient. Most teams run daily year-round plus a 30-minute schedule during announced events.
Can I identify FirstCry bestsellers without a sales-rank field?
Yes. FirstCry doesn't publish a sales rank but rating_count is a strong popularity proxy on steady-state SKUs. Sort the per-category dataset by rating_count, and treat the top decile as the working bestseller set. For sharper signal, weight by rating_count growth between snapshots — fast-growing rating_count tracks real recent demand.
How do I dedupe deals across snapshots?
The product URL is the canonical key. During sale windows the same SKU often appears in multiple sale-landing categories; dedupe on URL before counting unique deal events. Expect 15-25 percent of raw rows to duplicate across categories during a Birthday Bash sweep.
How does this compare to manual deal-curation or aggregator sites?
Manual curation tops out at a few dozen surfaced deals per day. Generic India deal-aggregator sites refresh daily and depend on user submissions. The actor gives you raw 30-minute-frequency FirstCry data — for affiliate sites, brand teams and deal platforms operating at scale, programmatic access enables better deal velocity than manual or crowdsourced workflows.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.