Shop.app research
Search, browse, and analyze products, variants, shops, and reviews on
Shop.app — Shopify's cross-store shopping/discovery app (not to be confused
with an individual Shopify storefront) — all as normalized JSON from the
Crawlora API, with no HTML scraping.
When to use this skill
- "Find X on Shop.app" / "search Shop.app for running shoes."
- "What's the price range / how many shops sell X on Shop.app?"
- "Look up this Shop.app shop" / "list a merchant's Shop.app catalog or collections."
- "Pull reviews for this Shop.app product or shop."
- "Get variants / options / availability for this Shop.app product."
- Cross-store discovery, market-snapshot, or merchant due-diligence research on Shop.app.
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
- Set
CRAWLORA_API_KEY in the environment before running the helper.
- The helper reads
CRAWLORA_API_KEY from the environment and sends requests to https://api.crawlora.net/api/v1. Missing/invalid key → 401.
How it works
- Search / discover —
/shop-app/search (query, plus deep_search,
in_stock, on_sale, limit up to 50) to find candidate products by
keyword. /shop-app/suggestions returns autocomplete query ideas, and
/shop-app/categories lists public product categories to browse instead
of searching.
- Market snapshot —
/shop-app/analysis runs the same search but
returns an aggregated snapshot (price ranges, currencies, sale counts,
discounts, top shops) instead of raw listings — use it for "what's the
price range for X on Shop.app" without paginating results yourself.
- Product detail —
/shop-app/products/{id} for normalized product
details (add variant_id to pin a specific variant).
- Variants —
/shop-app/products/{id}/variant for the exact variant
matching selected_options, or /shop-app/products/{id}/variants for
adjacent variants, to compare options and prices.
- Related products & reviews —
/shop-app/products/{id}/related and
/shop-app/products/{id}/reviews.
- Resolve the shop —
/shop-app/products/{id}/shop finds the merchant
behind a product; /shop-app/shops/{handle} fetches the merchant profile
directly, and /shop-app/shops/{handle}/locations lists retail locations.
- Browse a shop's catalog —
/shop-app/shops/{handle}/products
(sortable via sort_by) or /shop-app/shops/{handle}/collections/{collection_id}/products
for one collection; /shop-app/shops/{handle}/typeahead searches inside a
single shop; /shop-app/shops/{handle}/reviews pulls merchant reviews.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Search Shop.app (GET, key=value params):
scripts/crawlora.sh /shop-app/search query="running shoes" in_stock=true | jq '.'
# Product detail:
scripts/crawlora.sh /shop-app/products/12345 | jq '.data'
# Browse a shop's catalog, sorted low-to-high:
scripts/crawlora.sh /shop-app/shops/some-shop-handle/products sort_by=PRICE_LOW_TO_HIGH | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
Endpoint reference
See reference/endpoints.md for every Shop.app
endpoint this skill uses (method, path, params, description).
Examples
- Market snapshot before buying:
/shop-app/analysis with query="wireless earbuds"
and on_sale=true to see the current price range, discounts, and top
shops selling discounted units.
- Merchant due-diligence:
/shop-app/shops/{handle} +
/shop-app/shops/{handle}/reviews to summarize a Shop.app merchant's
profile and recent reviews before recommending it.
- Collection audit:
/shop-app/shops/{handle}/products (paginate via
limit) or a specific /shop-app/shops/{handle}/collections/{collection_id}/products
to list a merchant's catalog with prices and flag items above/below a
threshold.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo.
Key at https://crawlora.net.
- Public data only — public Shop.app product/shop pages; respect Shop.app's terms.
- Security: key lives in
CRAWLORA_API_KEY only — never hardcode, query-param, or commit it.
- Results are limited, not offset-paginated —
search, analysis, related,
reviews, shop/collection products, and suggestions/typeahead all cap
out via limit (each endpoint has its own max, from 20 up to 100 for variants).
selected_options is a JSON object, not flat key=value pairs — pass it
as a JSON string (e.g. selected_options='{"Color":"Black"}'), or use
repeated option.Name=value / option[Name]=value filters instead.
sort_by on shop/collection product listings only accepts MOST_SALES,
PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, or RELEVANCE.
1---2name: shop-app-research3description: Researches products, variants, shops, and reviews on Shop.app — Shopify's own cross-store shopping/discovery app, distinct from individual Shopify storefronts — using the Crawlora API, returning clean JSON. Use when the user asks to find a product across Shop.app merchants, compare shop offerings, pull Shop.app reviews, or browse a Shop.app merchant's catalog/collections — instead of scraping Shop.app pages.4---56# Shop.app research78Search, browse, and analyze products, variants, shops, and reviews on9Shop.app — Shopify's cross-store shopping/discovery app (not to be confused10with an individual Shopify storefront) — all as normalized JSON from the11Crawlora API, with no HTML scraping.1213## When to use this skill1415- "Find X on Shop.app" / "search Shop.app for running shoes."16- "What's the price range / how many shops sell X on Shop.app?"17- "Look up this Shop.app shop" / "list a merchant's Shop.app catalog or collections."18- "Pull reviews for this Shop.app product or shop."19- "Get variants / options / availability for this Shop.app product."20- Cross-store discovery, market-snapshot, or merchant due-diligence research on Shop.app.2122## Setup (one-time)2324- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).25- Set `CRAWLORA_API_KEY` in the environment before running the helper.26- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.2728## How it works29301. **Search / discover** — `/shop-app/search` (`query`, plus `deep_search`,31 `in_stock`, `on_sale`, `limit` up to 50) to find candidate products by32 keyword. `/shop-app/suggestions` returns autocomplete query ideas, and33 `/shop-app/categories` lists public product categories to browse instead34 of searching.352. **Market snapshot** — `/shop-app/analysis` runs the same search but36 returns an aggregated snapshot (price ranges, currencies, sale counts,37 discounts, top shops) instead of raw listings — use it for "what's the38 price range for X on Shop.app" without paginating results yourself.393. **Product detail** — `/shop-app/products/{id}` for normalized product40 details (add `variant_id` to pin a specific variant).414. **Variants** — `/shop-app/products/{id}/variant` for the exact variant42 matching `selected_options`, or `/shop-app/products/{id}/variants` for43 adjacent variants, to compare options and prices.445. **Related products & reviews** — `/shop-app/products/{id}/related` and45 `/shop-app/products/{id}/reviews`.466. **Resolve the shop** — `/shop-app/products/{id}/shop` finds the merchant47 behind a product; `/shop-app/shops/{handle}` fetches the merchant profile48 directly, and `/shop-app/shops/{handle}/locations` lists retail locations.497. **Browse a shop's catalog** — `/shop-app/shops/{handle}/products`50 (sortable via `sort_by`) or `/shop-app/shops/{handle}/collections/{collection_id}/products`51 for one collection; `/shop-app/shops/{handle}/typeahead` searches inside a52 single shop; `/shop-app/shops/{handle}/reviews` pulls merchant reviews.5354Full endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).5556## Calling the API5758```sh59# Search Shop.app (GET, key=value params):60scripts/crawlora.sh /shop-app/search query="running shoes" in_stock=true | jq '.'6162# Product detail:63scripts/crawlora.sh /shop-app/products/12345 | jq '.data'6465# Browse a shop's catalog, sorted low-to-high:66scripts/crawlora.sh /shop-app/shops/some-shop-handle/products sort_by=PRICE_LOW_TO_HIGH | jq '.'67```6869Use `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.707172## Endpoint reference7374See [`reference/endpoints.md`](reference/endpoints.md) for every Shop.app75endpoint this skill uses (method, path, params, description).7677## Examples7879- **Market snapshot before buying:** `/shop-app/analysis` with `query="wireless earbuds"`80 and `on_sale=true` to see the current price range, discounts, and top81 shops selling discounted units.82- **Merchant due-diligence:** `/shop-app/shops/{handle}` +83 `/shop-app/shops/{handle}/reviews` to summarize a Shop.app merchant's84 profile and recent reviews before recommending it.85- **Collection audit:** `/shop-app/shops/{handle}/products` (paginate via86 `limit`) or a specific `/shop-app/shops/{handle}/collections/{collection_id}/products`87 to list a merchant's catalog with prices and flag items above/below a88 threshold.8990## Notes & limits9192- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.93 Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).94- **Public data only** — public Shop.app product/shop pages; respect Shop.app's terms.95- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.96- Results are limited, not offset-paginated — `search`, `analysis`, `related`,97 `reviews`, `shop/collection products`, and `suggestions`/`typeahead` all cap98 out via `limit` (each endpoint has its own max, from 20 up to 100 for variants).99- **`selected_options` is a JSON object**, not flat key=value pairs — pass it100 as a JSON string (e.g. `selected_options='{"Color":"Black"}'`), or use101 repeated `option.Name=value` / `option[Name]=value` filters instead.102- `sort_by` on shop/collection product listings only accepts `MOST_SALES`,103 `PRICE_LOW_TO_HIGH`, `PRICE_HIGH_TO_LOW`, or `RELEVANCE`.