Glovo API & Scraper
The Glovo API reads Glovo's public catalogue in six actions.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
stores returns the stores Glovo lists for a delivery point you give as latitude and longitude, one category at a time: supermarkets and groceries (Glovo Express and El Súper de Glovo included), restaurants, pharmacy and beauty, or shops. Each row has the store id, the store address that serves your point, name, type, open now, rating, the delivery fee and what Glovo shows a new customer instead, delivery time range, distance and promotions; narrow with the location's own filter such as Supermarket, Pizza or Sushi and sort by distance or rating, 24 to 50 stores per page. catalog returns a restaurant's whole menu with option groups in one call, or a supermarket's category tree and then a category's products: price you pay, original price and discount when promoted, Prime price when there is one, stock limit, barcode (GTIN), availability and options. store_search searches inside one store, search is Glovo's own search across the stores that deliver to your point, store returns a store's record and categories lists what Glovo offers at a point. Measured on 2026-10-18 in 20 countries: 186 of 194 live calls succeeded, and 17 of 17 prices matched the store's own page on glovoapp.com. Prices are in the local currency. One ReefAPI key, no Glovo account, the standard { ok, data, meta, error } envelope.
Glovo's listed price is the price before the promotion
Before you build a price tracker on Glovo, know which number is which. Measured on 2026-10-18 in Madrid.
| Item | Glovo's own price field | What the customer pays (price) | original_price · discount_pct |
|---|---|---|---|
| Tappers Risotto a la Milanesa 400g, El Súper de Glovo | 6.49 EUR | 5.51 EUR | 6.49 · 15.1 |
| Redondo Huevos Talla M 12u, El Súper de Glovo | 4.89 EUR | 3.91 EUR | 4.89 · 20.04 |
| Promo Quesadilla, Taco Bell | 6.10 EUR | 3.05 EUR | 6.10 · 50 |
| Store list delivery fee, El Súper de Glovo | 0.99 EUR base fee | Free (first order, new visitor) | delivery_fee_listed 0.99 · delivery_fee_effective_text Free |
price is always what the customer pays after a public promotion; Glovo Prime prices go to member_price, never to price. The store list shows a new visitor's first-order delivery offer, so the base fee is published as delivery_fee_listed with the offer next to it.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/glovo/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "leche",
"lat": 40.4168,
"lon": -3.7038
}
}{
"ok": true,
"meta": {
"api": "glovo",
"endpoint": "search",
"mode": "live",
"latency_ms": 1751.8,
"record_count": 184,
"bytes": 858452,
"cache_hit": false,
"stores": 100,
"products": 84,
"language": "en",
"no_results": false,
"has_more": false,
"note": "products are the matches Glovo shows under each store card",
"upstream_requests": 4,
"upstream_attempts": 4,
"warnings": [
"ignored unknown parameter(s): include_pii"
],
"charged_credits": 3,
"version": "1.0.0",
"request_id": "d963df2cdd9a4d27",
"fetched_at": "2026-10-18T17:45:00.074Z"
},
"data": {
"location": {
"lat": 40.4168,
"lon": -3.7038,
"city_code": "MAD",
"country": "ES",
"address": "Real Casa de Correos, Centro, Madrid, Spain",
"served": true,
"currency": "EUR"
},
"query": "leche",
"stores": [
{
"store_id": "21033",
"store_address_id": "178270",
"city_code": "MAD",
"slug": "superglovo-mad",
"name": "El Súper de Glovo",
"is_glovo_dark_store": true,
"rating_score": 99,
"rating_text": "99%",
"rating_count_text": "4k+",
"delivery_estimate_min": 55,
"delivery_estimate_max": 65,
"delivery_estimate_text": "55-65 min",
"tags": [
"Free delivery on the first order"
],
"promotions": [
"Promo on select items"
],
"image": "https://glovo.dhmedia.io/image/stores-glovo/stores/0328d050242869f47457578ad2e47a447c9ea94e4ca0ea0ddb5fcc52690a0550"
},
{
"store_id": "108388",
"store_address_id": "201665",
"city_code": "MAD",
"slug": "la-desayuneria-madrid",
"name": "La Desayunería",
"is_glovo_dark_store": false,
"rating_score": 98,
"rating_text": "98%",
"rating_count_text": "55",
"delivery_estimate_min": 15,
"delivery_estimate_max": 30,
"delivery_estimate_text": "15-30 min",
"tags": [
"Free delivery on the first order"
],
"promotions": [],
"image": "https://glovo.dhmedia.io/image/stores-glovo/stores/3b5691508c70dc0345d388e072f2c86e0d907973ad7c2b76d71d724d5e5ca041"
},
{
"store_id": "611718",
"store_address_id": "976355",
"city_code": "MAD",
"slug": "el-bololo-madrid",
"name": "El Bololó",
"is_glovo_dark_store": false,
"rating_score": null,
"rating_text": "New",
"rating_count_text": null,
"delivery_estimate_min": 20,
"delivery_estimate_max": 35,
"delivery_estimate_text": "20-35 min",
"tags": [
"Free delivery on the first order"
],
"promotions": [],
"image": "https://glovo.dhmedia.io/image/stores-glovo/stores/c64f9de0c6acfb16f57defae704290d9e4509fd018677af685ea2416c74664e9"
}
],
"products": [
{
"item_id": "4611686018945798054",
"external_id": "TX7BQY",
"name": "Gourmet Galletas Chocolate con Leche 150g",
"price": 1.99,
"original_price": null,
"discount_pct": null,
"currency": "EUR",
"price_text": "1,99 €",
"original_price_text": null,
"promotions": [],
"store_id": "21033",
"store_address_id": "178270",
"city_code": "MAD",
"store_slug": "superglovo-mad",
"store_name": "El Súper de Glovo"
},
{
"item_id": "4611686018945798123",
"external_id": "0I610S",
"name": "Gourmet Café con Leche Cápsulas 16u",
"price": 3.99,
"original_price": null,
"discount_pct": null,
"currency": "EUR",
"price_text": "3,99 €",
"original_price_text": null,
"promotions": [],
"store_id": "21033",
"store_address_id": "178270",
"city_code": "MAD",
"store_slug": "superglovo-mad",
"store_name": "El Súper de Glovo"
},
{
"item_id": "4611686018637637133",
"external_id": "I4O592",
"name": "La Menorquina Helado Cono Alma Dulce de Leche 3u",
"price": 4.65,
"original_price": null,
"discount_pct": null,
"currency": "EUR",
"price_text": "4,65 €",
"original_price_text": null,
"promotions": [],
"store_id": "21033",
"store_address_id": "178270",
"city_code": "MAD",
"store_slug": "superglovo-mad",
"store_name": "El Súper de Glovo"
}
]
}
}What the Glovo API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| stores | Stores Glovo lists for a delivery point in one category — supermarkets & groceries (Glovo Express / El Súper de Glovo dark stores included), restaurants, pharmacy & beauty, shops — with delivery fee, delivery time, distance, rating, open status and promotions. Location (lat+lon) is required and echoed. Narrow with the location's own filter (cuisine or shop type, e.g. Supermarket, Pizza, Sushi), sort the way glovoapp.com sorts, page with `cursor`. | Pricing teams call stores to get stores Glovo lists for a delivery point in one category. | lat, lon, category, filter, sort, ... |
| categories | Glovo's categories at a delivery point — the store lists `stores` accepts (groceries, food, pharmacy & beauty, shops, city-specific lists) and single-store entries such as Glovo Express or El Súper de Glovo with their store id — plus the city, country and currency. | Marketplace operators call categories to get glovo's categories at a delivery point. | lat, lon, language |
| store | One store's record for a delivery point: name, address, phone, rating and rating count, delivery fee, service fee rule, distance, open status, promotions, store type, the address id that serves the point, the store's suggested search keywords. | Catalog enrichment teams call store to get one store's record for a delivery point. | store_id, lat, lon, language |
| catalog | A store's catalogue or menu. Restaurants: the whole menu with prices, promotions and option groups in one call. Supermarkets and Glovo Express: without `category` the category tree; with `category` that category's products (every section) — price, promotion price, original price, discount, Prime price, stock limit, barcode (GTIN) where Glovo publishes it, availability. | Retail analysts call catalog to get a store's catalogue or menu. | store_id, store_address_id, city_code, lat, lon, ... |
| store_search | Search inside one store (the search box on a Glovo store page): every matching product with price and Glovo's own total count. | Pricing teams call store_search to search inside one store (the search box on a Glovo store page). | store_id, query, store_address_id, city_code, lat, ... |
| search | Glovo's own search for a delivery point — the same results glovoapp.com shows: matching stores (restaurants, supermarkets, shops) with delivery time and rating, and the matching products/dishes shown under each store with price and original price (compare one product across stores). | Marketplace operators call search to get glovo's own search for a delivery point. | query, lat, lon, language |
Call search from your stack
curl -X POST https://api.reefapi.com/glovo/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"leche","lat":40.4168,"lon":-3.7038}'import requests
r = requests.post(
"https://api.reefapi.com/glovo/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "leche",
"lat": 40.4168,
"lon": -3.7038
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/glovo/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "leche",
"lat": 40.4168,
"lon": -3.7038
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.glovo.search with {"query":"leche","lat":40.4168,"lon":-3.7038}.Who uses this API and why
- Grocery price trackers follow Glovo Express and supermarket shelf prices and promotions across Spanish, Italian, Portuguese and Polish cities.
- FMCG brands check their price, promotion depth, stock limit and barcode coverage on Glovo in 20 countries.
- Delivery market analysts map which supermarkets, restaurants and pharmacies deliver to a point, with fee, time, distance and rating.
- Restaurant groups benchmark menus, promotions and option pricing against competitors on Glovo.
- Quick-commerce teams compare Glovo's own dark stores with partner supermarkets around the same address.
Questions developers ask before integrating
Do I have to give a location?
Yes. stores, search, categories and store need lat and lon of the delivery point, because Glovo's store list, delivery fee, delivery time and distance all depend on it. The point is echoed in every response under location with Glovo's city code and whether Glovo serves it. There is no hidden default location.
Which countries are covered?
The 20 countries measured on 2026-10-18: Spain, Portugal, Italy, Poland, Romania, Ukraine, Georgia, Kazakhstan, Kyrgyzstan, Morocco, Tunisia, Nigeria, Côte d'Ivoire, Uganda, Kenya, Croatia, Serbia, Bulgaria, Montenegro and Moldova. A point Glovo does not serve, such as London, Paris, Skopje or Sarajevo, returns no stores and served: false.
How do I get Glovo Express or supermarket prices?
Call stores with category=groceries for your point; is_glovo_dark_store marks Glovo's own stores (El Súper de Glovo, Glovo Express, Glovomart). Pass that row's store_id, store_address_id and city_code to catalog for the category tree, then again with a category value for its products, or to store_search with a keyword. Grocery categories load section by section; one Madrid promotions category returned 248 products.
Why does a row carry store_address_id?
Because a Glovo store brand has several addresses and the catalogue belongs to the address that delivers to you. On 2026-10-18 two addresses of El Súper de Glovo in Madrid returned 99 and 97 products for the same search. Pass the store_address_id from the stores or search row as it is; with only lat and lon the engine asks Glovo which address serves that point.
What does a product row contain?
item_id (a string, because Glovo's ids are longer than JavaScript numbers hold), external_id, name, description, price, original_price, discount_pct, member_price, currency, available, quantity_limit with its reason (STOCK_AMOUNT means units left), gtin, sold_by_weight, promotions, section, image and options with their prices. Across 312 grocery products in Spain, Portugal, Ukraine and Kazakhstan on 2026-10-18, price, image and barcode were filled on all 312; fresh produce at El Súper de Glovo has no barcode.
How does paging work for the store list?
Each stores response has meta.total and, while there are more stores, meta.next_cursor. Pass the cursor back with the same lat, lon, category, filter and sort. Three pages of 24 Madrid grocery stores on 2026-10-18 had no store twice. Up to 50 stores per page.
How many results does search return?
Glovo's own search returns one page: up to 100 matching stores, and under each store card the matching products Glovo shows, with price and original price. In-store search counts stop at 100 products. A search Glovo has no results for returns 0 rows with meta.no_results: true.
Are prices in euros?
In the local currency of the store: EUR, PLN, RON, UAH, GEL, KZT, KGS, MAD, TND, NGN, XOF, UGX, KES, RSD and MDL were seen on 2026-10-18, with currency on every row. The same store's prices were identical whichever country the request came from.
What is the Glovo API?
Glovo API is a ReefAPI endpoint group for supermarkets, glovo express, restaurants and shops that deliver to any point in 20 countries, with menus and grocery catalogues: price, promotion, original price, stock limit and barcode. It returns live JSON through POST requests under /glovo/v1.
Is the Glovo API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Glovo calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Glovo login or account?
No login to Glovo is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Glovo data?
The page example is captured from a live stores call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Glovo API use?
Glovo actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Glovo from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call glovo actions with the same key, credit pool and JSON envelope used by normal REST requests.