Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
構造化出力
Use Crawlora's Shop.app Scraper API to collect public product, merchant, search, review, variant, category, and suggestion data without maintaining Shop.app-specific request handling, parsers, normalization, billing, and developer documentation.
SERPワークフロー
Shop.app data can support e-commerce discovery, price monitoring, merchant research, assortment tracking, review analysis, and catalog enrichment when teams need repeatable structured data instead of manual browsing.
E-commerce product intelligenceリクエストスキーマ
これらのパラメータは、稼働中の「Search Shop.app products」カタログエントリから取得しています。
| パラメータ | 型 | 必須 | 説明 | 例 |
|---|---|---|---|---|
| query | string | はい | Search query | - |
| limit | integer | いいえ | Maximum products, defaults to 20 and supports up to 50 | - |
| in_stock | boolean | いいえ | Request in-stock products | - |
| on_sale | boolean | いいえ | Request sale products | - |
| deep_search | boolean | いいえ | Enable Shop.app deep search mode | - |
JSON例
この例は稼働中のエンドポイントカタログからレンダリングされるため、ページは常にDocsおよびPlaygroundと同期しています。
{
"code": 200,
"msg": "OK",
"data": {
"query": "sneakers",
"limit": 5,
"products": [
{
"id": "8075903107261",
"variant_id": "46242960965821",
"title": "Black/Black/Gum BILLY Sport Inclusion DZ1",
"url": "https://billyfootwear.com/products/black-black-gum-billy-sport-inclusion-dz1-zipper-shoes?utm_source=shop_app",
"shop_id": "62696",
"shop_name": "BILLY Footwear",
"price": 100,
"currency": "USD",
"position": 1,
"group_title": "kids' athletic sneakers"
}
],
"groups": [
{
"title": "kids' athletic sneakers",
"query": "kids' athletic sneakers",
"products_seen": 1
}
]
}
}エンドポイントカタログ
/shop-app/searchSearches Shop.app product results using the credential-free public web search flow. Limit defaults to 20 and accepts values up to 50.
レスポンスに関する注記
- Products are deduplicated by product id and variant id. - `groups` summarizes the Shop.app expanded product groups used to produce the flattened `products` list. - Blocked pages, malformed SSE events, and non-empty searches with no parsed products return an upstream error instead of `200 []`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "sneakers", "limit": 5, "products": [ { "id": "8075903107261", "variant_id": "46242960965821", "title": "Black/Black/Gum BILLY Sport Inclusion DZ1", "url": "https://billyfootwear.com/products/black-black-gum-billy-sport-inclusion-dz1-zipper-shoes?utm_source=shop_app", "shop_id": "62696", "shop_name": "BILLY Footwear", "price": 100, "currency": "USD", "position": 1, "group_title": "kids' athletic sneakers" } ], "groups": [ { "title": "kids' athletic sneakers", "query": "kids' athletic sneakers", "products_seen": 1 } ] } } ```
MCPツール shop_app_search
/shop-app/products/{id}Returns normalized public product details from Shop.app.
レスポンスに関する注記
- Product detail parsing uses public page HTML and route data only. - Blocked pages, not-found pages, and product pages without a parsed title return typed errors. Example response: ```json { "code": 200, "msg": "OK", "data": { "product": { "id": "4596217053229", "title": "Mens Wide Fit New Balance 624V5 Black Trainers ABZORB", "shop_name": "Wide Fit Shoes UK", "price": 1076, "currency": "HKD" } } } ```
MCPツール shop_app_product
/shop-app/shops/{handle}Returns public Shop.app merchant profile details.
レスポンスに関する注記
- Collection summaries are included when discoverable on the public shop page. - Blocked pages, not-found pages, and shop pages without a parsed name return typed errors. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop": { "handle": "marcnolan", "name": "Marc Nolan", "rating": 4.7 } } } ```
MCPツール shop_app_shop
/shop-app/shops/{handle}/productsReturns public product cards from a Shop.app merchant profile. sort_by allowed values: MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, RELEVANCE.
レスポンスに関する注記
- Invalid `sort_by` values return invalid-param errors before upstream IO. - Blocked pages, malformed route data, and empty parsed products return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop_handle": "marcnolan", "sort_by": "MOST_SALES", "products": [ {"id": "4796042281039", "title": "Aiden Black Leather Combat Boots", "position": 1} ] } } ```
MCPツール shop_app_shop_products
/shop-app/analysisReturns a market snapshot derived from Shop.app search results, including price ranges, currencies, sale counts, discounts, and top shops. Limit defaults to 20 and accepts values up to 50.
レスポンスに関する注記
- `prices_by_currency` reports min, max, average, and count for each currency present in parsed products. - `discounts` is computed only from products with both `price` and `original_price`. - `top_shops` ranks shops by the number of parsed products in the analyzed result set. - Blocked pages, malformed SSE events, and non-empty searches with no parsed products return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "sneakers", "products_count": 5, "groups_count": 2, "shops_count": 3, "currencies": ["USD"], "prices_by_currency": [ { "currency": "USD", "count": 5, "min": 40, "max": 100, "average": 67.5 } ], "sale_count": 2, "discounts": { "min_percent": 20, "max_percent": 50, "average_percent": 35 }, "top_shops": [ { "shop_id": "62696", "shop_name": "BILLY Footwear", "count": 2 } ], "sampled_product_ids": ["8075903107261", "7093164834901"] } } ```
MCPツール shop_app_analysis
/shop-app/suggestionsReturns Shop.app autocomplete suggestions. Limit defaults to 10 and supports up to 20.
レスポンスに関する注記
- Suggestions can be query suggestions or shop suggestions. - Blocked pages, malformed route data, and empty parsed suggestions return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "sneakers", "limit": 2, "suggestions": [ {"text": "sneakers", "type": "query", "url": "https://shop.app/search/results?query=sneakers"} ] } } ```
MCPツール shop_app_suggestions
/shop-app/categoriesReturns public Shop.app product categories.
レスポンスに関する注記
- Category ids are normalized from Shopify product category GIDs when present. - Blocked pages, malformed route data, and empty parsed categories return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "categories": [ {"id": "1", "name": "Women", "slug": "women", "has_children": true} ] } } ```
MCPツール shop_app_categories
/shop-app/products/{id}/variantsReturns adjacent variants for a Shop.app product. selected_options must be a JSON object when provided. Repeated option filters may also be sent as option.Name=value or option[Name]=value.
レスポンスに関する注記
- Invalid `selected_options` JSON returns an invalid-param error before upstream IO. - Blocked pages, malformed route data, and empty parsed variants return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "4596217053229", "variants": [ {"id": "34761278160941", "title": "Black / 7 / 6E", "available_for_sale": true} ] } } ```
MCPツール shop_app_product_variants
/shop-app/products/{id}/variantReturns the exact public product variant matching selected options. selected_options must be a JSON object when provided. Repeated option filters may also be sent as option.Name=value or option[Name]=value.
レスポンスに関する注記
- At least one selected option is required. - Complete option sets are more reliable; incomplete combinations may return not-found. - Malformed `selected_options` returns an invalid-param error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "4596217053229", "variant": {"id": "34761278160941", "title": "Black / 7 / 6E", "available_for_sale": true} } } ```
MCPツール shop_app_product_variant
/shop-app/products/{id}/reviewsReturns public product reviews from a Shop.app product page.
レスポンスに関する注記
- Review body, rating, author, date, and variant label are returned when present. - Blocked pages and product pages with no parsed reviews return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "4596217053229", "reviews": [ {"rating": 5, "body": "Perfect fit.", "author": "Donal", "date": "December 6, 2025"} ] } } ```
MCPツール shop_app_product_reviews
/shop-app/products/{id}/relatedReturns related product cards from a public Shop.app product page.
レスポンスに関する注記
- Product cards use the same normalized shape as search results where fields are available. - Blocked pages and product pages with no parsed related products return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "4596217053229", "products": [ {"id": "5176966185005", "title": "Womens Wide Fit New Balance", "position": 1} ] } } ```
MCPツール shop_app_product_related
/shop-app/products/{id}/shopResolves the public Shop.app merchant profile for a product id.
レスポンスに関する注記
- Uses Shop.app's public product-to-shop JSON route before resolving normalized shop details. - Unknown products or products without a public shop mapping return not-found errors. - Blocked pages and malformed JSON return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "product_id": "4596217053229", "shop": {"id": "1084107", "handle": "n1r478fp0h", "name": "Wide Fit Shoes UK"} } } ```
MCPツール shop_app_product_shop
/shop-app/shops/{handle}/collections/{collection_id}/productsReturns public product cards from a Shop.app merchant collection. sort_by allowed values: MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, RELEVANCE.
レスポンスに関する注記
- Invalid `sort_by` values return invalid-param errors before upstream IO. - Blocked pages, malformed route data, and empty parsed products return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop_handle": "marcnolan", "collection_id": "292518002767", "products": [ {"id": "1372981887055", "title": "Belmont Mahogany Leather Wingtip Combat Boots", "position": 1} ] } } ```
MCPツール shop_app_collection_products
/shop-app/shops/{handle}/locationsReturns public retail locations for a Shop.app merchant profile.
レスポンスに関する注記
- Location id, name, coordinates, address, total count, and next cursor are returned when present. - Unknown shops return not-found errors. - Shops with no public retail locations return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop_handle": "marcnolan", "locations": [ {"name": "NYC", "latitude": 40.7205232, "longitude": -73.9961032, "address": {"city": "New York", "country": "US"}} ] } } ```
MCPツール shop_app_shop_locations
/shop-app/shops/{handle}/reviewsReturns public reviews for a Shop.app merchant profile.
レスポンスに関する注記
- Review body, rating, author, date, helpful count, reviewed product, total count, and next cursor are returned when present. - Unknown shops return not-found errors. - Blocked pages, malformed JSON, and responses with no parsed reviews return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop_handle": "marcnolan", "shop_id": "186720", "reviews": [ {"rating": 5, "body": "Great shoes.", "author": "Ada", "product": {"id": "8114373328975", "title": "Solana Brown Woven Leather Backstrap Clogs"}} ], "total_count": 15015 } } ```
MCPツール shop_app_shop_reviews
/shop-app/shops/{handle}/typeaheadReturns public store typeahead suggestions for a Shop.app merchant profile.
レスポンスに関する注記
- Suggestions can include terms, products, and collections. - Unknown shops return not-found errors. - Blocked pages, malformed JSON, and responses with no parsed suggestions return an upstream error. Example response: ```json { "code": 200, "msg": "OK", "data": { "shop_handle": "marcnolan", "query": "loafer", "suggestions": [ {"type": "term", "text": "loafer", "position": 1}, {"type": "product", "text": "Odell White Leather Belgian Loafer Sneakers", "id": "7438827651151", "position": 2} ] } } ```
MCPツール shop_app_shop_typeahead
マネージド実行
Crawlora wraps supported public Shop.app pages and JSON flows behind API-key protected endpoints with normalized responses, documented errors, Playground examples, and credit-based usage.
Endpoint-specific request handling for Shop.app search, product, shop, category, review, and suggestion pages
Normalized product, shop, variant, review, location, and category fields where available
Validation for enum and structured option inputs before upstream IO
Documented upstream failure behavior for blocked, malformed, not-found, or empty parsed responses
Docs and Playground pages generated from the active endpoint catalog
Credit-based usage tied to backend billing weights
自社構築との比較
スクレイピングインフラを社内で維持するか、マネージドエンドポイントを呼び出すかの判断にご活用ください。
| 要件 | 自社構築 | Crawlora |
|---|---|---|
| Endpoint coverage | Maintain separate collectors for search, products, shops, collections, reviews, variants, and suggestions. | Use documented Shop.app endpoint families from one API surface. |
| Parser maintenance | Track Shop.app route data, public JSON flows, page changes, and empty-result edge cases. | Use endpoint-specific parsers maintained behind the Crawlora API. |
| Schema normalization | Design product, shop, review, variant, and category models yourself. | Receive normalized JSON examples and schemas in Docs and Playground. |
| Input validation | Validate sort options, selected options, limits, and path identifiers in every caller. | Use documented endpoint validation and structured error behavior. |
| Usage billing | Build your own metering and pricing model. | Use credit-based endpoint weights and API-key usage tracking. |
Crawlora is not the official Shop.app, Shopify, or Shop Pay API. Crawlora provides structured public web data extraction endpoints for supported public Shop.app pages and flows. If your use case requires an official Shopify API, account-scoped commerce data, checkout, orders, or merchant administration, use Shopify's official APIs. Customers are responsible for ensuring their use complies with applicable laws, third-party rights, platform terms, and Crawlora terms.
関連API
このエンドポイントを、関連するCrawloraの検索、モニタリング、ドキュメント、料金の各ページと組み合わせて活用できます。
Add Amazon product and search result monitoring to marketplace workflows.
開くCollect eBay item, search, and seller data for resale and marketplace research.
開くConnect e-commerce research with startup and launch discovery.
開くPlan product monitoring, pricing research, catalog enrichment, and review workflows.
開くUse a marketplace-specific workflow for Amazon product monitoring.
開くReview credit-based usage for Shop.app and other marketplace endpoints.
開くShop.appのスクレイピング方法
Crawlora's Shop.app endpoints are GETs over the credential-free public Shop.app web flow. Search: /shop-app/search with query, limit (up to 50), in_stock, on_sale and deep_search, /shop-app/suggestions for autocomplete and /shop-app/analysis for a market snapshot of a query (price ranges, currencies, sale counts, discounts and top shops). Products: /shop-app/products/{id} plus its related, reviews, shop, variant and variants routes. Merchants: /shop-app/shops/{handle} plus its products, collection products, reviews, locations and typeahead routes, with sort_by values MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW and RELEVANCE. /shop-app/categories lists the public categories.
GET /shop-app/search?query=<term>&limit=50&in_stock=true for product cards, or /shop-app/analysis with the same filters for the query's price range, currency mix, sale share and top shops in one call. Use deep_search when you need more than the first page of the public flow.
GET /shop-app/products/{id} for normalized detail, /shop-app/products/{id}/variants (or /variant with selected_options as a JSON object) for the option matrix, /shop-app/products/{id}/reviews for public reviews and /shop-app/products/{id}/related for the related-product rail.
GET /shop-app/products/{id}/shop resolves the merchant from a product; GET /shop-app/shops/{handle} returns the profile, /shop-app/shops/{handle}/products the catalog (sort_by MOST_SALES for what sells), /shop-app/shops/{handle}/reviews the merchant reviews and /shop-app/shops/{handle}/locations any retail locations.
GET /shop-app/suggestions?query=<prefix> for Shop.app autocomplete, /shop-app/shops/{handle}/typeahead for suggestions inside one shop, and /shop-app/categories for the public category list.
FAQ
対応する公開検索結果ページ向けにCrawloraを評価している開発者向けの回答です。
Yes. Crawlora provides Shop.app endpoints for supported public Shop.app product, shop, search, review, category, suggestion, and variant workflows.
No. Crawlora is not the official Shop.app, Shopify, or Shop Pay API. It provides structured public web data extraction endpoints for supported public Shop.app pages and flows.
The active catalog includes product search, product detail, product variants, related products, product reviews, product-to-shop lookup, shop profile, shop products, collection products, shop locations, shop reviews, shop typeahead, categories, suggestions, and query analysis where supported.
Yes, Shop.app product and search responses can support price research and monitoring where price, original price, currency, availability, and sale fields are available in the response.
Yes. The Shop.app platform includes merchant profile, shop products, collection products, location, review, and product-to-shop endpoints where public data is available.
No. Crawlora Shop.app endpoints are for supported public Shop.app data extraction. Use official Shopify APIs for account-scoped commerce, order, checkout, or merchant administration data.
Search with Crawlora's /shop-app/search endpoint, read products with /shop-app/products/{id} and its variants, reviews and related routes, and profile merchants with /shop-app/shops/{handle} and its products and reviews routes. All are GETs over the public, credential-free Shop.app flow.
A market snapshot for a query derived from the search results: price ranges, currencies, sale counts, discount levels and the top shops, with the same in_stock, on_sale and deep_search filters as search and a limit up to 50.
Yes. the /shop-app/shops/{handle}/products endpoint accepts sort_by with MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW or RELEVANCE, plus in_stock, so best-sellers per shop are one call.
Yes. Pass selected_options as a JSON object (or repeated option.Name=value filters) to the /shop-app/products/{id}/variant endpoint for the exact variant, or /shop-app/products/{id}/variants for the adjacent ones.
The endpoints read public product and merchant pages without credentials. Collecting them for research and monitoring is generally permissible when you respect Shop's terms, rate limits and applicable law.
対象企業
Shopify Inc. · SHOP
Shop.appを運営するのはShopify Inc.(SHOP)です。CrawloraのSECエンドポイントは同じ企業のCIKを受け取るため、提出書類・財務・インサイダー取引・13F保有を上記のShop.appエンドポイントと同じAPIキーで取得できます。
カタログ内の他のShopify Inc.プラットフォーム
Guides
Read Crawlora guides and comparisons that use the Shop.app API.
Test Shop.app search in Playground, inspect the current response schema in Docs, and compare credit-based usage on the pricing page.