Talabat Restaurants Scraper avatar

Talabat Restaurants Scraper

Pricing

Pay per event

Go to Apify Store
Talabat Restaurants Scraper

Talabat Restaurants Scraper

Extract Talabat restaurant listings for assortment and competitor monitoring.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor 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?

FieldTypeMeaning
restaurantIdintegerTalabat restaurant identifier
namestringPublic restaurant name
slugstringTalabat URL slug
cuisinesstring[]Cuisine labels from the listing
logoUrlstring or nullPublic logo image URL when available
restaurantUrlstringPublic Talabat restaurant page
countrystringTalabat market slug
sourcePageUrlstringListing page that supplied the record
sourcePageintegerPagination page number
scrapedAtstringISO 8601 collection timestamp

How to scrape Talabat restaurants

  1. Open the Actor input page.
  2. Select one or more countries, or paste country listing URLs.
  3. Optionally enter a cuisine filter such as Indian or Pizza.
  4. Choose the maximum number of records and pages per country.
  5. Click Start.
  6. 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 restaurantsApproximate 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 ApifyClient
client = 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().items
print(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.

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.