Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Glovo API page →
E-commerce & Marketplaces

Glovo API & Scraper

The Glovo API reads Glovo's public catalogue in six actions.

6 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 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.

Reference

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.

ItemGlovo's own price fieldWhat the customer pays (price)original_price · discount_pct
Tappers Risotto a la Milanesa 400g, El Súper de Glovo6.49 EUR5.51 EUR6.49 · 15.1
Redondo Huevos Talla M 12u, El Súper de Glovo4.89 EUR3.91 EUR4.89 · 20.04
Promo Quesadilla, Taco Bell6.10 EUR3.05 EUR6.10 · 50
Store list delivery fee, El Súper de Glovo0.99 EUR base feeFree (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.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "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
  }
}
Captured response
{
  "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"
      }
    ]
  }
}
Actions

What the Glovo API does

ActionDescriptionConcrete use caseKey params
storesStores 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, ...
categoriesGlovo'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
storeOne 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
catalogA 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_searchSearch 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, ...
searchGlovo'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
Code samples

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}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.glovo.search with {"query":"leche","lat":40.4168,"lon":-3.7038}.
Use cases

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.
FAQ

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.

docs / glovo

Glovo

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.

base /glovo/v16 endpoints
post/glovo/v1/stores3 credits

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`.

ParameterAllowed / rangeDescription
latoptional-90–90Delivery point latitude (with `lon`). Which stores deliver, the delivery fee, time and distance all depend on this point; it is echoed in `location`.
lonoptional-180–180Delivery point longitude (with `lat`).
category = groceriesoptionalgroceries · restaurants · pharmacy · shopsWhich store list. Also accepts a Glovo category id from the `categories` action (some cities have extra lists).
filteroptional—One value of the location's own filter list (`available_filters` in the response): a title such as Supermarket, Bakery, Pizza, Sushi, or its id. An unknown value is rejected with the list.
sort = recommendedoptionalrecommended · distance · ratingGlovo's own store-list sort.
limit = 24optional1–50Stores per page (1-50; Glovo's own maximum is 50).
cursoroptional—`meta.next_cursor` of the previous call, as is, with the same lat/lon/category/filter/sort.
language = enoptional—Language of Glovo's interface texts (en, es, it, pt, pl, ro, uk, ka, ru …). In `catalog`, passing it also asks Glovo for its machine translation of product names (Plátano → Banana); without it names are the store's own.
Try in playground →
post/glovo/v1/categories2 credits

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.

ParameterAllowed / rangeDescription
latoptional-90–90Delivery point latitude (with `lon`). Which stores deliver, the delivery fee, time and distance all depend on this point; it is echoed in `location`.
lonoptional-180–180Delivery point longitude (with `lat`).
language = enoptional—Language of Glovo's interface texts (en, es, it, pt, pl, ro, uk, ka, ru …). In `catalog`, passing it also asks Glovo for its machine translation of product names (Plátano → Banana); without it names are the store's own.
Try in playground →
post/glovo/v1/store2 credits

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.

ParameterAllowed / rangeDescription
store_idrequired—Glovo store id — a `stores`/`search` row's `store_id`, as is — or the store slug from a glovoapp.com store URL (superglovo-mad).
latoptional-90–90Delivery point latitude (with `lon`). Which stores deliver, the delivery fee, time and distance all depend on this point; it is echoed in `location`.
lonoptional-180–180Delivery point longitude (with `lat`).
language = enoptional—Language of Glovo's interface texts (en, es, it, pt, pl, ro, uk, ka, ru …). In `catalog`, passing it also asks Glovo for its machine translation of product names (Plátano → Banana); without it names are the store's own.
Try in playground →
post/glovo/v1/catalog3 credits

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.

ParameterAllowed / rangeDescription
store_idrequired—Glovo store id — a `stores`/`search` row's `store_id`, as is — or the store slug from a glovoapp.com store URL (superglovo-mad).
store_address_idoptional—The store ADDRESS that serves you — a `stores`/`search` row's `store_address_id`, as is. A brand has several addresses and the catalogue belongs to the address. Without it pass `lat`+`lon` and the engine asks Glovo which address delivers there.
city_codeoptional—Glovo city code of the store — a `stores`/`search` row's `city_code`, as is. Needed with `store_address_id` when `lat`/`lon` are not given.
latoptional-90–90Delivery point latitude — needed when `store_address_id` is not given.
lonoptional-180–180Delivery point longitude (with `lat`).
categoryoptional—A `category` value from this action's `categories` tree, as is: a collection (…-c.<id>) returns all its products section by section, a section (…-s.<id>) only that section, a super-category (…-sc.<id>) its collections.
language = enoptional—Language of Glovo's interface texts (en, es, it, pt, pl, ro, uk, ka, ru …). In `catalog`, passing it also asks Glovo for its machine translation of product names (Plátano → Banana); without it names are the store's own.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.