SYSTEM all green source grabfood.com queue 12,843 locations p99 latency 184ms dataflirt.com · scraper/grabfood-com
RUN · 84 active pipelines · grabfood.com live

GrabFood data,
at warehouse scale.

We extract restaurant listings, menu hierarchies, dynamic delivery fees, surge pricing, and promotional data from GrabFood. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Restaurants tracked
342K
Menu items
14.2M
Price updates
2.1M /day
Active pipelines
84
Uptime
99.94%
Data Dictionary

Every field we extract from grabfood.com

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Restaurant Listings objects from grabfood.com. All fields typed and schema-versioned.

restaurant_idnamechain_namelatitudelongitudeaddressratingreview_countcuisine_tagsdelivery_fee_basemin_order_valuepromo_tagsis_opendistance_kmestimated_delivery_time
restaurant_listings
● 200 OK
"restaurant_id": "4-CZE3N6A1J7X",
"name": "KFC - Bugis Junction",
"rating": 4.6,
"review_count": 1204,
"cuisine_tags": "['Fast Food', 'Western', 'Halal']",
"delivery_fee_base": 3.5,
"is_open": true,
"estimated_delivery_time": 25
# restaurant_idnamechain_namelatitudelongitudeaddress
1
2
3

Complete list of extractable fields for Menu Items objects from grabfood.com. All fields typed and schema-versioned.

item_idrestaurant_idnamedescriptioncategorybase_pricediscounted_pricecurrencyimage_urlis_availabledietary_tagspopular_badge
menu_items
● 200 OK
"item_id": "ITM-99214A",
"restaurant_id": "4-CZE3N6A1J7X",
"name": "Zinger Burger Meal",
"base_price": 8.95,
"currency": "SGD",
"category": "Signature Meals",
"is_available": true,
"popular_badge": true
# item_idrestaurant_idnamedescriptioncategorybase_price
1
2
3

Complete list of extractable fields for Modifiers & Options objects from grabfood.com. All fields typed and schema-versioned.

modifier_group_iditem_idgroup_nameoption_nameadditional_priceis_requiredmin_selectionsmax_selectionsis_availablecurrency
modifiers_& options
● 200 OK
"group_name": "Choose your drink",
"option_name": "Iced Milo (Medium)",
"additional_price": 1.2,
"is_required": true,
"min_selections": 1,
"max_selections": 1,
"is_available": true,
"currency": "SGD"
# modifier_group_iditem_idgroup_nameoption_nameadditional_priceis_required
1
2
3

Complete list of extractable fields for Delivery & Fees objects from grabfood.com. All fields typed and schema-versioned.

restaurant_idscrape_coordinatestimestampbase_delivery_feesurge_feesmall_order_feeplatform_feeestimated_time_minsdistance_kmcurrency
delivery_& fees
● 200 OK
"restaurant_id": "4-CZE3N6A1J7X",
"scrape_coordinates": "1.2986, 103.8519",
"base_delivery_fee": 3.5,
"surge_fee": 2.0,
"platform_fee": 0.3,
"estimated_time_mins": 35,
"currency": "SGD",
"timestamp": "2026-05-12T11:45:00Z"
# restaurant_idscrape_coordinatestimestampbase_delivery_feesurge_feesmall_order_fee
1
2
3

Complete list of extractable fields for Promotions & Offers objects from grabfood.com. All fields typed and schema-versioned.

promo_idrestaurant_idtitledescriptiondiscount_typediscount_valuemin_order_valuemax_discountvalid_untilterms_conditions
promotions_& offers
● 200 OK
"promo_id": "PRM-50OFF",
"title": "50% off selected items",
"discount_type": "PERCENTAGE",
"discount_value": 50,
"min_order_value": 15.0,
"max_discount": 8.0,
"valid_until": "2026-05-31T23:59:59Z"
# promo_idrestaurant_idtitledescriptiondiscount_typediscount_value
1
2
3

Capabilities

Extract GrabFood data across Southeast Asia

Our infrastructure manages complex coordinate spoofing, nested modifier trees, and dynamic fee rendering to deliver clean, normalised restaurant catalogues.

Restaurant Metadata Extraction

Capture names, coordinates, ratings, review counts, and cuisine taxonomies across entire cities.

Deep Menu Scraping

Extract full menu hierarchies including categories, item descriptions, prices, and dietary tags.

Modifier & Add-on Mapping

Normalise deeply nested modifier groups, capturing required selections, max limits, and upcharge pricing.

Dynamic Fee Tracking

Monitor base delivery fees, surge pricing, platform fees, and estimated delivery times from specific coordinate pairs.

Geo-Spoofed Requests

Inject precise latitude and longitude coordinates to capture accurate hyperlocal availability and delivery radii.

Promotional Offer Capture

Extract active promo codes, discount percentages, minimum order values, and validity periods.

Operating Hours Tracking

Monitor store open/close status, scheduled operating hours, and temporary closures in real time.

Multi-Country SEA Support

Scrape data across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and the Philippines using localised proxy pools.

Continuous Delta Updates

Run hourly or daily pipelines that emit only changed records, reducing downstream storage and processing costs.

// engagement pipeline

From location list to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide target coordinates, city bounds, or specific restaurant URLs. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy / Playwright crawlers, proxy rotation, coordinate spoofing, and API interception for grabfood.com.

Validation & QA
d 4–6

Schema validation, null-rate checks, price-outlier detection, and modifier tree integrity checks before launch.

Delivery
ongoing

JSON / CSV / Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.

Under the hood

How our GrabFood pipeline handles the hard parts

Food delivery platforms rely on complex internal APIs and hyperlocal constraints. Here is how we maintain data integrity at scale.

pipeline-monitor · grabfood.com · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
Coordinate injection
Hyperlocal geo-spoofing via API manipulation

GrabFood content is entirely dependent on the user's exact location. We calculate optimal coordinate grids across target cities and inject precise latitude/longitude pairs into request headers and payloads to simulate users standing in specific hex zones.

Dynamic pricing
Capturing real-time surge and delivery fees

Delivery fees fluctuate based on driver supply, weather, and demand. We track these dynamic variables by maintaining continuous sessions from fixed coordinates, capturing base fees, surge increments, and small order penalties at granular intervals.

Data modelling
Normalising deeply nested modifier trees

Restaurant menus contain complex decision trees (e.g., 'Choose 1 base', 'Choose up to 3 toppings', 'Add drinks'). We flatten these nested JSON structures into queryable relational formats or structured document schemas that map directly to your warehouse.

Anti-bot layer
Localised residential proxy routing

We route requests through ISP-grade residential proxies physically located in the target country (SG, MY, ID, etc.). This prevents regional blocking and ensures we receive accurate local pricing, currency, and availability data.

API interception
Direct undocumented endpoint extraction

Instead of parsing volatile DOM elements, our Playwright instances intercept and decode GrabFood's internal GraphQL and REST API responses, yielding cleaner data, faster execution, and higher schema stability.

Applications

Who uses GrabFood data — and how

Teams across industries use grabfood.com data to build competitive products and smarter operations.

01
Competitive Price Intelligence

Restaurant chains monitor competitor menu pricing, promotional tactics, and bundle strategies across different neighbourhoods.

02
Dark Kitchen Site Selection

Operators map cuisine gaps, delivery fee heatmaps, and restaurant density to identify optimal real estate for cloud kitchens.

03
Delivery Fee Benchmarking

Competing aggregators and logistics firms track surge pricing patterns and base delivery fees to optimise their own pricing algorithms.

04
Promotional Strategy Analysis

FMCG brands and restaurants analyse discount depths, minimum order thresholds, and campaign durations to measure promotional effectiveness.

05
Menu Assortment Optimisation

Food analysts track trending items, category growth, and popular modifiers to advise restaurants on menu engineering.

06
Aggregator Market Share Tracking

Investors and analysts track active restaurant counts, review velocity, and geographic expansion to model platform market share.

Why DataFlirt

"GrabFood dictates the food delivery market in Southeast Asia, but its hyperlocal pricing and nested menus make raw data extraction fundamentally complex."

Extracting data from GrabFood requires precise coordinate spoofing, handling complex internal API responses, and normalising massive modifier trees. DataFlirt manages this infrastructure so your data science teams can focus on market analysis rather than maintaining fragile proxy pools.

Technical Spec

GrabFood scraper — technical capabilities

Everything supported by our grabfood.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

Hyperlocal coordinate injection
Simulate exact lat/lng pairs to capture accurate delivery radii and fees
Supported
Modifier tree flattening
Convert nested JSON options into structured relational tables
Supported
Dynamic fee extraction
Capture base, surge, and platform fees per coordinate pair
Supported
Multi-country SEA routing
Localised IP pools for SG, MY, ID, TH, VN, PH
Supported
API response interception
Extract data directly from underlying network requests
Supported
Change detection (diffs)
Hash-based diff: only emit records with changed fields since last run
Supported
Webhook delivery
HTTP POST per record or batch for real-time pricing alerts
Supported
Past order history
Requires authenticated user session and explicit consent
Partial
Driver tracking telemetry
Live GPS polling of drivers requires active order session
Partial
Infrastructure

Infrastructure powering the GrabFood pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy handles crawl orchestration, deduplication, and retry logic. Playwright handles API interception, coordinate spoofing, and interaction flows.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies across Southeast Asia. Rotation happens per-request to ensure accurate regional data and prevent blocking.

Cloud-Native Orchestration

Pipelines run on AWS Lambda (burst) and ECS (sustained). Airflow handles scheduling, dependency management, and SLA alerting. All state stored in managed Postgres.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested — schema versioned per run
CSV
Flat file with typed columns — Excel/Sheets compatible
XLS
Formatted spreadsheet for business analysts
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery — compatible with any data lake
Webhook
HTTP POST per record for real-time downstream processing
API
REST endpoint to query your extracted datasets
Snowflake
Stage + COPY INTO workflow — incremental or full-replace
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About grabfood.com scraping, legality, and pipeline operations.

Ask us directly →
Is scraping GrabFood legal?

Scraping publicly available information from GrabFood is generally permissible under applicable law. DataFlirt targets only public, non-authenticated restaurant, menu, and pricing data. We do not extract personal user data or circumvent authentication walls.

How do you handle location-based availability?

We use coordinate spoofing. You provide a list of target latitude/longitude pairs or a bounding box, and we calculate a hex grid. Our crawlers inject these coordinates into the request headers to simulate a user at that exact location, capturing accurate local delivery fees and restaurant availability.

Which countries do you support for GrabFood?

We support all major GrabFood markets in Southeast Asia, including Singapore, Malaysia, Indonesia, Thailand, Vietnam, and the Philippines. We route traffic through residential proxies specific to each country to ensure accurate currency and pricing.

How do you structure complex menu modifiers?

Menus often have deeply nested options (e.g., size -> base -> add-ons). We extract these relationships and can deliver them either as nested JSON arrays or as flattened relational tables (CSV/Parquet) with parent-child IDs, depending on your warehouse schema preference.

Can you track dynamic surge pricing?

Yes. By maintaining consistent polling from specific coordinate pairs, we can track base delivery fees versus surge increments over time, providing a time-series dataset of delivery cost fluctuations.

How fresh is the data?

For continuous monitoring of specific high-value restaurants or coordinates, we can configure pipelines to run at hourly intervals. Full city-wide restaurant catalogue refreshes typically run on a daily or weekly cadence.

Can I request a sample dataset?

Absolutely. We provide a sample run targeting specific coordinates or a small list of restaurant URLs during the scoping phase, allowing you to validate the schema and modifier structures before committing.

$ dataflirt scope --new-project --source=grabfood.com ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off restaurant catalogue extraction or a continuous delivery fee monitoring feed across Southeast Asia — we scope, build, and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Services

Data Extraction for Every Industry

View All Services →