Shopify Product Search Scraper
Pricing
from $5.00 / 1,000 shopify product search results
Shopify Product Search Scraper
Search one public Shopify storefront by product keyword for discovery, price checks, and ranked result exports. Returns price, availability, variants, image, source URL, and search position. $0.005 per result + $0.00005 start.
Pricing
from $5.00 / 1,000 shopify product search results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
Search a known public Shopify storefront by product keyword and receive one normalized product row for each result found. This focused Actor works well for store-specific product discovery, in-store price checks, and ranked search exports.
Use it when you know the store and want to answer a query such as “Which coffee products does this brand show for coffee?” or “What running shoes currently match this store’s search?” Each product row includes its public URL, title, availability, price range, sale signal, image, vendor, type, variant count, and the result position observed by this run.
For a full catalog, collections, customer reviews, or merchant contact data, pair this search workflow with the Shopify All-in-One Scraper. This Actor’s public storefront data surface keeps store-specific search, catalog research, and merchant research as clear separate workflows.
Cost
The Actor uses Pay per event pricing: a small start event plus one event for each validated product row saved to the dataset. The configured product-search event is $0.005 per result; Apify platform usage is charged separately. Set maxResults to make the event-charge ceiling predictable, and consult the live Pricing tab for the effective current price.
Input
Provide a public Shopify storefront URL and the product phrase you want to search. maxResults is the hard result and billing cap; maxPages controls how many public storefront search pages are inspected after the predictive-search route.
{"storeUrl": "https://www.deathwishcoffee.com","searchQuery": "coffee","maxResults": 20,"maxPages": 3,"includeSoldOut": false}
includeSoldOut defaults to false. Set it to true when unavailable products are useful to your research. Availability remains null only where the public Shopify response does not expose it.
Output
The default dataset contains one product result per row. Every row includes source and freshness fields so it can be checked or reused in a spreadsheet, database, or agent workflow.
| Field | Meaning |
|---|---|
title, productUrl, handle | Public product identity and canonical product page. |
position, searchQuery | First-seen position for the supplied store query. |
priceMin, priceMax, compareAtPriceMin, isOnSale | Public product pricing and an explicit sale calculation when compare-at pricing exists. |
available, variantCount, sku | Storefront availability and public variant signals. |
vendor, productType, tags, imageUrl | Product classification and merchandising fields exposed by Shopify. |
dataSource, sourceUrl, scrapedAt | Retrieval route, exact public endpoint, and collection time. |
Representative output shape:
{"productId": "7420854370359","handle": "power-surge-coffee","title": "Power Surge Coffee","productUrl": "https://www.deathwishcoffee.com/products/power-surge-coffee","storeDomain": "www.deathwishcoffee.com","searchQuery": "coffee","position": 1,"available": true,"vendor": "Death Wish Coffee","productType": "Coffee","priceMin": 19.99,"priceMax": 84.99,"currency": null,"isOnSale": false,"variantCount": 3,"dataSource": "storefrontSearch","sourceUrl": "https://www.deathwishcoffee.com/products/power-surge-coffee.js","scrapedAt": "<ISO-8601 collection timestamp>"}
currency is only populated when the public storefront search page exposes a three-letter currency value. A null currency is intentional; the Actor does not guess currency from symbols or prices.
How it works
The Actor first calls Shopify’s public predictive-search endpoint for fast, query-relevant product candidates. It also inspects the selected storefront’s public /search pages to expand beyond predictive results, then reads the public product JSON endpoint for each bounded candidate. This produces richer product data while retaining a store-specific search workflow.
Public Shopify themes and merchant search settings differ. A valid query with no public match is recorded as VALID_EMPTY, while useful rows from an interrupted retrieval are retained with a PARTIAL outcome. OUTPUT and RUN_SUMMARY make the terminal outcome and source provenance available for dataset readback.
Workflow: from search to price decision
A merchandising analyst starts with a known competitor store and a shopper-style phrase such as coffee. The Actor then returns the store’s query-matched products with prices, sale signals, availability, and source URLs. Next, the analyst exports the dataset, compares the price range with a prior run, and passes the selected product URLs into a catalog or pricing-monitoring workflow. This keeps the decision grounded in the public search result instead of a broad catalog snapshot.
API example
Set your Apify token in an environment variable and start a bounded run:
curl -X POST \"https://api.apify.com/v2/acts/khadinakbar~shopify-product-search-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"storeUrl": "https://www.deathwishcoffee.com","searchQuery": "coffee","maxResults": 20,"maxPages": 3,"includeSoldOut": false}'
After completion, read the default dataset through the actor response or Apify Console. For agent use, the hosted Apify MCP configurator exposes the same input schema and dataset fields.
Agent prompt card
Search
https://www.deathwishcoffee.comforcoffee. Return up to 20 currently available products with title, price range, sale status, variant count, product URL, and source timestamp. Treat a null currency as an unavailable storefront metadata field.
Best results and scope
- Start with a concise shopper-style product phrase, such as
coffee,running shoes, orwireless charger. - Keep
maxResultsandmaxPageslow for first checks, then increase them only when the storefront has more matches to inspect. - Product ordering reflects the public routes available during the run. Merchant search settings, localization, A/B tests, and theme markup shape the products a storefront returns.
- This Actor uses public storefront routes for a store-specific product-search workflow. Catalog, checkout, and marketplace research remain distinct workflows with their own appropriate data sources.
- Use the
dataSource,sourceUrl, andscrapedAtfields when comparing a product across runs.
Builder's note
I designed this Actor after separating search-led product research from generic Shopify catalog extraction in this portfolio. My goal was a clear workflow: a known store and one query in, query-matched product records out. That boundary keeps the input small, the cost cap legible, and the result practical for search-led product research.
Responsible use
Collect public storefront data in line with the store’s terms, applicable law, and the privacy obligations that apply to your workflow. Keep account, checkout, and customer-information workflows within properly authorized systems.