MasGusto Grocery Scraper
Pricing
from $3.50 / 1,000 results
MasGusto Grocery Scraper
Unofficial MasGusto scraper for ZIP-specific prices, availability, discounts, images, and optional product details. Not affiliated with MasGusto.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Nanas Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
Overview
Scrape ZIP-specific grocery product data from MasGusto, including prices, availability, promotions, images, and optional product details. The Actor supports direct category and product URLs in English, Spanish, and Portuguese.
MasGusto inventory and pricing vary by delivery area. Before extracting data, the Actor applies the requested five-digit US ZIP code and verifies that the same ZIP appears in the site header. If the ZIP cannot be confirmed, the run stops instead of returning data for the wrong location.
Unofficial notice: This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by MasGusto. All product names and trademarks belong to their respective owners.
Features
- Scrape MasGusto category pages or direct product URLs
- Collect ZIP-specific prices, promotions, and availability
- Optionally visit product pages for brand, origin, allergens, descriptions, images, review aggregates, and delivery information
- Support MasGusto's English (
en), Spanish (es), and Portuguese (pt) locales - Remove duplicate products across multiple start URLs
- Control output volume and crawl requests with configurable limits
- Export results in JSON, CSV, Excel, XML, and other formats supported by Apify
- Use the Actor through Apify Console, API, Python, or JavaScript integrations
Use Cases
- Monitor — Monitor grocery prices, discounts, and availability for a specific delivery ZIP code
- Compare — Compare regional product pricing and inventory over time
- Aggregate — Build structured grocery product catalogs for analysis or enrichment
- Track — Track new products, promotions, and sold-out items
- Research — Analyze brands, product origins, SNAP eligibility, labels, and category coverage
Supported URLs
The Actor accepts MasGusto category and product URLs under the following locales:
https://www.masgusto.com/en/category/...https://www.masgusto.com/es/category/...https://www.masgusto.com/pt/category/...https://www.masgusto.com/en/product/...https://www.masgusto.com/es/product/...https://www.masgusto.com/pt/product/...
Search, login, account, cart, favorites, and other URL types are not supported. The crawler respects robots.txt, and search-result pages are intentionally outside its scope.
Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
startUrls | array (required) | MasGusto category or product URLs to scrape. | New-products category |
zipCode | string (required) | Five-digit US ZIP code used for regional pricing, availability, and delivery information. | — |
maxItems | integer | Maximum number of unique products to store across the entire run. Use 0 for unlimited. | 10 |
maxRequestsPerCrawl | integer | Maximum number of category and product page requests processed during the run. | 20 |
scrapeProductDetails | boolean | Visit individual product pages for additional details. This is slower and uses more resources. | false |
Input Example
{"startUrls": [{"url": "https://www.masgusto.com/en/category/new?filter_sub_category=new"}],"zipCode": "94102","maxItems": 10,"maxRequestsPerCrawl": 20,"scrapeProductDetails": false}
Output Example
Each result represents one unique MasGusto product. Prices are returned as JSON numbers in USD, and product URLs are stored as canonical URLs without tracking query parameters.
{"productId": "54692","name": "Fresh Young Jicama","productUrl": "https://www.masgusto.com/en/product/Fresh-Young-Jicama/54692","sourceUrl": "https://www.masgusto.com/en/category/new?filter_sub_category=new","locale": "en","zipCode": "94102","scrapedAt": "2026-08-06T18:00:00.000Z","currency": "USD","price": 9.99,"basePrice": null,"unitPrice": null,"discountPercent": null,"availability": "available","soldCountText": null,"minOrderQuantity": null,"maxOrderQuantity": null,"imageUrl": "https://example.com/product.jpg","categoryId": null,"parentCategoryId": null,"labels": [],"tags": [],"snapEligible": false,"detailStatus": "not_requested"}
Prices and availability in this example are illustrative and may change by ZIP code and crawl time.
When scrapeProductDetails is enabled, successful results can additionally include:
subtitlebrandoriginunitQuantityallergensdescriptionTextimageUrlsreviewCountreviewHighlightsdeliveryMessage
The detailStatus field is one of:
not_requested— Product detail scraping was disabledok— Product details were collected and merged successfullyfailed— Basic product data was preserved after a detail-page failure or request-limit stop
Only aggregate review counts and highlights provided by the website are collected. Individual reviewer names and review bodies are not collected.
Pricing
This Actor uses pay-per-event pricing:
- $0.0035 per result
- $3.50 per 1,000 results
- $0.05 per GB of allocated memory when the Actor starts
- The Actor is limited to 4 GB, so the start charge is at most $0.20 per run
Platform usage is included in the event prices, and there is no monthly Actor fee. You can set a maximum charge for each run in Apify Console or through the API. Always check the Actor's Pricing tab for the current price before running it.
How to Run
Apify Console
- Open the MasGusto Grocery Scraper Actor page.
- Add one or more supported category or product URLs.
- Enter the five-digit US ZIP code you want to verify.
- Set the result and request limits.
- Enable product details only when you need the additional fields.
- Click Start and wait for the run to finish.
- Open the Results tab and download the dataset in your preferred format.
API
Replace YOUR_USERNAME and YOUR_API_TOKEN with your Apify username and API token.
curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~masgusto-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.masgusto.com/en/category/new?filter_sub_category=new"}],"zipCode": "94102","maxItems": 10,"maxRequestsPerCrawl": 20,"scrapeProductDetails": false}'
Python SDK
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_USERNAME/masgusto-scraper").call(run_input={"startUrls": [{"url": "https://www.masgusto.com/en/category/new?filter_sub_category=new"}],"zipCode": "94102","maxItems": 10,"maxRequestsPerCrawl": 20,"scrapeProductDetails": False,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Integration
Connect MasGusto Grocery Scraper with your existing tools and workflows:
- API access — Run the Actor and retrieve datasets through the Apify API
- Webhooks — Get notified when a run succeeds or fails
- Scheduling — Monitor prices and availability on a recurring schedule
- Zapier / Make — Send results to spreadsheets, databases, and other applications
- Python / JavaScript SDKs — Integrate the Actor into your own applications
- Dataset exports — Download results as JSON, CSV, Excel, XML, RSS, or JSONL
Data Accuracy and Limitations
- Prices, inventory, promotions, delivery messages, and catalogs vary by ZIP code and crawl time.
- MasGusto may change its page structure or data fields without notice, which can temporarily affect extraction.
- The Actor uses one persistent browser session with concurrency set to
1to preserve ZIP-specific cookies. - A ZIP code that cannot be applied and confirmed causes the run to fail before regional product data is stored.
- Multiple start URLs share one global product-ID deduplication set and one global
maxItemslimit. - Login, CAPTCHA bypass, proxy circumvention, search crawling, and cart or favorites modification are outside the Actor's scope.
Always verify critical pricing and inventory decisions against the source website.