Laden-Explorer
Search Shopify stores by revenue, traffic, category, and more. MCP: Shopify-Shops suchen, Ähnliche Geschäfte anhand eines Bildes finden, list_shopify_store_filter_options.
/api/v1/store-explorerSearch Shopify stores. Body matches the Explore Shops UI (form or JSON keys).
X-API-Schlüssel on every request.Body parameters
SucheZeichenketteLandZeichenketteMerchant country ISO2. Omit, empty, or
Alle= no country filter.SortierschlüsselZeichenketteSortierrichtungZeichenketteSeiteGanzzahlSeitengrößeGanzzahlincludeWladsGanzzahlSet 0 to skip Meta ad enrichment.
curl -sS \
-X POST \
-H "X-API-Key: $WH_API_KEY" \
-H "Content-Type: application/json" \
"{origin}/api/v1/store-explorer" \
-d '{"search":"skincare","country":"US","sortingKey":"revenue_30d","sortingDirection":"desc","page":1,"pageSize":20,"includeWlads":0}'const res = await fetch(`${ORIGIN}/api/v1/store-explorer`, {
method: 'POST',
headers: {
'X-API-Key': process.env.WH_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"search": "skincare",
"country": "US",
"sortingKey": "revenue_30d",
"sortingDirection": "desc",
"page": 1,
"pageSize": 20,
"includeWlads": 0
}),
});
const data = await res.json();import os, requests
res = requests.post(
f"{ORIGIN}/api/v1/store-explorer",
headers={"X-API-Key": os.environ["WH_API_KEY"]},
json={
"search": "skincare",
"country": "US",
"sortingKey": "revenue_30d",
"sortingDirection": "desc",
"page": 1,
"pageSize": 20,
"includeWlads": 0
},
)
data = res.json(){
"data": [
{
"shopid": "glow-beauty",
"storeid": "b7963cd2df6f01b2656a02c06f5d9d58",
"domain": "glowbeauty.com",
"name": "Glow Beauty",
"monthly_visits": 412000,
"monthly_visits_historical": {
"2026-02": 380000,
"2026-03": 395000,
"2026-04": 410000,
"2026-05": 440000,
"2026-06": 425000,
"2026-07": 412000
},
"30d_rev_estimated_min": 126000,
"30d_rev_estimated_max": 204000,
"estimated_revenue": {
"daily": {
"min": 4200,
"max": 6800
},
"monthly": {
"min": 126000,
"max": 204000
}
}
}
],
"count_deferred": true,
"credits": null,
"credits_unlimited": true
}{
"success": false,
"error": "Unauthorized"
}{
"success": false,
"error": "No API credits remaining. Buy an add-on pack or wait until next monthly reset.",
"credits": {
"used": 20000,
"limit": 20000,
"remaining": 0,
"addon_remaining": 0,
"total_remaining": 0
},
"purchase": {
"url": "https://…/checkout-api-credits?credits=…"
}
}Verwendung Seitengröße in the JSON body (not Grenze — Grenze is not remapped here). Revenue fields on store rows are 30d_rev_estimated_min / 30d_rev_geschätzter_Maximalwert (and nested geschätzter Umsatz), not estimated_revenue.monthly_min. When traffic enrichment is present, prefer monthly_visits_historical (month-by-month) over a single monatliche Besuche snapshot.
Im Abspann in the 200 body is the dashboard Explore Shops credit counter, not the programmatic API pool. Unlimited (Standard) returns credits: null und credits_unlimited: true — never bare -1. Programmatic metering still charges 1 API credit per call via the proxy.
Query aliases on the API route (query string): Grenze → Seitengröße, sortieren / sort_by → Sortierschlüssel, Bestellung / Sortierreihenfolge → Sortierrichtung, Stichwort / q → Suche. In a JSON body, send Seitengröße / Sortierschlüssel / Sortierrichtung / Suche directly — body Grenze is not remapped.
/api/v1/store-explorer/visual-searchFind visually similar Shopify stores from a product image.
X-API-Schlüssel on every request.Body parameters
Bild-URLZeichenkettePublic image URL, or multipart
Bildupload.LandZeichenkette
curl -sS \
-X POST \
-H "X-API-Key: $WH_API_KEY" \
-H "Content-Type: application/json" \
"{origin}/api/v1/store-explorer/visual-search" \
-d '{"image_url":"string","country":"US"}'const res = await fetch(`${ORIGIN}/api/v1/store-explorer/visual-search`, {
method: 'POST',
headers: {
'X-API-Key': process.env.WH_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"image_url": "string",
"country": "US"
}),
});
const data = await res.json();import os, requests
res = requests.post(
f"{ORIGIN}/api/v1/store-explorer/visual-search",
headers={"X-API-Key": os.environ["WH_API_KEY"]},
json={
"image_url": "string",
"country": "US"
},
)
data = res.json(){
"data": [
{
"storeid": "glow-beauty",
"domain": "glowbeauty.com",
"store_name": "Glow Beauty",
"image_src": "https://cdn.shopify.com/…/product.jpg",
"similarity_score": 0.94,
"price": 34,
"estimated_price": 34,
"product_url": "https://glowbeauty.com/products/vitamin-c-serum",
"handle": "vitamin-c-serum",
"product_id": "8123456789012",
"rank": 1
}
],
"total": 1,
"credits": 11,
"visual_search_token": "vs_abc123opaque"
}{
"error": "Missing image upload, image_url, or visual_search_token"
}{
"success": false,
"error": "Unauthorized"
}{
"success": false,
"error": "Rate limit exceeded. Max 60 requests per minute."
}Optional Explore Shops filters (Kategorie, Monatsumsatz, Shopify-Themes, aus dem Shop erstellt / Erstellt am, visitor-country rules, …) apply on either route.