Starbucks Scraper
Pricing
from $3.50 / 1,000 results
Go to Apify Store

Starbucks Scraper
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer

Fortuitous Pirate
Maintained by Community
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Starbucks Store & Menu Scraper
Scrapes Starbucks store locations and menu items with prices and nutritional info.
API Source
- Stores: https://www.starbucks.com/bff/locations
- Menu: https://www.starbucks.com/menu
- API Key: Not required
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | enum | "stores" | What to scrape: "stores", "menu", or "both" |
location | string | "Seattle, WA" | City, ZIP code, or address for store search |
radius | integer | 10 | Search radius in miles (1-100) |
menuCategory | enum | "" | Menu category: "" (all), "drinks", "food", "at-home-coffee", "merchandise" |
limit | integer | 50 | Maximum number of items to return (max 500) |
proxyConfiguration | object | { useApifyProxy: true } | Proxy settings |
Example Input
{"mode": "stores","location": "New York, NY","radius": 5,"limit": 100}
{"mode": "menu","menuCategory": "drinks","limit": 200}
{"mode": "both","location": "Los Angeles, CA","radius": 10,"menuCategory": "food","limit": 50}
Output
Store Output Fields
| Field | Type | Description |
|---|---|---|
type | string | Always "store" |
storeNumber | string | Unique store identifier |
name | string | Store name |
address.street | string | Street address line 1 |
address.street2 | string | Street address line 2 |
address.city | string | City |
address.state | string | State/province code |
address.postalCode | string | ZIP/postal code |
address.country | string | Country code |
coordinates.lat | number | Latitude |
coordinates.lng | number | Longitude |
phone | string | Phone number |
hours | string/object | Operating hours |
features | array | Store features (e.g., Mobile Order, Drive Thru) |
mobileOrderEnabled | boolean | Mobile ordering available |
driveThru | boolean | Has drive-thru |
wifi | boolean | Has WiFi |
distance | number | Distance from search location |
scrapedAt | string | ISO timestamp of scrape |
Example Store Output
{"type": "store","storeNumber": "12345-67890","name": "Pike Place","address": {"street": "1912 Pike Place","street2": null,"city": "Seattle","state": "WA","postalCode": "98101","country": "US"},"coordinates": {"lat": 47.6097,"lng": -122.3422},"phone": "(206) 448-8762","hours": "Open 24 Hours","features": ["Mobile Order", "WiFi", "Drive Thru"],"mobileOrderEnabled": true,"driveThru": true,"wifi": true,"distance": 0.5,"scrapedAt": "2026-01-25T12:00:00.000Z"}
Menu Item Output Fields
| Field | Type | Description |
|---|---|---|
type | string | Always "menu_item" |
name | string | Item name |
price | string | Price (numeric value) |
calories | string | Calorie count |
image | string | Image URL |
url | string | Product page URL |
category | string | Menu category |
scrapedAt | string | ISO timestamp of scrape |
Example Menu Item Output
{"type": "menu_item","name": "Caffe Latte","price": "5.45","calories": "190","image": "https://www.starbucks.com/weblx/images/products/caffe-latte.jpg","url": "https://www.starbucks.com/menu/product/407/hot","category": "drinks","scrapedAt": "2026-01-25T12:00:00.000Z"}
Usage
Run on Apify
- Go to the actor page on Apify
- Configure input parameters
- Click "Run"
- Download results from the Dataset tab
Run Locally
# Install dependenciesnpm install# Set input in storage/key_value_stores/default/INPUT.jsonecho '{"mode": "stores", "location": "Seattle, WA"}' > storage/key_value_stores/default/INPUT.json# Runnpm start
Tech Stack
- Node.js 18+
- Apify SDK 3.x
- Crawlee 3.x
- Playwright (for menu scraping)
Notes
- Store locations use the Starbucks BFF API with geocoding via OpenStreetMap Nominatim
- Menu scraping uses Playwright to render the React-based menu pages
- Residential proxies recommended for reliable scraping
- Rate limiting is built-in with random delays between requests