FairPrice Scraper - Singapore Grocery Prices & Products avatar

FairPrice Scraper - Singapore Grocery Prices & Products

Pricing

$3.00 / 1,000 product scrapeds

Go to Apify Store
FairPrice Scraper - Singapore Grocery Prices & Products

FairPrice Scraper - Singapore Grocery Prices & Products

Scrape NTUC FairPrice (Singapore) grocery products: price, list price & discount, multi-buy promotions, Nutri-Grade, brand, barcode, country of origin, dietary (Halal), supplier, category, images, ratings & stock. Search by keyword or URL, filter, and monitor price drops. No browser.

Pricing

$3.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

FairPrice Scraper — Singapore Grocery Prices & Products

Scrape NTUC FairPrice (Singapore's #1 grocer) for live grocery prices, promotions and product data — straight from FairPrice's own storefront. Search by keyword or URL, filter by discount / Nutri-Grade / stock, and turn on monitor mode to track price drops day-to-day. No login, no API key, no browser.

Why this FairPrice scraper?

  • Straight from the source. Reads FairPrice's own public storefront API — fast, stable, and complete. No flaky page-scraping, no anti-bot roulette.
  • Rich, analysis-ready records. Every product comes with current price, list price & discount, multi-buy promotions, Nutri-Grade, brand, barcode, country of origin, dietary tags (Halal), supplier/distributor, category, images, ratings and stock.
  • Built for price tracking. Monitor mode remembers products between runs and returns only what's new or changed — with previousPrice and priceDelta — so you can watch price drops without diffing anything yourself.
  • Cheap to run, simple to scale. Keyword search paginates to ~1,000 products per term; pay only per product written.

Use cases

  • Price intelligence & competitor monitoring — track grocery prices and promotions over time for pricing, FMCG and retail-analytics teams.
  • Deal & promotion tracking — surface everything currently discounted or on multi-buy offer.
  • Catalogue & PIM enrichment — pull names, brands, barcodes, images, Nutri-Grade and country of origin for product databases.
  • Sourcing & supplier leads — capture the distributor behind each SKU (FairPrice "seller name") for B2B outreach.
  • Health & dietary research — filter by Nutri-Grade or Halal/dietary attributes across a category.

How to use

  1. Click Try for free.
  2. Add one or more Search terms (e.g. milk, kit kat, olive oil) — or paste FairPrice product / search / category Start URLs.
  3. (Optional) Filter with On promotion only, Minimum discount %, Nutri-Grade, or In stock only.
  4. Set Max products and click Save & Start.
  5. Export results as JSON, CSV, Excel, or pull them via API.

Input

FieldTypeDescription
searchTermsarrayKeywords to search (product names, brands or categories). Each is paginated up to the limits.
startUrlsarrayFairPrice product, search or category URLs. Category/search URLs become a keyword search.
productIdsarraySpecific FairPrice product IDs to fetch directly — ideal for monitoring a fixed basket.
onOfferOnlybooleanKeep only products with a current discount or multi-buy promotion.
minDiscountPercentintegerKeep only products discounted at least this % off the list price.
nutriGradesarrayKeep only products with these Nutri-Grade ratings (A/B/C/D).
inStockOnlybooleanSkip out-of-stock products.
maxItemsintegerMaximum products across all searches (default 100).
maxItemsPerSearchintegerOptional per-term cap so one keyword doesn't use the whole budget.
monitorModebooleanOutput only new / price-changed products (adds previousPrice & priceDelta).
monitorStoreNamestringNamed store used to remember products between runs (one per tracked basket).
proxyConfigurationobjectProxy settings. The default Apify datacenter proxy is fast and reliable here.

Example input

{
"searchTerms": ["milk", "instant noodles", "olive oil"],
"onOfferOnly": true,
"minDiscountPercent": 10,
"maxItems": 500,
"monitorMode": true,
"monitorStoreName": "weekly-basket"
}

Output

Each product is one dataset record. Example (trimmed):

{
"platform": "fairprice.com.sg",
"productId": "1614709",
"barcode": "8850329145980",
"name": "Meiji Low Fat High Protein Milk - Green Tea",
"brand": "Meiji",
"price": 4.95,
"listPrice": 4.95,
"currency": "SGD",
"discountPercent": null,
"isOnOffer": true,
"promotions": ["Any 6 for $21.50"],
"displayUnit": "350ml",
"nutriGrade": "B",
"countryOfOrigin": "Thailand",
"dietaryAttributes": ["Halal"],
"isHalal": true,
"supplier": "CROWN PACIFIC BEVERAGE PTE LTD",
"category": "Flavoured Milk",
"images": ["https://media.nedigital.sg/.../13282299_XL1.jpg"],
"inStock": true,
"rating": 4.41,
"reviewCount": 32,
"productUrl": "https://www.fairprice.com.sg/product/meiji-low-fat-high-protein-milk-green-tea-350ml-13282299"
}

Two ready-made dataset views are included: Products (pricing & key attributes) and Nutrition & sourcing (Nutri-Grade, origin, dietary, supplier).

Note: Nutri-Grade is a Singapore Health Promotion Board label that applies to prepacked beverages only — it is populated for drinks (milk, juice, soft drinks) and is genuinely absent for non-beverages (oils, snacks, household goods). Discount fields appear only when a product is currently on offer.

Monitoring mode & scheduling

Turn on monitorMode to remember the products already returned and emit only the ones that are new or whose price/stock/promotion changed since the last run (with previousPrice and priceDelta). It's the cleanest way to track price drops across a basket or category.

It is fully compatible with Apify Schedules — they do different jobs: the schedule decides when the run fires (e.g. every morning), and monitoring mode decides what is returned (only the deltas). Point each tracked basket at its own monitorStoreName to keep histories separate.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/fairprice-scraper').call({
searchTerms: ['milk', 'eggs', 'rice'],
onOfferOnly: true,
maxItems: 500,
monitorMode: true,
monitorStoreName: 'weekly-basket',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} FairPrice products`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push price changes straight into Sheets, Slack or a database.
  • Slack — get notified when a monitored product drops in price.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "track the price of these 20 grocery items at FairPrice every day and alert me on any drop over 10%" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete Singapore data stack:

Tips

  • Track a fixed basket: list the exact productIds you care about and turn on monitorMode for a clean daily price-change feed.
  • Find deals fast: set onOfferOnly (and optionally minDiscountPercent) to surface only discounted and multi-buy items.
  • Healthier picks: filter nutriGrades to ["A","B"] for beverages, or watch dietaryAttributes/isHalal across a category.
  • Cost control: use maxItemsPerSearch so one broad keyword doesn't consume your whole maxItems budget.
  • Proxies: the default Apify (datacenter) proxy works well and keeps costs low — FairPrice's API has no anti-bot. Switch to Residential only if you ever hit rate limits on very large runs.

FAQ

Is this affiliated with NTUC FairPrice? No. This is an independent tool that collects publicly available product information from FairPrice's website.

Do I need an API key or login? No. The actor uses FairPrice's own public storefront endpoints — no account, key or browser needed.

Why is nutriGrade empty for some products? Singapore's Nutri-Grade applies to prepacked beverages only. Non-drink products (oils, snacks, household, personal care) genuinely have no Nutri-Grade.

Can I get more than 1,000 products for one keyword? FairPrice caps search pagination at ~1,000 results per term. Use more specific keywords, categories, or product IDs to cover more of the catalogue.

Does monitoring mode conflict with Apify schedules? No — schedules decide when a run fires; monitor mode decides what is returned (only new/changed products). They work together.

Need help?

Open an issue on the actor's Issues tab with your input and what you expected — happy to help.