Glovo Scraper
Pricing
from $2.00 / 1,000 results
Glovo Scraper
[๐ฐ $2.0 / 1K] Extract Glovo store listings and menu data across restaurants, groceries, pharmacy & beauty, and shops in 1,316 cities across 24 countries. Scrape any city by name or paste store links to get ratings, review volume, base delivery fees, promotions, availability, and menu prices.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Pull store listings and full menus from Glovo across the 1,316 cities in 24 countries Glovo's own city directory lists โ restaurants, grocery stores, pharmacies, and retail shops, with ratings, base delivery fees, local currency, live promotions, availability, and per-item prices. Built for food-delivery market analysts, q-commerce competitive-intelligence teams, and restaurant-supply lead generators who need fresh Glovo catalog and pricing data without collecting it merchant by merchant.
Why This Scraper?
- All 1,316 Glovo cities in 24 countries โ the city you type is matched against Glovo's own delivery-city directory, so Nairobi, Zagreb, Tbilisi, and Casablanca work exactly like Madrid. Coverage runs from Spain (353 cities), Italy (290), and Poland (206) through Morocco, Kenya, Nigeria, Georgia, and Kazakhstan.
- Wrong city name? The run tells you the right one. Type a spelling Glovo doesn't use and you get the closest cities Glovo really delivers to, by name, instead of a silent empty file.
- 4 store verticals in one run โ restaurants, groceries, pharmacy & beauty, and shops, from a single city + vertical picker. A single "All verticals" run on Warsaw returned 150 stores spread across all four in 22 seconds.
- Complete menus with a price on every line โ a Valencia run pulled 337 menu rows from 3 restaurants (68, 91, and 178 items), each with numeric price, formatted display price, currency, product ID, menu section, and image URL, joined to its parent store.
- Delivery economics in the local currency โ a real, varying base delivery fee and currency code on 100% of measured store rows: 40 distinct fee values across EUR, PLN, UAH, and RON in one 453-store sample.
- Typed promotions, not just a "deal" flag โ four promotion kinds (percentage discount, basket discount, two-for-one, flat product price) each with benefit and description, on roughly a third of stores, plus Glovo's top-rated badge.
- 8 interface languages, independent of the city โ English, Spanish, Portuguese, Italian, French, Polish, Ukrainian, and Romanian. Language picks the wording, not the country, so you can read Nairobi's listings in French or Lisbon's in English.
- A Max Results ceiling, 20,000 rows by default โ a broad sweep with menus switched on cannot quietly turn into a hundred-thousand-row bill. The run stops at your number and says it stopped there.
- A finishing summary that admits what it missed โ if the run ended early because of your result limit, your store limit, or Glovo showing only one page per category, the last message names which one and what to change. It says "Done!" only when nothing held it back.
Use Cases
Market Research
- Map every restaurant, grocer, pharmacy, and shop operating in a Glovo city
- Compare base delivery fees and local pricing across an entire vertical
- Track which merchants carry Glovo's top-rated badge in a market
Competitive Intelligence
- Watch a named competitor's full menu and prices with direct store links
- Benchmark a chain's offering across multiple cities and countries
- Measure how many stores in a vertical are running an active promotion
Price Monitoring
- Track item-level prices over time for a basket of grocery products
- Compare the same dish or product across competing stores in one city
- Detect discount campaigns starting and ending between runs
Menu & Catalog Aggregation
- Build a unified product feed across dozens of stores in a vertical
- Power a price-comparison or aggregator site with structured catalog rows
- Localize the same catalog into 8 languages for multi-market listings
Lead Generation for Restaurant Suppliers
- Build outreach lists of restaurants by cuisine tag and city
- Prioritize prospects by rating, review volume, and promotion activity
- Enrich a target list with store links, base fees, and open/closed status
Getting Started
Discover a Vertical in One City
The simplest run โ all restaurants in Barcelona, store listings only:
{"city": "Barcelona","storeCategory": "food","maxStores": 50}
A Localized Sweep in Another Country
Every grocery store in Bucharest, with Romanian names and RON prices:
{"city": "Bucharest","storeCategory": "groceries","language": "ro","maxStores": 50}
Specific Stores With Full Menus
Paste exact store links and pull every product for each:
{"storeUrls": ["https://glovoapp.com/en/es/barcelona/stores/vicio-barcelona"],"includeProducts": true,"maxStores": 10}
Full Menu Sweep With a Cost Ceiling
Scrape restaurants in Lisbon with every menu item, capped at 5,000 rows:
{"city": "Lisboa","storeCategory": "food","includeProducts": true,"maxStores": 20,"maxResults": 5000,"language": "pt"}
Input Reference
The values below are what the Apify UI prefills. A run that names neither a city nor a store link is declined with a short message rather than quietly sweeping some default city.
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
city | string | "Barcelona" | The Glovo city to scrape, by name. Use the name Glovo itself uses: for some cities that is the local spelling (Lisboa, Warszawa), for others the English one (Bucharest). Working examples: Barcelona, Madrid, Lisboa, Warszawa, Bucharest. If the name isn't found, the run names the closest cities Glovo does deliver to. |
storeCategory | string | "all" | Which kind of stores to collect: All verticals, Food & Restaurants, Groceries, Pharmacy & Beauty, or Shops. "All verticals" covers everything Glovo offers in the city. |
categoryFilters | string[] | [] | Optionally narrow a vertical to specific cuisines or sub-types, one per line. Each filter pulls its own set of stores, so filters are the way to reach past the one-page-per-vertical limit. |
storeUrls | string[] | [] | Paste specific Glovo store links to scrape exactly those stores, one per line. Products are always collected for these. Leave empty to discover stores from the city and vertical above. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
includeProducts | boolean | false | Also collect the full product or menu list for each store. This adds a lot of rows: roughly 70โ180 per restaurant and up to about 3,000 for a large supermarket, on top of one row per store. Restaurants and normal shops return their whole menu. Very large grocery and quick-commerce stores are sampled โ the top aisles to a safe depth, stopping at roughly 3,000 products per store โ so a hypermarket's catalog may be partial. |
maxStores | integer | 50 | How many stores to keep. Each vertical returns up to about 50 stores (Glovo's public listing limit), so one vertical can't exceed ~50 no matter what you set. To collect more, choose All verticals (each vertical adds its own ~50, about 200 in total) or add several Sub-type Filters. This also caps pasted Store Links: paste more links than this number and only the first ones are collected, so raise it for a long list. Setting 0 lifts the store cap; Max Results still bounds the run. |
maxResults | integer | 20000 | Total rows a single run will deliver, store rows and product rows counted together. It exists so a broad run can't quietly become a very large one. The run stops cleanly at this number and tells you it did, so you always know whether you got everything. Raise it if you genuinely need more. |
language | string | "en" | Wording for store and product names and descriptions: English, Spanish, Portuguese, Italian, French, Polish, Ukrainian, or Romanian. Independent of the city โ any language works with any Glovo country. |
Output
Every row carries a recordType field โ store or product โ so you can filter the dataset cleanly. Product rows are present only when Include products is enabled or when store links are supplied.
Store (recordType: "store")
{"recordType": "store","title": "VIPS","slug": "vips-madrid1","url": "https://glovoapp.com/en/es/madrid/stores/vips-madrid1","rating": 97,"votes": "96","deliveryFeeBase": 3.5,"currency": "EUR","availability": "OPEN","promotions": [{ "type": "PERCENTAGE_DISCOUNT", "benefit": "-30%", "description": "some items" }],"tag": "American","isTopRated": false,"isNew": false,"category": "food_1","city": "Madrid"}
Core Fields
| Field | Type | Description |
|---|---|---|
recordType | string | Always "store" |
title | string | Store display name |
slug | string | URL-friendly store identifier |
url | string | Full Glovo store page link |
tag | string | Cuisine or store-type tag (e.g. Burgers, Sushi, Supermarket) |
category | string | The vertical the store was found under |
city | string | City the store belongs to |
Reputation & Offers
| Field | Type | Description |
|---|---|---|
rating | number | Rating percentage (e.g. 97). Empty for stores Glovo hasn't rated yet โ about 1 in 6 rows in a mixed 453-store sample, and none at all in busy restaurant verticals like Madrid and Milan. |
votes | string | Review volume. Often an exact count ("96", "322"), but Glovo publishes a band instead for its busiest merchants ("500+", "1k+", "9k+") โ close to half the rows in a big-city restaurant vertical. Treat it as text, not a number to sort on. |
promotions | object[] | Active promotions, each { type, benefit, description }. Types seen: PERCENTAGE_DISCOUNT, BASKET_PERCENTAGE, TWO_FOR_ONE, FLAT_PRODUCT. Empty when the store has no live deal. |
isTopRated | boolean | Glovo's top-rated badge |
isNew | boolean | Glovo's new-store badge โ genuinely rare. true on just 8 of 1,841 store entries measured across 14 cities, 12 countries and 4 verticals (~0.4%), and nearer 0.1% in mature markets like Madrid, where Glovo ranks established merchants first. A screen of false values is normal, not a broken field. |
Delivery & Status
| Field | Type | Description |
|---|---|---|
deliveryFeeBase | number | The store's base delivery fee, in the currency below |
currency | string | Currency code for the fee and for this store's product prices (EUR, PLN, UAH, RON, โฆ) |
availability | string | Glovo's live status for the store, e.g. OPEN or SCHEDULEABLE (order now, deliver later) |
Product (recordType: "product")
{"recordType": "product","storeSlug": "mcdonalds-val2","storeName": "McDonald'sยฎ","name": "McMenรบยฎ Big Macยฎ","description": "Carne, pepinillos, lechuga, cebolla y queso fundido","price": 9.74,"currency": "EUR","priceDisplay": "9,74 โฌ","productId": "41935023102","categoryName": "Top sellers","imageUrl": "https://d2o20fuzws2yo1.cloudfront.net/TPO-1480BB_GMA-V1_M26.png","city": "Valencia"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "product" |
storeSlug | string | Parent store identifier (join key to its store row) |
storeName | string | Parent store display name |
name | string | Product or menu item name |
description | string | Product description, where the merchant wrote one |
price | number | Numeric price |
currency | string | Currency code (EUR, PLN, UAH, RON, โฆ) |
priceDisplay | string | Formatted price as shown to shoppers (e.g. "9,74 โฌ") |
productId | string | Glovo product identifier |
categoryName | string | Menu section the product sits in |
imageUrl | string | Direct product image link |
city | string | City context |
Tips for Best Results
- Spell the city the way Glovo does. Glovo files each city under one name, and it is local for some (
Lisboa,Warszawa) and English for others (Bucharest). Get it wrong and the run comes back with the closest real delivery cities by name, so a mistake costs you one quick correction rather than an empty dataset. - Maximize coverage with breadth, not a bigger
maxStores. One vertical returns up to about 50 stores โ Glovo's public listing limit โ so raisingmaxStorespast 50 on a single vertical adds nothing. Choose All verticals (roughly 200 stores) or add several cuisine / sub-type filters, each of which pulls its own set. - Read the final message before trusting the row count. It says "Done!" only when nothing cut the run short. Otherwise it names the reason โ your result limit, your store limit, or Glovo's one-page listing โ and, where Glovo publishes it, how many stores the city actually has.
- Use
maxResultsas your budget dial. Every store row and product row counts toward it. With menus on, a restaurant adds roughly 70โ180 rows and a large supermarket up to about 3,000, so set the ceiling to the number of rows you're willing to pay for and let the run stop itself. - Leave products off for a store census. A city-wide store list is cheap and fast; turn menus on only for the shortlist of merchants you actually want item-level data on.
- Treat
votesas text andratingas optional. Popular stores report review volume as a band ("1k+"), and stores Glovo hasn't rated yet return neither field. Filter on rating rather than assuming every row has one, and sort onrating, notvotes. - Pick the language for the reader, not the country. Language and city are independent, so you can pull Kenyan or Georgian listings in English for an internal report, or in the local language for customer-facing copy.
- Filter by
recordTypedownstream. Split the dataset into a clean store table and a product table, then join products back to stores onstoreSlug.
Pricing
From $2.00 per 1,000 results โ pay-per-result only, with no compute charges. Apify's loyalty discount tiers lower the rate as you go: Gold subscribers pay the headline $2.00 per 1,000. Tiered rates take effect 12 September 2026; until then every account pays the Gold rate.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.235 | $0.225 | $0.215 | $0.200 |
| 1,000 | $2.35 | $2.25 | $2.15 | $2.00 |
| 10,000 | $23.50 | $22.50 | $21.50 | $20.00 |
| 100,000 | $235.00 | $225.00 | $215.00 | $200.00 |
A "result" is any row in the output dataset โ a store or a product. Turning on full menu and catalog extraction adds product rows (many per store), so use maxStores, maxResults, and the products toggle to keep your result count where you want it.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom workflows on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate market research, competitive intelligence, price monitoring, and lead generation. You are responsible for complying with applicable laws and Glovo's terms of service, including making reasonable-rate requests and respecting how the data may be used. Do not use extracted data for spam, harassment, or any illegal purpose.