Efood Scraper - Greek Food Delivery Restaurants & Prices avatar

Efood Scraper - Greek Food Delivery Restaurants & Prices

Pricing

Pay per usage

Go to Apify Store
Efood Scraper - Greek Food Delivery Restaurants & Prices

Efood Scraper - Greek Food Delivery Restaurants & Prices

Scrape restaurants, ratings, delivery info, cuisines, and prices from efood.gr — Greece's largest food delivery platform with 20,000+ stores.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Efood Scraper - Restaurants & Delivery Data from Greece's #1 Food Platform

Extract restaurant data, ratings, delivery times, cuisines, pricing, and availability from efood.gr — Greece's dominant food delivery platform (Delivery Hero) with 20,000+ stores across 100+ cities.

What is Efood Scraper?

Efood Scraper collects structured restaurant and store data from efood.gr's public API. It returns detailed information for every restaurant available for delivery at a given location — including ratings, delivery time estimates, minimum order amounts, delivery fees, cuisine types, opening hours, offers, and full address data with coordinates.

Efood (e-food.gr) is Greece's largest food delivery service, owned by Delivery Hero. It dominates the Greek market with over 20,000 partner stores covering restaurants, supermarkets, pharmacies, and retail shops across 100+ cities. No other food delivery platform comes close in Greece.

No login or cookies required. This actor uses efood's public restaurant listing API.

Popular use cases:

  • Market research — Map the Greek food delivery landscape. Analyze restaurant density, cuisine distribution, and pricing by city or neighborhood.
  • Competitive intelligence — Track delivery fees, minimum orders, and ratings across competing restaurants in any Greek city.
  • Location analytics — Identify underserved areas, popular cuisines by neighborhood, and delivery coverage gaps.
  • Price monitoring — Monitor delivery costs, minimum order thresholds, and promotional offers across the platform.
  • Investment research — Analyze the Greek food delivery market for investment due diligence or franchise opportunities.

How to scrape Efood data

Option 1: Search by city name

Set location to any major Greek city. The scraper automatically resolves city names to coordinates.

Supported cities include: Athens, Thessaloniki, Heraklion, Patras, Larissa, Volos, Ioannina, Chania, Kavala, Rhodes, Corfu, Piraeus, Kalamata, Mykonos, Santorini, and 20+ more.

Option 2: Search by exact coordinates

Provide latitude and longitude for precise location control. This is useful for targeting specific neighborhoods or areas not in the built-in city list.

Option 3: Filter by cuisine or keyword

Add a searchQuery to filter by restaurant name or cuisine keyword (e.g., "pizza", "souvlaki", "McDonald's"). Use cuisineFilter for exact cuisine type matching (e.g., "Burgers", "Sushi", "Souvlakia").

Input parameters

FieldTypeDefaultDescription
searchQueryStringFilter restaurants by name, cuisine, or address keyword
locationStringAthensCity name (Athens, Thessaloniki, Heraklion, etc.)
latitudeNumberExact latitude (overrides location)
longitudeNumberExact longitude (overrides location)
cuisineFilterStringExact cuisine type filter (Pizza, Burgers, Sushi, etc.)
onlyOpenBooleanfalseOnly return currently open restaurants
maxResultsInteger100Maximum restaurants to return (up to 50,000)
proxyConfigurationObjectProxy settings (Greek residential recommended)

Tips:

  • The default location is Athens city center. Change it to target other Greek cities.
  • Efood returns ALL restaurants available for delivery at the given coordinates — this can be 1,000-4,000+ in large cities.
  • Use maxResults to limit output. Set it high (e.g., 10,000) for full city dumps.
  • The onlyOpen filter is time-dependent — results change based on when you run the scraper.
  • Cuisine names are in Greek on efood. Common ones: "Souvlakia" (souvlaki), "Pizza", "Burgers", "Sushi", "Ελληνική" (Greek), "Ασιατική" (Asian), "Ιταλική" (Italian).

What data does Efood Scraper extract?

Each restaurant includes:

FieldTypeExample
nameString"McDonald's"
efoodIdNumber1803651
cuisinesArray["Burgers"]
primaryCuisineString"Burgers"
ratingNumber4.7
reviewCountNumber10418
deliveryTimeMinNumber30
minimumOrderNumber0
deliveryCostNumber0
freeDeliveryBooleantrue
isOpenBooleantrue
hasPickupBooleanfalse
hasCashOnDeliveryBooleantrue
hasCreditCardBooleantrue
addressString"Ermou 2, Syntagma 10563"
streetString"Ermou 2"
areaString"Syntagma"
cityString"Athens"
postalCodeString"10563"
latitudeNumber37.9758
longitudeNumber23.7337
phoneString"+302113110700"
logoUrlStringRestaurant logo URL
coverUrlStringRestaurant cover image URL
chainNameString"McDonald's"
verticalString"food"
isNewBooleanfalse
hasOffersBooleantrue
offersArray["1+1 Deal"]
timetableObjectOpening hours by day
distanceNumber1041 (meters from search point)
slugString"/athina/mcdonald-s"
urlStringFull restaurant URL on efood.gr
scrapedAtStringISO timestamp

Example output

[
{
"name": "McDonald's",
"efoodId": 1803651,
"cuisines": ["Burgers"],
"primaryCuisine": "Burgers",
"rating": 4.7,
"reviewCount": 10418,
"deliveryTimeMin": 30,
"minimumOrder": 0,
"deliveryCost": 0,
"freeDelivery": true,
"isOpen": true,
"hasPickup": false,
"hasCashOnDelivery": true,
"hasCreditCard": true,
"address": "Ermou 2, Syntagma 10563",
"street": "Ermou 2",
"area": "Syntagma",
"city": "Athens",
"postalCode": "10563",
"latitude": 37.9758132,
"longitude": 23.7336797,
"phone": "+302113110700",
"chainName": "McDonald's",
"vertical": "food",
"isNew": false,
"hasOffers": true,
"offers": ["1+1 Deal"],
"timetable": {
"monday": "06:00-06:00",
"tuesday": "06:00-06:00",
"wednesday": "06:00-06:00",
"thursday": "06:00-06:00",
"friday": "06:00-06:00",
"saturday": "06:00-06:00",
"sunday": "06:00-06:00"
},
"distance": 1041,
"slug": "/athina/mcdonald-s",
"url": "https://www.e-food.gr/athina/mcdonald-s",
"scrapedAt": "2026-06-07T14:30:00.000Z"
},
{
"name": "Domino's Pizza",
"efoodId": 5707412,
"cuisines": ["Pizza", "Pasta"],
"primaryCuisine": "Pizza",
"rating": 4.6,
"reviewCount": 3842,
"deliveryTimeMin": 35,
"minimumOrder": 5,
"deliveryCost": 1.5,
"freeDelivery": false,
"isOpen": true,
"hasPickup": true,
"hasCashOnDelivery": true,
"hasCreditCard": true,
"address": "Stadiou 28, Athens 10564",
"street": "Stadiou 28",
"area": "Athens Center",
"city": "Athens",
"postalCode": "10564",
"latitude": 37.9795,
"longitude": 23.7312,
"phone": "+302103259000",
"chainName": "Domino's Pizza",
"vertical": "food",
"isNew": false,
"hasOffers": true,
"offers": ["Heineken Deals"],
"distance": 580,
"slug": "/athina/domino-s-pizza",
"url": "https://www.e-food.gr/athina/domino-s-pizza",
"scrapedAt": "2026-06-07T14:30:02.000Z"
}
]

How much does it cost?

Efood Scraper uses direct API calls (no browser needed), making it extremely fast and cheap.

ScenarioRestaurantsEstimated costTime
Single city center100~$0.005~5 sec
Full city (Athens)4,000+~$0.01~10 sec
Multiple cities10,000+~$0.05~1 min
Nationwide scan20,000+~$0.10~3 min

The actor makes a single API call per location, so costs are minimal regardless of result count.

Can I integrate?

Efood Scraper connects to the full Apify integration ecosystem:

  • Apify API — Trigger runs programmatically, stream results in real-time
  • Webhooks — Notify your systems when scraping completes
  • Google Sheets — Auto-export restaurant data for analysis
  • Zapier / Make — Build no-code automations with delivery data
  • Slack alerts — Get notified about new restaurants or rating changes
  • BigQuery / Snowflake — Stream to your data warehouse
  • Scheduled runs — Set up daily monitoring with Apify Schedules
  • Direct download — CSV, JSON, XML, or Excel export

Can I use it as an API?

Use Efood Scraper as a Greek restaurant data API.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/efood-scraper").call(run_input={
"location": "Thessaloniki",
"cuisineFilter": "Souvlakia",
"maxResults": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
rating = item.get("rating", "N/A")
fee = item.get("deliveryCost", 0)
print(f"{item['name']}{rating}/5, delivery: EUR {fee}")

JavaScript

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("studio-amba/efood-scraper").call({
location: "Athens",
searchQuery: "pizza",
maxResults: 200,
});
const { items } = await client
.dataset(run.defaultDatasetId)
.listItems();
items.forEach((item) => {
const open = item.isOpen ? "OPEN" : "CLOSED";
console.log(`${item.name}${item.rating}/5 [${open}] ${item.cuisines.join(", ")}`);
});

FAQ

What cities does efood cover?

Efood operates in 100+ Greek cities. The scraper has built-in coordinates for 30+ major cities including Athens, Thessaloniki, Heraklion, Patras, Larissa, Volos, Ioannina, Chania, Rhodes, Corfu, Mykonos, and Santorini. For other locations, provide exact latitude/longitude coordinates.

Does efood only have restaurants?

No. Efood has expanded beyond food delivery to include supermarkets, pharmacies, pet shops, flower shops, and retail stores. The vertical field indicates the store type ("food", "grocery", etc.) and cuisines may include non-food categories like "Supermarket", "Pet shop", or "Pharmacy".

Why do some restaurants have 0 rating?

New restaurants on efood may not have accumulated enough ratings to display an average. The reviewCount field shows how many ratings exist. Restaurants with rating: null and reviewCount: 0 are typically new additions to the platform.

Can I get menu items and individual dish prices?

The current version extracts restaurant-level data (delivery info, ratings, cuisines, hours). Menu/catalog data requires authentication on efood's API. If menu scraping is critical for your use case, let us know.

What is the difference between searchQuery and cuisineFilter?

searchQuery is a fuzzy keyword search that matches against restaurant name, cuisine, address, and chain name. cuisineFilter matches the exact cuisine category as defined by efood (e.g., "Pizza", "Burgers", "Souvlakia"). Use cuisineFilter when you know the exact category, and searchQuery for broader searches.

Limitations

  • Menu data — Individual menu items and dish prices require authentication and are not currently available. The actor focuses on restaurant-level data.
  • Location precision — Results depend on the delivery radius from the given coordinates. Moving the point by a few kilometers may change which restaurants appear.
  • Real-time availability — The isOpen field reflects the restaurant's status at scrape time. Availability changes throughout the day.
  • API rate limits — Efood may rate-limit aggressive scraping. The actor uses Greek residential proxies by default for reliability.
  • Delivery Hero changes — As part of Delivery Hero, efood's API may change without notice. We monitor and update the scraper to keep pace.

Other European delivery scrapers

Build a complete view of European food delivery with companion scrapers from our catalog. Check our Apify Store page for the full list of European scrapers.

Your feedback

If you notice data quality issues, missing fields, or broken runs, let us know through the Apify Console or GitHub. We actively monitor and update this scraper to maintain reliability.