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

Wolt API & Scraper

The Wolt API reads Wolt's public catalogue in seven actions.

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

venues returns every restaurant or every shop that Wolt lists for a delivery point you give as latitude and longitude or as a Wolt city slug: name, address, coordinates, distance from your point, open now, delivery fee as listed, delivery time range, rating score and count, price level, Wolt's own categories and promotions; filter by product line (grocery, pharmacy, florist and more), by Wolt's own category filter, price level and open now, and sort by distance, rating, delivery fee or delivery time exactly as wolt.com does. search is Wolt's own search for that point: target=items finds a product or dish in every venue that delivers there, so one call compares the price of the same milk across Wolt Market and the supermarkets nearby; target=venues searches venues. menu returns a restaurant's full menu with option groups and their prices, or a Wolt Market or supermarket catalogue: the category tree first, then each category's products with price, original price, discount, the lowest price of the last 30 days, unit price per kg or litre, barcode (GTIN), stock count and availability. venue_search searches inside one shop, items reads products by id, venue returns the venue record with opening hours, base delivery fee, order minimum, service fee rule and the legal seller, and cities lists Wolt's 965 cities. Measured on 2026-10-18 across 12 countries: 34 of 34 live calls succeeded, and 30 search results read back by id had the same price 30 times out of 30. Prices are in the venue's own currency. One ReefAPI key, no Wolt account, the standard { ok, data, meta, error } envelope.

Reference

The delivery fee Wolt lists is the new-visitor offer, not the base fee

Before you build a delivery-fee comparison on Wolt, know which fee you are reading. Measured on 2026-10-18.

What was comparedVenue list (venues, search)Venue record (venue)
Wolt Market Kamppi, Helsinki0.00 EUR with a "0 € delivery fee" promotionbase delivery 1.49 EUR, order minimum 18.00 EUR
Helsinki restaurants listed1 076 venues, every priced one at 0.00 EURbase fee differs per venue
Budapest shops344 of 368 at 0 HUFbase delivery 349 HUF on the venues checked
Rating count, Wolt Market Kamppi7 093 in the venue list, 0 in search500 in the venue record

delivery_fee_listed is published together with the promotions behind it; delivery_base_fee comes from venue. Neither is what a signed-in returning customer pays at checkout.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/wolt/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "milk",
    "lat": 60.1699,
    "lon": 24.9384
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "wolt",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1578.6,
    "record_count": 200,
    "bytes": 466089,
    "cache_hit": false,
    "query": "milk",
    "target": "items",
    "applied": {
      "product_line": null,
      "sort": "recommended"
    },
    "language": "en",
    "result_cap": 200,
    "capped": true,
    "has_more": false,
    "search_id": "01c92e59-20fb-4dd2-abd1-994b8438888c",
    "upstream_requests": 1,
    "upstream_attempts": 1,
    "warnings": [
      "ignored unknown parameter(s): include_pii"
    ],
    "charged_credits": 3,
    "version": "1.0.0",
    "request_id": "0b4816f6574549b7",
    "queue_ms": 1.3,
    "fetched_at": "2026-10-18T17:45:08.006Z"
  },
  "data": {
    "location": {
      "lat": 60.1699,
      "lon": 24.9384,
      "source": "caller",
      "served": true,
      "wolt_city": "helsinki"
    },
    "query": "milk",
    "target": "items",
    "items": [
      {
        "item_id": "6f7b05e3101fab710713cb32",
        "name": "Pirkka milk semi skimmed 1 l",
        "description": "Pirkka Finnish semi-skimmed milk is a fresh and healthy drink for daily consumption. Milk is naturally rich in calcium, vitamin B and high-quality protein. Enriched with vitamin D. Manufacturers: Arla Ingman Oy Ab, Maitokolmio, Satamaito and Maitomaa.\n0.94 €/l",
        "price": 0.94,
        "currency": "EUR",
        "price_type": "simple-price",
        "sold_by_weight": false,
        "available": true,
        "image": "https://imageproxy.wolt.com/assets/6ad02fdbb93308428487186f",
        "product_line": "grocery",
        "venue_id": "69d4cd6ae76da6289d3977bd",
        "venue_slug": "k-supermarket-postitalo",
        "venue_name": "K-Supermarket Postitalo",
        "venue_rating_score": 9.2,
        "delivery_fee_listed": 0,
        "delivery_estimate_text": "25-35",
        "url": "https://wolt.com/en/fin/helsinki/venue/k-supermarket-postitalo/itemid-6f7b05e3101fab710713cb32"
      },
      {
        "item_id": "f26e81cabb24e9789e692b05",
        "name": "Pirkka skimmed milk 1 l",
        "description": "Pirkka Finnish skimmed milk is a fresh and healthy drink for daily consumption. Milk is naturally rich in calcium, vitamin B and high-quality protein. Enriched with vitamin D. Manufacturers: Arla Ingman Oy Ab, Maitokolmio, Satamaito and Maitomaa.\n0.84 €/l",
        "price": 0.84,
        "currency": "EUR",
        "price_type": "simple-price",
        "sold_by_weight": false,
        "available": true,
        "image": "https://imageproxy.wolt.com/assets/6acede732cb23a3448b684ca",
        "product_line": "grocery",
        "venue_id": "69d4cd6ae76da6289d3977bd",
        "venue_slug": "k-supermarket-postitalo",
        "venue_name": "K-Supermarket Postitalo",
        "venue_rating_score": 9.2,
        "delivery_fee_listed": 0,
        "delivery_estimate_text": "25-35",
        "url": "https://wolt.com/en/fin/helsinki/venue/k-supermarket-postitalo/itemid-f26e81cabb24e9789e692b05"
      },
      {
        "item_id": "36513d1b726608f93f823ace",
        "name": "Pirkka lactose-free fat-free milk drink 1l",
        "description": "Pirkka lactose-free skimmed milk drink tastes like regular fresh milk. Drink as such or use in cooking and baking. Awarded with the Hyvää Suomesta (Produce of Finland) label.\n1.45 €/l",
        "price": 1.45,
        "currency": "EUR",
        "price_type": "simple-price",
        "sold_by_weight": false,
        "available": true,
        "image": "https://imageproxy.wolt.com/assets/6ac5995bb051103eabd7356f",
        "product_line": "grocery",
        "venue_id": "69d4cd6ae76da6289d3977bd",
        "venue_slug": "k-supermarket-postitalo",
        "venue_name": "K-Supermarket Postitalo",
        "venue_rating_score": 9.2,
        "delivery_fee_listed": 0,
        "delivery_estimate_text": "25-35",
        "url": "https://wolt.com/en/fin/helsinki/venue/k-supermarket-postitalo/itemid-36513d1b726608f93f823ace"
      }
    ]
  }
}
Actions

What the Wolt API does

ActionDescriptionConcrete use caseKey params
venuesEvery venue Wolt lists for a delivery point: restaurants (type=restaurant) or shops (type=retail — Wolt Market dark stores, supermarkets, pharmacies, florists, electronics …). Location is required (lat+lon or a Wolt city slug) and echoed. Filter by product line (grocery, pharmacy …), by Wolt's own cuisine/category filter, price range and open-now; sort the way wolt.com sorts. Rows are paged from Wolt's complete list for that point.Pricing teams call venues to get every venue Wolt lists for a delivery point.lat, lon, city, country, type, ...
searchWolt's own search for a delivery point — the same results wolt.com shows. target=items searches products and dishes across every venue that delivers there (compare one product's price across shops), target=venues searches venues. Filter by product line, sort by distance, rating, delivery fee or delivery time. Wolt returns at most 200 items or 100 venues per search and publishes no further pages.Marketplace operators call search to get wolt's own search for a delivery point.query, lat, lon, city, country, ...
venueOne venue's record: name, brand, address, coordinates, phone, website, opening hours, delivery hours, base delivery fee, order minimum, service fee rule, bag fee, rating, price level, categories, payment methods, the legal seller (DSA trader block). With lat+lon also whether it is open now and the delivery estimate to that point.Catalog enrichment teams call venue to get one venue's record.venue, lat, lon, language
menuA venue's menu or product catalogue. Restaurants: the full menu with prices and option groups. Shops and Wolt Market (catalogue loaded per category): without `category` the category tree with item counts; with `category` that category's products — price, original price, discount, lowest price of the last 30 days, unit price, barcode (GTIN), live stock count, availability.Retail analysts call menu to get a venue's menu or product catalogue.venue, category, page_token, language
venue_searchSearch inside one venue's catalogue (the search box on a Wolt Market or supermarket page): every matching product with price, discount, unit price, barcode and stock.Pricing teams call venue_search to search inside one venue's catalogue (the search box on a Wolt Market or supermarket page).venue, query, language
itemsRead products/dishes of one venue by item id — e.g. ids from `search` (item_id + venue_slug) or `menu`. Up to 50 ids in one call (Wolt's own multi-id read). Ids Wolt does not currently sell come back in `not_returned`.Marketplace operators call items to read products/dishes of one venue by item id.venue, item_ids, language
citiesEvery city Wolt operates in, with Wolt's city slug, country and centre coordinates — the values `city` accepts. Filter by country.Catalog enrichment teams call cities to get every city Wolt operates in, with Wolt's city slug, country and centre coordinates.country
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/wolt/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","lat":60.1699,"lon":24.9384}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.wolt.search with {"query":"milk","lat":60.1699,"lon":24.9384}.
Use cases

Who uses this API and why

  • Grocery price trackers compare the same product across Wolt Market and the supermarkets on Wolt in one search call per city.
  • FMCG brands monitor their shelf price, discount depth, stock and barcode coverage in Wolt Market catalogues across countries.
  • Delivery market analysts map which restaurants and shops deliver to a point, with delivery time, rating and price level.
  • Restaurant groups benchmark menus and option pricing against competitors on Wolt.
  • Location intelligence teams count venues by category and product line for any of Wolt's 965 cities.
FAQ

Questions developers ask before integrating

Do I have to give a location?

Yes, for venues and search. Pass lat and lon of the delivery point, or a Wolt city slug such as helsinki, berlin, warsaw, tel-aviv or almaty, which is resolved to Wolt's own city centre. The point used is echoed in every response under location, together with whether Wolt serves it. There is no hidden default location.

Which countries are covered?

Every country Wolt operates in: 965 cities in 30 countries on 2026-10-18, including Finland, Sweden, Norway, Denmark, Estonia, Latvia, Lithuania, Poland, Czechia, Slovakia, Hungary, Germany, Austria, Greece, Cyprus, Malta, Croatia, Slovenia, Serbia, Romania, Bulgaria, Israel, Kazakhstan, Azerbaijan, Georgia, Iceland and Luxembourg. The cities action lists them. A point Wolt does not serve returns no venues and served: false.

How do I get Wolt Market prices?

Call venues with type=retail and product_line=grocery to find the Wolt Market stores near a point (is_wolt_market marks them), then menu with that venue: grocery catalogues load by category, so the first call returns the category tree and the next call with a category slug returns its products. venue_search finds products in that store by keyword in one call, 200 rows for coffee at Wolt Market Kamppi.

What does a product row contain?

item_id, name, description, price, original_price and discount_pct when discounted, the discount period when Wolt publishes it, lowest_price_30d, unit_info such as 400 g, unit price and its unit, gtin, stock, available, sold-by-weight details, deposit, VAT rate, dietary tags, images and the categories it sits in. On 2026-10-18, across 1 031 products in six shops, price was filled on 1 031, barcode on 782 and stock on 977; one Czech supermarket published no barcodes.

Is lowest_price_30d the price before the discount?

No. It is the lowest price Wolt shows for the previous 30 days under EU price-indication rules, and it can be higher than today's price: a 400 g bag of domestic apples cost 2.55 EUR with a 30-day lowest of 2.80 EUR. The struck-through price, when there is one, is original_price.

Why does items return some ids under not_returned?

Because the venue does not sell them right now. Wolt's search across venues can list a product a shop has since stopped selling: of 43 search results read back by id on 2026-10-18, 30 came back with the same price and 13 were no longer sold by that shop, which the shop's own catalogue confirmed. The rest of the ids are returned normally.

Are prices in euros?

In the venue's own currency: EUR, SEK, NOK, DKK, PLN, CZK, HUF, ILS, KZT, RSD, ISK and the others Wolt uses, with currency on every row. Amounts are decimals in that currency; Icelandic krona has no minor unit and is returned as whole kronur.

How are restaurant menus returned?

In full in one call: every dish with price, description, images and its option groups (size, extras, sauces) with each choice's price and how many choices are allowed. category narrows the menu to one section.

What is the Wolt API?

Wolt API is a ReefAPI endpoint group for restaurants, wolt market and shops that deliver to any point in 30 countries, with menus and grocery catalogues: price, discount, unit price, barcode and live stock. It returns live JSON through POST requests under /wolt/v1.

Is the Wolt API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Wolt calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Wolt login or account?

No login to Wolt 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 Wolt data?

The page example is captured from a live venues call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Wolt API use?

Wolt 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 Wolt from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call wolt actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / wolt

Wolt

Restaurants, Wolt Market and shops that deliver to any point in 30 countries, with menus and grocery catalogues: price, discount, unit price, barcode and live stock.

base /wolt/v17 endpoints
post/wolt/v1/venues3 credits

Every venue Wolt lists for a delivery point: restaurants (type=restaurant) or shops (type=retail — Wolt Market dark stores, supermarkets, pharmacies, florists, electronics …). Location is required (lat+lon or a Wolt city slug) and echoed. Filter by product line (grocery, pharmacy …), by Wolt's own cuisine/category filter, price range and open-now; sort the way wolt.com sorts. Rows are paged from Wolt's complete list for that point.

ParameterAllowed / rangeDescription
latoptional-90–90Delivery point latitude. Required together with `lon` unless `city` is given. Delivery fee, delivery time and which venues appear depend on this point.
lonoptional-180–180Delivery point longitude. Required together with `lat` unless `city` is given.
cityoptional—Instead of lat/lon: a Wolt city slug (helsinki, berlin, warsaw, tel-aviv, almaty …; the `cities` action lists all). Resolved to Wolt's own city centre point, echoed in `location`.
countryoptional—Only with `city`, when the same city slug exists in two countries (ISO 3166 alpha-2 or alpha-3).
type = retailoptionalretail · restaurantWhich Wolt list to read. Echoed in the response.
product_lineoptionalrestaurant · grocery · pharmacy · pet_supply · health_and_beauty · electronics · toys_games_and_kids · home_and_diy · florist · general_merchandiseKeep only venues of this Wolt product line (type=retail: grocery, pharmacy, florist …).
categoryoptional—Wolt's own venue filter value for that location (restaurants: pizza, sushi, burgers, vegan …; shops: grocery, pharmacy …). The response lists the values Wolt offers there; an unknown value is rejected with that list.
price_rangeoptional1–4Wolt's price level (1 = €, 4 = €€€€).
open_nowoptional—true = only venues open now; false = only closed ones.
sort = recommendedoptionalrecommended · distance · rating · delivery_fee · delivery_timeRow order — Wolt's own sort keys for each venue.
page = 1optional1–200Page of the filtered list; meta.has_more says if there is another.
limit = 50optional1–100Rows per page (1-100).
Try in playground →
post/wolt/v1/venue2 credits

One venue's record: name, brand, address, coordinates, phone, website, opening hours, delivery hours, base delivery fee, order minimum, service fee rule, bag fee, rating, price level, categories, payment methods, the legal seller (DSA trader block). With lat+lon also whether it is open now and the delivery estimate to that point.

ParameterAllowed / rangeDescription
venuerequired—Venue slug — a `venues`/`search` row's `slug` or `venue_slug`, as is — or a wolt.com venue URL.
latoptional-90–90Optional delivery point latitude for the live open status and delivery estimate (with `lon`).
lonoptional-180–180Optional delivery point longitude (with `lat`).
language = enoptional—Catalogue language. Wolt publishes the venue's own language and machine translations (see `available_languages`).
Try in playground →
post/wolt/v1/menu3 credits

A venue's menu or product catalogue. Restaurants: the full menu with prices and option groups. Shops and Wolt Market (catalogue loaded per category): without `category` the category tree with item counts; with `category` that category's products — price, original price, discount, lowest price of the last 30 days, unit price, barcode (GTIN), live stock count, availability.

ParameterAllowed / rangeDescription
venuerequired—Venue slug — a `venues`/`search` row's `slug` or `venue_slug`, as is — or a wolt.com venue URL.
categoryoptional—Category slug from this action's `categories` tree. Needed for shop catalogues (`loading: partial`); optional for restaurants (filters the full menu).
page_tokenoptional—`meta.next_page_token` of the previous call, as is, for the next page of a large category.
language = enoptional—Catalogue language. Wolt publishes the venue's own language and machine translations (see `available_languages`).
Try in playground →
post/wolt/v1/items2 credits

Read products/dishes of one venue by item id — e.g. ids from `search` (item_id + venue_slug) or `menu`. Up to 50 ids in one call (Wolt's own multi-id read). Ids Wolt does not currently sell come back in `not_returned`.

ParameterAllowed / rangeDescription
venuerequired—Venue slug — a `venues`/`search` row's `slug` or `venue_slug`, as is — or a wolt.com venue URL.
item_idsrequired—Wolt item ids (24 hex characters), a list or comma-separated, max 50.
language = enoptional—Catalogue language. Wolt publishes the venue's own language and machine translations (see `available_languages`).
Try in playground →
post/wolt/v1/cities3 credits

Every city Wolt operates in, with Wolt's city slug, country and centre coordinates — the values `city` accepts. Filter by country.

ParameterAllowed / rangeDescription
countryoptional—ISO 3166 alpha-2 or alpha-3 country code (FI, DE, PL, IL, KZ …).
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.