PedidosYa Scraper | Restaurants and Menu Prices
Pricing
from $2.20 / 1,000 results
PedidosYa Scraper | Restaurants and Menu Prices
Collect PedidosYa restaurant listings and optional menu prices from 15 Latin American country sites, including ratings, delivery fees and categories. Pay per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
20
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
PedidosYa Scraper
Collect PedidosYa restaurant listings and optional menu prices from 15 Latin American country sites as rows you can export.
- Restaurant names, ratings, delivery fees and categories.
- Separate menu rows linked to their restaurant.
- City, country, category and restaurant-URL discovery.
- Lists filtered by category or chain name.
- Pay only for the rows you receive: $3.00 per 1,000 rows on the Free plan plus a small start fee.
What does PedidosYa Scraper do?
PedidosYa Scraper collects public listings and menus from country sites such as pedidosya.cl, pedidosya.com.ar and pedidosya.com.pe. It is unofficial and is not affiliated with PedidosYa or Delivery Hero.
- Listings:
city,categoryandchainreturn restaurant rows. - Restaurant details:
restaurantaccepts a restaurant URL, ID or slug. - Several URLs:
startUrlsaccepts city-list and restaurant addresses. - Discovery:
discoverCities,discoverCountries,discoverCategoriesanddiscoverSitemapreturn navigation rows. - Menu rows:
includeMenuItemsandenrichMenusare off by default. Each added menu row is billed like any other row.
Markets: Argentina (ar), Bolivia (bo), Chile (cl), Costa Rica (cr), Dominican Republic (do), Ecuador (ec), El Salvador (sv), Guatemala (gt), Honduras (hn), Nicaragua (ni), Panama (pa), Paraguay (py), Peru (pe), Uruguay (uy) and Venezuela (ve). Availability varies by market; this list does not guarantee complete coverage.
What data can you extract from PedidosYa?
Fields vary by row type and page. Missing values can be empty or absent. Examples below illustrate the format, not a current offer.
Restaurant rows: rowType=restaurant
| Field | Description | Example |
|---|---|---|
id | Restaurant row identifier | 51946 |
partnerId | PedidosYa restaurant identifier | 51946 |
name | Restaurant name | Example Restaurant |
url | Restaurant page | https://www.pedidosya.cl/restaurantes/santiago/subway-51946-menu |
market | Country code | cl |
citySlug | City used in the address | santiago |
rating | Listed rating | 4.5 |
ratingCount | Number of ratings | 120 |
deliveryPrice | Delivery-price object, when available | null |
categories | Listed food categories | ["Pizza"] |
businessStatus | Restaurant opening state, not billing status | OPEN |
leadPhone | Public restaurant phone, when available | +1 555 0100 |
Menu rows: rowType=menuItem
| Field | Description | Example |
|---|---|---|
productId | Menu product identifier | example-product |
name | Product name | Example sandwich |
section | Menu section | Sandwiches |
finalPrice | Listed final price | 5990 |
originalPrice | Original price, if shown | 6990 |
currency | Price currency | CLP |
restaurantId | Parent restaurant identifier | 51946 |
restaurantName | Parent restaurant name | Example Restaurant |
restaurantUrl | Parent page address | https://www.pedidosya.cl/restaurantes/santiago/subway-51946-menu |
Menu rows also copy the parent city, address and location when present.
City rows: rowType=city
| Field | Description | Example |
|---|---|---|
citySlug | City address segment | lima |
name | City label | Lima |
source | Indicates page-derived or seeded discovery | discover_cities_seed |
Country rows: rowType=country
| Field | Description | Example |
|---|---|---|
market | Country code | pe |
name | Country label | Peru |
url | Country homepage | https://www.pedidosya.com.pe/ |
Category rows: rowType=category
| Field | Description | Example |
|---|---|---|
categorySlug | Category filter value | pizza |
name | Category label | Pizza |
Restaurant-URL rows: rowType=sitemap_url
| Field | Description | Example |
|---|---|---|
url | Discovered restaurant address | https://www.pedidosya.cl/restaurantes/santiago/subway-51946-menu |
vendorSlug | Restaurant address segment | subway-51946-menu |
How to scrape PedidosYa
- Open PedidosYa Scraper in Apify Console. A free Apify account is enough to try it.
- Choose
marketand fill one target, such ascitySlug. Leavemodeonauto. - Set
maxResultsto5. - Click Start and wait for the run to finish.
- Open the dataset and download JSON, CSV or Excel, or read the rows through the API.
Empty input starts a Lima, Peru example run of at most 3 rows. Changing only the market uses that market's sample city. Normal row and start charges still apply.
City listings
Fill citySlug, such as lima. Use page and maxPages to control the listing pages considered.
Restaurant details
Fill restaurantUrl, or partnerId with the matching market, or vendorSlug with citySlug. Enable includeMenuItems for separate products; otherwise the output is restaurant rows.
Category listings
Fill categorySlug, such as pizza, and optionally citySlug. Without a city, the market's sample city is used.
Chain listings
Fill chainName and optionally citySlug. Matching uses restaurant names or addresses, not a complete chain registry. Use the spelling found on PedidosYa.
Start URLs
Fill startUrls with country-site listing or restaurant addresses. Each URL has its own maxResults limit.
Discover cities
Choose discoverCities and a market to get city slugs.
Discover countries
Choose discoverCountries to list country sites. No target is needed.
Discover categories
Choose discoverCategories, a market and optionally a city to get category labels and slugs.
Discover restaurant URLs
Choose discoverSitemap and a market. Rows contain addresses, not complete restaurant details.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | Automatic selection or an explicit mode above | auto |
market | Country code | pe |
citySlug | City from a PedidosYa address | Empty; form example lima |
restaurantUrl | Full restaurant address | Empty |
partnerId | Restaurant ID | Empty |
vendorSlug | Restaurant address segment; also fill city | Empty |
categorySlug | Food category such as pizza | Empty |
chainName | Restaurant chain name | Empty |
startUrls | List of country-site URLs | Empty |
maxResults | Maximum rows per target, 1–500 | 70; form example 3 |
includeMenuItems | Include separate product rows | false |
enrichMenus | Fetch products after listings; also enable includeMenuItems | false |
maxEnrich | Maximum restaurants enriched, 0–50 | 5 |
maxMenuItemsPerRestaurant | Maximum products per restaurant, 0–200 | 20 |
maxPages | Maximum listing pages, 1–50 | 1 |
page | First listing page, 1–200 | 1 |
cursor | Previous RUN_SUMMARY.nextCursor object | Empty |
proxyCountry | Optional two-letter access-country code; normally leave empty | Follows market |
When mode=auto, the first target wins in this order: startUrls, restaurantUrl, partnerId, vendorSlug, chainName, categorySlug, citySlug. A city can accompany a restaurant, category or chain target.
City
{"market": "pe", "citySlug": "lima", "maxResults": 5}
Restaurant with products
{"market": "cl", "partnerId": "51946", "includeMenuItems": true, "maxResults": 5}
Category with menu enrichment
{"market": "pe", "citySlug": "lima", "categorySlug": "pizza", "includeMenuItems": true, "enrichMenus": true, "maxEnrich": 1, "maxResults": 5}
Chain
{"market": "ar", "citySlug": "buenos-aires", "chainName": "mcdonald", "maxResults": 5}
Start URLs
{"market": "uy", "startUrls": ["https://www.pedidosya.com.uy/restaurantes/montevideo"], "maxResults": 5}
Discover cities
{"mode": "discoverCities", "market": "uy", "maxResults": 5}
Discover countries
{"mode": "discoverCountries", "maxResults": 5}
Discover categories
{"mode": "discoverCategories", "market": "pe", "citySlug": "lima", "maxResults": 5}
Discover restaurant URLs
{"mode": "discoverSitemap", "market": "cl", "maxResults": 5}
maxItemsandlimitare aliases formaxResults. Other accepted aliases includecity,locale,vendorCodeandmenuUrl.- Unknown fields alone do not fail a run. Close misspellings can be corrected; other unknown fields are ignored with a note.
- Invalid targets stop before collection or row charges, with a message such as
INVALID_INPUT: restaurantUrl must be a PedidosYa restaurant address. The start fee can still apply. INPUT_REPORTin the run's key-value store records fields filled, corrected or ignored.INPUT_ECHOshows the resulting settings.- To continue, copy
RUN_SUMMARY.nextCursorintocursorand keep the same target settings.
Output example
Illustrative restaurant row:
{"rowType": "restaurant","itemType": "restaurant","id": "51946","partnerId": "51946","name": "Example Restaurant","market": "cl","citySlug": "santiago","url": "https://www.pedidosya.cl/restaurantes/santiago/subway-51946-menu","rating": 4.5,"ratingCount": 120,"deliveryPrice": null,"categories": ["Sandwiches"],"businessStatus": "OPEN"}
You can export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. JSON preserves nested values such as delivery-price objects.
Why use this PedidosYa scraper?
- Pay per row. Only rows written to the dataset incur row charges.
- Keep delivered rows. Rows already in the dataset remain available. A failed menu lookup can still leave restaurant rows in the result.
- Clear input errors. Messages name the field and expected format.
- Linked products. Menu rows carry their parent restaurant identifiers.
- Several inputs. Collect multiple URLs in one run.
- No proxy setup. You do not need to set up proxies.
How much does it cost to scrape PedidosYa?
The Actor uses pay-per-event pricing. The start event costs $0.005 per GB of memory, with a minimum of one event. At the default 512 MB, one start costs $0.005. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
| Platinum | $0.002 | $2.00 |
| Diamond | $0.0016 | $1.60 |
maxResultsapplies to each URL; other modes have one target. Default70; larger requests are collected in parts of at most 70 rows.- Restaurants, menu products and discovery rows all count. Menu rows share their target's limit.
- Free-plan users are limited to 10 runs of this Actor and 200 rows per run.
- The whole run is capped by Maximum cost per run (
maxTotalChargeUsdin the API).
Example: three URLs delivering 5 rows each produce 15 rows. On the Free plan at 512 MB, one start plus those rows costs 15 × $0.003 + $0.005 = $0.050.
What happens when the run timeout is too short
A slow collection can pause the run automatically. It shows ABORTED with the message “Queued on the collection backend; this run will resume automatically when results are ready (about N s).”
When results are ready, the same run resumes, reports “Resumed: delivering N rows.”, writes to the same dataset and finishes as SUCCEEDED if delivery succeeds. Already delivered rows are skipped, so they are not delivered or charged twice. You do not need to restart it yourself.
This can happen at most 3 times per run. Keep the default 3600-second timeout to reduce pauses. This does not promise recovery from every failure or a manual stop.
Synchronous endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while a run is paused. For longer collections, start asynchronously and read the dataset after SUCCEEDED, or use an ACTOR.RUN.SUCCEEDED webhook.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add this Actor to a client supporting remote MCP servers:
https://mcp.apify.com?tools=lentic_clockss/pedidosya-scraper
Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; the agent can then read rows with get-dataset-items.
Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/pedidosya-scraper with APIFY_TOKEN set.
Example prompt: “Get five PedidosYa restaurant rows for Lima, Peru. Use market pe, citySlug lima and maxResults 5; return names and ratings.”
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/pedidosya-scraper").call(run_input={"market": "pe", "citySlug": "lima", "maxResults": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/pedidosya-scraper').call({market: 'pe', citySlug: 'lima', maxResults: 5});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Over HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~pedidosya-scraper/runs with Authorization: Bearer <YOUR_APIFY_TOKEN>. After success, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json. If an SDK call returns a paused run, follow the timeout guidance above.
Integrations
Use the Actor's Integrations tab to connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or your own webhook. Use Apify Schedules for recurring runs.
En español
Este Actor recopila restaurantes y precios de menús de los sitios nacionales de PedidosYa. Elige el país en market y escribe la ciudad en citySlug; para empezar, usa maxResults con un valor de 5. También puedes indicar una dirección en restaurantUrl. Si necesitas productos del menú, activa includeMenuItems: cada producto ocupa una fila y cuenta dentro del mismo límite que el restaurante. Se cobra por las filas entregadas, además de una pequeña tarifa de inicio. Puedes descargar los resultados en Excel, CSV o JSON. La disponibilidad cambia según el país y la página; los campos que no aparecen pueden quedar vacíos.
FAQ
Is it legal to scrape PedidosYa?
This Actor targets public data. You are responsible for checking applicable site terms and data-protection law. Processing personal data requires a lawful basis; public visibility alone is not permission for every use.
Why did my run end as ABORTED?
Check the status message. If it says the run will resume automatically, wait for the same run to finish. Other aborts may be manual stops or failures; inspect the log rather than assuming automatic recovery.
How many results can I get?
Set 1–500 rows per target. Available listings, page limits, menu limits and your maximum cost may reduce the output. Free-plan runs stop at 200 rows.
Why are some fields empty?
Pages expose different details. Listings often lack full addresses, phones or menu prices. Optional fields may be empty or absent.
Are discovered cities and countries live availability checks?
No. City, country and category discovery can include predefined entries, identified by a source ending in _seed. Those rows are billed too; they do not prove that restaurants are currently available there.
Why did enabling menus return fewer restaurants?
Restaurant and menu rows share one limit. At maxResults=5, one restaurant plus four products uses all five rows. Enrichment also needs both menu switches enabled.
Can I use the global pedidosya.com address?
Use country-site addresses for restaurants. The global pedidosya.com country selector is for country discovery, not restaurant listings.
Is this an official PedidosYa product?
No. It is an independent scraper, not affiliated with PedidosYa or Delivery Hero.
Limitations
- No checkout, payment, ordering or login-only Plus pricing.
- Supported market codes do not guarantee every city or restaurant is accessible.
- Default
maxPages=1is a limited listing sample, not a city census. - Discovery rows and URL lists are not guaranteed complete or current.
- Menu products require explicit opt-in and sufficient row budget.
- Manual stopping before delivery can leave no dataset rows; only delivered rows are available for export.
- Prices and availability can change after collection.
Related scrapers
More food delivery and grocery scrapers from the same publisher:
- Grab Scraper
- iFood Scraper
- Uber Eats Scraper
- Deliveroo Scraper
- Foodora Scraper
- Foodpanda Scraper
- DoorDash Scraper
- Rappi Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.