Domino's Scraper — Stores, Menus, Prices & Coupons
Pricing
from $2.00 / 1,000 result rows
Domino's Scraper — Stores, Menus, Prices & Coupons
Scrape Domino's Pizza Canada + USA: store addresses, hours, delivery fees, minimum orders and wait times, full menus with store-level prices, calories and toppings, coupons, and price changes between runs. By postal/ZIP code, store ID, or all ~670 Canadian stores. No login.
Pricing
from $2.00 / 1,000 result rows
Rating
0.0
(0)
Developer
Yugenox Corp
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Domino's Scraper: Stores, Menus, Prices & Coupons (Canada + USA)
Get store-level Domino's Pizza data for Canada and the USA: every store's address, phone, hours, delivery fee, minimum order and live wait times, the full menu with that store's own prices (every size and crust), calories, toppings, product photos and the store's coupons and deals. Turn on price changes and each run tells you what went up, went down, was added or was removed since your last run.
- 🇨🇦 All ~670 Canadian stores in one run. Turn on All Canadian stores. You don't need to guess postal codes.
- 🇺🇸 US stores by ZIP code or city.
- 💲 Real store-level prices. Domino's prices differ from store to store. For example, a large hand-tossed pizza cost $12.99 in Toronto, $13.80 in Edmonton, $13.99 in Vancouver, $14.99 in Montreal and $16.99 in Nova Scotia (September 2026), and 170 of 279 menu items were priced differently between one Toronto store and one Vancouver store.
- 📈 Price tracking built in. Schedule the actor and get one row per price change.
- 🇫🇷 French menus for Canadian stores.
- No login or cookies needed. You don't have to set anything up.
What you can scrape
Row type (type) | One row per | Highlights |
|---|---|---|
store | store | address, phone, lat/lng, hours per service, open now, online ordering, delivery fee, minimum delivery order, delivery and carryout wait minutes, payment methods, time zone, store page link |
menuItem | size or crust of each product, per store | product and item names, price, price per extra topping, full price tiers, size, crust/flavour, category, calories, servings, description, default and available toppings, new-item flag, photo |
coupon | deal, per store | code, name, price, carryout/delivery validity, valid days, start and end dates, local-deal flag |
priceChange | changed price, per store | old price, new price, change, change %, increase / decrease / added / removed |
How to use it
Stores and menus near an address. Add one or more Locations:
{ "locations": ["M5V 3L9", "Vancouver, BC", "37203"], "maxStores": 3 }
Postal codes, ZIP codes and City, Province/State all work. Canadian and US locations are detected automatically. Each location returns the stores in range with the nearest first. With several locations, Max stores takes stores from each location in turn.
Every store in Canada, or in some provinces:
{ "allStores": true, "regions": ["ON", "QC"], "outputs": ["stores", "menuItems", "coupons"] }
Specific stores:
{ "storeIds": ["10497", "US:5422"], "outputs": ["stores", "menuItems", "coupons"] }
Track a few prices across the whole country (schedule it daily or weekly):
{"allStores": true,"outputs": ["priceChanges"],"variantCodes": ["14SCREEN", "12SCREEN", "CHSBREAD"],"priceHistoryName": "canada-pizza-tracker"}
The first run saves a baseline. Every later run with the same Price history name outputs only what changed.
Input
| Field | What it does |
|---|---|
locations | Postal/ZIP codes, City, Province/State, or street addresses |
storeIds | Domino's store numbers (10497, US:5422) or pizza.dominos.ca store links |
allStores | Every Canadian store (~670) |
regions | Keep only these provinces/states: codes (ON, BC, TX…) or names (Ontario, Québec, Texas) |
market | CA (default), US or both. Used for inputs that don't name a country |
outputs | Any of stores, menuItems, coupons, priceChanges (default: stores + menu items) |
productTypes | Only these menu sections: Pizza, Wings, Bread, Sides, Pasta, Dessert, Drinks… |
variantCodes | Only these item codes (e.g. 14SCREEN) |
language | en or fr (French is Canada only) |
serviceType | Carryout (stores nearby) or Delivery (stores that deliver to the address) |
includeToppings | Topping names instead of codes |
includeImages | Product photo URLs (default on) |
priceHistoryName | Keeps separate price trackers apart |
maxStores, maxItems | Limits (0 = no limit) |
maxConcurrency | Stores scraped in parallel (1–10) |
Output examples
Store
{"type": "store", "market": "CA", "storeId": "10497","street": "344 Front St W Unit 107", "city": "Toronto", "region": "ON", "postalCode": "M5V 3W7","address": "344 Front St W Unit 107, Toronto, ON M5V 3W7","latitude": 43.6434, "longitude": -79.392, "phone": "416-599-2929","isOpen": true, "isOnlineNow": true, "allowsDelivery": true, "allowsCarryout": true,"deliveryFee": 5.99, "minimumDeliveryOrder": 15,"deliveryWaitMinutesMin": 24, "deliveryWaitMinutesMax": 34,"carryoutWaitMinutesMin": 9, "carryoutWaitMinutesMax": 14,"hoursDescription": "Su-Th 10:30am-1:00am; Fr-Sa 10:30am-2:00am","driveUpCarryoutHours": "Su-Sa 4:00pm-9:00pm","currency": "CAD", "timeZone": "GMT-04:00","paymentTypes": ["Cash", "GiftCard", "CreditCard", "DoorDebit", "DoorCredit"],"storeUrl": "https://pizza.dominos.ca/Toronto-ON-10497/","menuItemCount": 279, "couponCount": 35,"scrapedAt": "2026-09-24T05:10:09.072Z"}
Menu item
{"type": "menuItem", "market": "CA", "storeId": "10497", "storeCity": "Toronto", "storeRegion": "ON","category": "Pizza > Build Your Own", "productType": "Pizza", "productName": "Pizza","variantCode": "14SCREEN", "variantName": "14\" Hand Tossed","sizeName": "Large (14\")", "flavorName": "Hand Tossed","price": 12.99, "currency": "CAD", "extraToppingPrice": 2.25,"calories": "Cals 240-520 per slice", "servings": "8 slices","defaultToppings": ["Pizza Sauce", "Cheese"],"availableOnDeliveryApps": ["UberEats", "DoorDash", "SKIP"],"imageUrl": "https://cache.dominos.com/.../larges/S_PIZZA.jpg","language": "en", "scrapedAt": "2026-09-24T05:10:09.072Z"}
Coupon
{"type": "coupon", "storeId": "10497", "storeCity": "Toronto", "couponCode": "3022","name": "1 Medium 4-Topping Pizza", "price": 11.99, "currency": "CAD","serviceMethods": ["Carryout", "Delivery"], "effectiveOn": "2018-06-11", "isStoreSpecific": true}
Price change (illustrative values)
{"type": "priceChange", "storeId": "10017", "storeCity": "Vancouver", "itemType": "menuItem","code": "14SCREEN", "name": "14\" Hand Tossed", "productType": "Pizza","changeType": "increase", "oldPrice": 12.99, "newPrice": 13.99, "change": 1, "changePercent": 7.7,"previousScrapedAt": "2026-09-17T06:00:00.000Z", "scrapedAt": "2026-09-24T06:00:00.000Z"}
The dataset has four table views: Menu prices, Stores, Coupons and Price changes. You can export any of them to CSV, Excel or JSON.
Use cases
- Competitive pricing. Compare Domino's prices by city and province against your own pizzeria or chain.
- Price monitoring. Schedule weekly runs and get alerted when menu prices or deals change.
- Market research. Map store density, delivery fees, minimum orders and opening hours across Canada.
- Menu and nutrition databases. Full menus with calories, servings and photos.
- Deal aggregators. Current coupons for each store, with service type and dates.
- Location intelligence. Coordinates, phone numbers and store pages for every Canadian Domino's.
Speed
One store with its full menu takes a few seconds. All ~670 Canadian stores take about 2 minutes with store details only, or about 4 minutes with full menus and coupons (about 215,000 rows). You pay per result row, so to keep a big run small, narrow it with Provinces / states, Product types or Item codes, or set Max rows.
FAQ
Why do prices differ between stores? Domino's stores are mostly franchised and set their own prices, so the same item can cost a dollar or more extra in another city. That is why every menu row carries the store it came from.
Why did my location return nothing? The store finder needs a location it can resolve: a full postal/ZIP code (M5V 3L9, 37203) or a city with its province/state (Toronto, ON). A bare province (ON) or a partial postal code (M5V) is too broad. For all of Canada, use All Canadian stores. Canadian cities the store finder doesn't recognise (e.g. Halifax, NS) are matched by name against the full Canadian store list automatically.
Can I crawl every US store? Not yet. For the US, use ZIP codes or cities in Locations. Each returns about 10 nearby stores.
What does extraToppingPrice mean? It is how much one extra topping adds to that item at that store, read from the item's price tiers (priceTiers). includedToppings says how many toppings the base price already includes. It is 0 at most stores. Some stores, such as those in Montreal, include one topping in the base price.
Some stores have no delivery fee or coordinates. A few stores don't publish them. Those fields are left empty rather than guessed.
How does price tracking work? When priceChanges is selected, the actor stores a compact price snapshot of each store in your Apify account under the Price history name. The next run compares against it. Snapshots cover the whole menu, so changing your filters never creates false "added" rows.
Is it legal to scrape Domino's? This Actor only collects publicly available data: store locations, opening hours and store phone numbers, menus with each store's prices, and coupons that anyone can see on Domino's website without an account. Collecting publicly available data is generally legal, but you're responsible for how you use it. You must follow privacy laws such as GDPR, PIPEDA and CCPA, as well as Domino's terms. If you're unsure, check with a lawyer. More on this: Is web scraping legal?
Does it access any private data? No. Everything comes from pages Domino's shows to any visitor without logging in. It never uses a login, never touches private or restricted accounts, and never reaches password-protected areas.