Talabat Restaurants Scraper
Pricing
Pay per event
Talabat Restaurants Scraper
Extract Talabat restaurant listings for assortment and competitor monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Collect structured Talabat restaurants records from public country directories for assortment research, cuisine coverage analysis, and repeatable competitor monitoring.
The Actor extracts restaurant IDs, names, slugs, cuisine labels, logos, public restaurant URLs, market codes, and listing-page provenance. It follows Talabat's public country pagination without requiring a Talabat account, browser, location selection, or proxy.
What can you do with Talabat Restaurants Scraper?
- Build a current restaurant directory for a supported Talabat market.
- Compare cuisine assortment across countries.
- Take scheduled snapshots and detect additions or removals downstream.
- Seed spreadsheets, BI dashboards, databases, and enrichment pipelines.
- Preserve source-page URLs and timestamps for review and audit.
This Actor focuses on country restaurant listings. Location-gated menus, prices, ratings, delivery fees, availability, and item options are outside its scope.
Who is this Actor for?
Food-delivery analysts can compare market assortment and cuisine coverage.
Restaurant groups can monitor whether brands appear in public Talabat directories.
Market researchers can create country-level restaurant samples with stable Talabat IDs.
Data teams can schedule repeatable snapshots and compare them in a warehouse.
Developers can consume clean JSON instead of maintaining Talabat page parsing.
Why use this Talabat restaurant extractor?
The Actor uses lightweight HTTP requests and parses Talabat's structured page data. That keeps runs smaller and faster than browser automation for this public-directory workflow.
It supports nine Talabat markets:
- United Arab Emirates (
uae) - Kuwait (
kuwait) - Qatar (
qatar) - Bahrain (
bahrain) - Oman (
oman) - Egypt (
egypt) - Jordan (
jordan) - Iraq (
iraq) - Saudi Arabia (
ksa)
Results are deduplicated by country and Talabat restaurant ID. Limits are applied across all selected countries.
What data does it extract?
| Field | Type | Meaning |
|---|---|---|
restaurantId | integer | Talabat restaurant identifier |
name | string | Public restaurant name |
slug | string | Talabat URL slug |
cuisines | string[] | Cuisine labels from the listing |
logoUrl | string or null | Public logo image URL when available |
restaurantUrl | string | Public Talabat restaurant page |
country | string | Talabat market slug |
sourcePageUrl | string | Listing page that supplied the record |
sourcePage | integer | Pagination page number |
scrapedAt | string | ISO 8601 collection timestamp |
How to scrape Talabat restaurants
- Open the Actor input page.
- Select one or more countries, or paste country listing URLs.
- Optionally enter a cuisine filter such as
IndianorPizza. - Choose the maximum number of records and pages per country.
- Click Start.
- Open the default dataset and export JSON, CSV, Excel, XML, or another supported format.
A safe first run is:
{"countries": ["uae"],"maxItems": 30,"maxPagesPerCountry": 2}
Input parameters
countries
An optional list of supported Talabat market slugs. If neither countries nor start URLs are provided, the Actor uses uae.
startUrls
Optional Talabat country restaurant-listing URLs. For example:
{"startUrls": [{ "url": "https://www.talabat.com/kuwait/restaurants" }]}
A ?page=3 query can choose the first page. Other domains, restaurant detail URLs, and unsupported countries fail validation.
cuisine
Optional case-insensitive text matched against the listing's cuisine labels. Filtering may require scanning several pages to find enough matching records.
maxItems
Maximum matching records saved across the whole run. Range: 1 to 50,000. Default: 100.
maxPagesPerCountry
Safety limit for pagination in each market. Range: 1 to 1,000. Default: 20.
Output example
A current public UAE listing produces records shaped like this:
{"restaurantId": 328,"name": "Johnny Rockets","slug": "johnny-rockets","cuisines": ["Kerala", "Indian", "Pakistani", "South indian", "Curry", "Biryani"],"logoUrl": "https://images.deliveryhero.io/image/talabat/restaurants/Johnny-Rockets-Logo_636004641354274810.jpg","restaurantUrl": "https://www.talabat.com/uae/johnny-rockets","country": "uae","sourcePageUrl": "https://www.talabat.com/uae/restaurants?page=1","sourcePage": 1,"scrapedAt": "2026-08-02T05:10:00.000Z"}
Names, cuisines, images, and directory membership can change because Talabat controls the source.
How much does it cost to extract Talabat restaurants?
The Actor uses pay-per-event pricing: one start event per run plus one item event per saved restaurant. You are not charged an item event for duplicates, malformed source rows, filtered-out restaurants, or failed requests.
The six item-price tiers decrease with account tier. At the BRONZE tier, the rate is $0.0008 per restaurant, plus a $0.00005 run start event. The live Apify pricing panel is authoritative if the displayed price differs.
Example BRONZE item charges:
| Saved restaurants | Approximate item charge |
|---|---|
| 30 | $0.024 |
| 100 | $0.080 |
| 1,000 | $0.800 |
Compute usage is included under Apify's pay-per-event model. Set maxItems and maxPagesPerCountry to control run scope.
Assortment monitoring workflow
For recurring monitoring, select the same countries and limits on every run. Schedule the Actor daily or weekly, then compare datasets by the stable key country + restaurantId.
Typical change rules include:
- key exists today but not in the previous snapshot: possible addition;
- key existed previously but not today: possible removal or temporary omission;
- cuisine array changed: category or positioning update;
- name, slug, or logo changed: public listing metadata update.
The Actor produces snapshots; it does not store historical diffs or send alerts itself.
Cuisine coverage workflow
Use cuisine for a focused sample:
{"countries": ["kuwait"],"cuisine": "Indian","maxItems": 100,"maxPagesPerCountry": 20}
The match is case-insensitive and checks each cuisine label. It is a text filter, not a semantic cuisine classifier.
Export and integrations
The default dataset works with Apify integrations and standard dataset export endpoints.
Useful destinations include:
- Google Sheets for quick review;
- Airtable for operational tracking;
- BigQuery or Snowflake for historical comparison;
- webhooks for triggering a downstream diff job;
- Python or JavaScript pipelines for enrichment;
- CSV and Excel for analysts.
Run through the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~talabat-restaurant-listings-scraper/runs?token=YOUR_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"countries":["uae"],"maxItems":30,"maxPagesPerCountry":2}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/talabat-restaurant-listings-scraper').call({countries: ['uae', 'qatar'],maxItems: 100,maxPagesPerCountry: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/talabat-restaurant-listings-scraper").call(run_input={"countries": ["bahrain"],"maxItems": 50,"maxPagesPerCountry": 3,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Claude Code
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/talabat-restaurant-listings-scraper"
Claude Desktop, Cursor, and VS Code
Claude Desktop, Cursor, and VS Code clients can use this HTTP MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/talabat-restaurant-listings-scraper"}}}
Example prompts:
- “Extract 30 Talabat UAE restaurant records and summarize cuisine coverage.”
- “Collect Indian restaurant listings from Talabat Kuwait.”
- “Create a snapshot of UAE, Qatar, and Bahrain restaurant assortment.”
Reliability and limits
Talabat controls its pages and may change markup, structured data, pagination, or country availability. The Actor retries transient connection errors, HTTP 429, and server errors up to three times with bounded backoff.
A missing or malformed structured listing fails the run instead of silently emitting guessed data. Deterministic HTTP 4xx responses are not retried blindly.
Country directory records do not prove that a restaurant currently delivers to a specific address. Results can include brands or branches whose availability varies by location.
Responsible use and legality
This Actor collects public country-directory metadata. You are responsible for ensuring your use complies with Talabat's terms, applicable law, database rights, privacy rules, and your contractual obligations.
Avoid collecting or combining data to identify individuals. Use reasonable schedules and limits. Do not use the output for spam, deception, or unauthorized access.
Talabat is a trademark of its owner. This Actor is an independent data-extraction tool and is not affiliated with or endorsed by Talabat.
Troubleshooting
Why did I receive fewer results than maxItems?
The selected page limit may have ended first, the cuisine filter may match only a few records, the source may have ended, or duplicates may have been removed. Increase maxPagesPerCountry carefully when using a narrow filter.
Why was my start URL rejected?
Only public country listing URLs in the form https://www.talabat.com/{country}/restaurants are accepted. Use countries for the simplest setup.
Why did the run fail with a structured-data error?
Talabat may have changed or temporarily withheld the public listing. Retry later and inspect the log. The Actor fails closed rather than returning incomplete placeholder rows.
Do I need a proxy or Talabat account?
No. The supported country-directory workflow currently works with anonymous direct HTTP requests. The Actor does not expose an automatic paid-proxy fallback.
FAQ
Does it scrape menus and prices?
No. The minimum product is restaurant listing metadata. Menus and location-specific availability are intentionally excluded.
Can I monitor new restaurants?
Yes. Schedule identical snapshot inputs and compare country + restaurantId with a previous dataset in your own workflow.
Can I search a city or delivery address?
No. This Actor scans public country directories. It does not claim city-complete or address-specific delivery coverage.
Are the restaurant URLs guaranteed to remain stable?
No. Talabat can change slugs or remove pages. Use the source ID and country as the more stable comparison key.
Can I export to a spreadsheet?
Yes. Download the default dataset as CSV or Excel, or connect an Apify integration.
Related Automation Labs Actors
For cross-platform restaurant research, consider:
Choose this Actor when your required source is Talabat's public country restaurant directory and the listing-level fields above satisfy the job.