Wolt Scraper avatar
Wolt Scraper

Pricing

Pay per event

Go to Apify Store
Wolt Scraper

Wolt Scraper

Developed by

SLASH

SLASH

Maintained by Community

Retrieves restaurant information on wolt.com. Checks which restaurant websites are alive, and crawls them for emails and social links. Filters common telemetry and template junk.

0.0 (0)

Pricing

Pay per event

0

2

2

Last modified

3 days ago

An Apify Actor that scrapes restaurant listings and detail pages from wolt.com, then optionally crawls each restaurant’s own website to discover emails and social links.

It uses HTTPX for fetching and BeautifulSoup for parsing. Wolt listings are client-rendered; the scraper extracts all restaurant links present in the initial HTML. To extend coverage, provide multiple listing URLs.

Key Features

  • Listing to detail workflow
    • Start from listing pages like https://wolt.com/en/nor/oslo/restaurants
    • Extract restaurant detail URLs such as https://wolt.com/en/nor/oslo/restaurant/chaiwala-oslo
  • Restaurant details
    • name, address, phone, website
    • emails (email1..n) and social profiles (facebook, instagram, linkedin, x, youtube, tiktok, pinterest)
  • Same-domain contact crawl
    • For restaurants with a website, visit a small number of pages (default 3) to find additional emails and socials
  • Robust parsing
    • Parse HTML, JSON-LD, and Next.js __NEXT_DATA__ for details

Input Configuration

Defined in input_schema.json.

FieldTypeDescription
start_urlsarrayWolt listing pages to start from
max_resultsintegerTotal restaurants to save across all listings (0 = no cap)
site_email_max_pagesintegerPages to visit on the restaurant website to discover contacts/socials (default 3)
timeout_secondsintegerPer-request read timeout (default 30)

Example:

{
"start_urls": [
{"url": "https://wolt.com/en/nor/oslo/restaurants"}
],
"max_results": 100,
"site_email_max_pages": 3,
"timeout_seconds": 30
}

How It Works

  1. Enqueue listing URLs.
  2. For each listing, parse the initial HTML to collect restaurant detail links.
  3. For each restaurant detail page, extract core fields from JSON-LD, Next.js data, and visible HTML.
  4. If a website exists, check availability and crawl a few internal pages to find emails and social links.
  5. Push structured results to the default dataset.

Output Example

{
"source_url": "https://wolt.com/en/nor/oslo/restaurant/chaiwala-oslo",
"name": "Chaiwala Oslo",
"address": "Examplegata 1, 0150 Oslo",
"phone": "+47 12 34 56 78",
"website": "https://example-restaurant.no",
"website_details": "ok",
"email1": "post@example-restaurant.no",
"social_facebook": "https://www.facebook.com/example",
"social_instagram": "n/a",
"social_linkedin": "n/a",
"social_x": "n/a",
"social_youtube": "n/a",
"social_tiktok": "n/a",
"social_pinterest": "n/a"
}

Notes

  • Wolt listings use infinite scroll; HTTP fetch collects what is present in the initial HTML. Provide multiple listing pages if you need broader coverage.
  • Respect local laws and terms of service. Keep concurrency and request rates reasonable.

© 2025 SLSH. All rights reserved. Copying or modifying the source code is prohibited.