
Foodpanda Scraper
hipersoft/foodpanda-scraper
Scrape Foodpanda restaurants and their menus in bulk by city or coordinates: name, cuisines, rating, reviews, address, coordinates, minimum order, delivery fee, open status and menu item prices. Sweep a whole city with an optional geo-grid.
Total users
2Monthly users
0Total runs
60Per vendor scraped
$0.003Last rebuilt
Oct 26, 2026Overview
Scrape Foodpanda restaurants and their menus in bulk as clean, structured JSON, CSV, Excel or XML. Give it a city (Singapore, Bangkok, Kuala Lumpur, Manila, Taipei, Hong Kong and more) or exact coordinates, and it returns one tidy row per restaurant — name, cuisines, rating, reviews, address, coordinates, minimum order, delivery fee and open status — plus, on request, every menu item with its price. Sweep a whole city with an optional geo-grid. Perfect for food-market research, competitor and price monitoring, lead generation and automation.
What does Foodpanda Scraper do?
This actor turns Foodpanda's restaurant listings into a ready-to-use dataset. Point it at a city or a latitude/longitude, and it collects every restaurant delivering to that area with rich, structured details. Turn on Include menu items and it also pulls each restaurant's full menu — categories, dish names, descriptions and prices — as extra rows. Use the built-in geo-grid to sweep many points across a city and de-duplicate the results automatically, so you get broad, clean coverage in a single run.
What data can you get?
Per restaurant:
| Field | Description |
|---|---|
id |
Restaurant identifier. |
code |
Short restaurant code. |
name |
Restaurant name. |
cuisines |
List of cuisine tags (e.g. Indian, Western, Asian). |
rating |
Average customer rating. |
reviewCount |
Number of ratings. |
address |
Street address. |
latitude |
Restaurant latitude. |
longitude |
Restaurant longitude. |
minOrder |
Minimum order amount. |
deliveryFee |
Delivery fee. |
isOpen |
Whether the restaurant is currently accepting delivery. |
url |
Link to the restaurant page. |
Per menu item (when Include menu items is on):
| Field | Description |
|---|---|
vendorId |
Restaurant the item belongs to. |
vendorName |
Restaurant name. |
category |
Menu section (e.g. Prata, Drinks). |
itemName |
Dish name. |
price |
Item price. |
description |
Dish description, when available. |
Use cases
- Food-market research — map the restaurants, cuisines and price points in any city.
- Price & competitor monitoring — track delivery fees, minimum orders and menu prices over time.
- Lead generation — build lists of restaurants with addresses and coordinates for sales outreach.
- Menu & pricing analysis — compare dishes and prices across restaurants and neighbourhoods.
- Dashboards & maps — power location, coverage and demand dashboards from clean coordinates.
- Automation — feed fresh restaurant and menu data into your own pipelines on a schedule.
How to use it
- Add Foodpanda Scraper to your Apify account and open its input.
- Enter a City (e.g. Singapore), or set Latitude + Longitude for an exact point.
- Optionally turn on Include menu items to also collect every dish and price.
- Optionally set Grid radius (km) and Grid step (km) to sweep a whole city.
- Set Max restaurants to cap the output if you like, then click Run.
- Export the results as JSON, CSV, Excel or XML.
Input
{
"city": "Singapore",
"includeMenu": true,
"maxItems": 50
}
| Field | Description |
|---|---|
city |
City to scrape; mapped to a centre coordinate and country. |
latitude / longitude |
Exact point to search around (overrides city). |
country |
Two-letter country code (auto-filled from a supported city). |
includeMenu |
Also collect each restaurant's menu items and prices. |
gridRadiusKm |
Half-width of a square geo-grid, in km, to cover a whole city. 0 = single point. |
gridStep |
Spacing in km between grid points. |
maxItems |
Cap the number of restaurants. 0 = no limit. |
What you get
One flat JSON row per restaurant, plus one row per menu item when menus are included — ready to export to CSV, Excel, JSON or XML.
{
"id": "49494",
"code": "dxpr",
"name": "NKS Restaurant (179 Macpherson Rd)",
"cuisines": ["Indian", "Western", "Asian"],
"rating": 3.8,
"reviewCount": 18,
"address": "179 Macpherson Road, Singapore 348539",
"latitude": 1.330233,
"longitude": 103.875209,
"minOrder": 16,
"deliveryFee": 4.3,
"isOpen": true,
"url": "https://foodpanda.sg/restaurant/dxpr/nks-restaurant"
}
{
"vendorId": "49494",
"vendorName": "NKS Restaurant (179 Macpherson Rd)",
"category": "Prata",
"itemName": "Cheese Prata",
"price": 2.7,
"description": "Crispy on the outside, soft on the inside"
}
FAQ
Which cities and countries are supported? Any location Foodpanda serves. Use a supported city name for one-click setup — Singapore, Bangkok, Chiang Mai, Phuket, Kuala Lumpur, Penang, Johor Bahru, Manila, Quezon City, Cebu, Taipei, Kaohsiung, Taichung, Hong Kong, Phnom Penh, Vientiane, Yangon, Dhaka, Karachi, Lahore — or set your own Latitude and Longitude for anywhere else.
How do I cover a whole city? Set Grid radius (km) to sweep a square of points around the centre, and Grid step (km) to control how dense the sweep is. Results are de-duplicated across all points automatically.
How do I get menu prices? Turn on Include menu items. Each restaurant then adds extra rows, one per dish, with its category, name, price and description.
How many restaurants can I get?
As many as deliver to the area. Use Max restaurants to cap the run, or leave it at 0 for everything found.
What export formats are available? JSON, CSV, Excel and XML, plus programmatic access through the Apify API.
Can I use this with n8n? Yes. Run it from the Apify n8n community node or trigger it over HTTP, then pass the dataset items straight into your n8n workflow to enrich records, monitor prices or drive downstream steps.
Can I connect this to my other tools? It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
How fresh is the data? Every run collects live listings and menus at run time. Re-run on a schedule to keep your copy current.
Notes
Original clean-room implementation. Collects only publicly available restaurant and menu information; you are responsible for compliant use. All trademarks, including Foodpanda, belong to their respective owners and this actor is not affiliated with or endorsed by them.
Input
| Field | Type | Description |
|---|---|---|
cityCity | string | A city to scrape. The city is mapped to a default centre coordinate and country. Supported: Singapore, Bangkok, Chiang Mai, Phuket, Kuala Lumpur, Penang, Johor Bahru, Manila, Quezon City, Cebu, Taipei, Kaohsiung, Taichung, Hong Kong, Phnom Penh, Vientiane, Yan |
latitudeLatitude | string | Latitude of the point to search around, e.g. "1.3521". Use together with Longitude to target an exact location. Overrides City when both are set. |
longitudeLongitude | string | Longitude of the point to search around, e.g. "103.8198". Use together with Latitude to target an exact location. Overrides City when both are set. |
countryCountry code | string | Two-letter Foodpanda country code for the location: sg (Singapore), th (Thailand), my (Malaysia), ph (Philippines), tw (Taiwan), hk (Hong Kong), kh (Cambodia), la (Laos), mm (Myanmar), bd (Bangladesh), pk (Pakistan). Auto-filled from City when a supported city |
includeMenuInclude menu items | boolean | When enabled, also fetch each restaurant's full menu and emit one extra row per menu item (category, item name, price and description). This adds one request per restaurant, so it is slower. Leave off to collect restaurants only. Default: false |
gridRadiusKmGrid radius (km) | integer | Optional. To cover a whole city, sweep a square grid of points instead of a single point. This is the half-width of that square in kilometres around the centre. 0 = single point (fastest). Larger radius = more coverage but more requests. Results are de-duplica Default: 0 |
gridStepGrid step (km) | integer | Optional. Spacing in kilometres between grid points when Grid radius is set. Smaller step = denser coverage and more requests. Defaults to the grid radius (a 3x3 sweep) when left at 0. Default: 0 |
maxItemsMax restaurants | integer | Maximum number of restaurants to collect. 0 = no limit (collect everything found). Menu item rows do not count towards this limit. Default: 0 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~foodpanda-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"city": "Singapore",
"latitude": "1.3521",
"longitude": "103.8198",
"country": "sg"
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/foodpanda-scraper").call(run_input={
"city": "Singapore",
"latitude": "1.3521",
"longitude": "103.8198",
"country": "sg"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/foodpanda-scraper').call({
"city": "Singapore",
"latitude": "1.3521",
"longitude": "103.8198",
"country": "sg"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Vendor Scraped Charged per vendor scraped. | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.