Shopify App Store Scraper - Keyword Ranks & Watchlist avatar

Shopify App Store Scraper - Keyword Ranks & Watchlist

Pricing

from $1.50 / 1,000 app / rank rows

Go to Apify Store
Shopify App Store Scraper - Keyword Ranks & Watchlist

Shopify App Store Scraper - Keyword Ranks & Watchlist

Scrape the Shopify App Store: keyword and category ranks, app details (ratings, pricing tiers, Built for Shopify badge), and watchlist deltas for rating, reviews, price, and badge changes. Built for daily runs. No Partner login.

Pricing

from $1.50 / 1,000 app / rank rows

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Shopify App Store Scraper — Keyword Ranks, Category Ranks & Watchlist

Unofficial tool for publicly accessible Shopify App Store listing data. Shopify and related trademarks belong to their respective owners. Not affiliated with, sponsored by, or endorsed by Shopify Inc. Provided for informational use only; users must comply with applicable terms and laws.

ActorPlatform
Shopify App Store Scraper / Rank Tracker ◄── you are hereShopify App Store
Apple App Store ScraperiOS / App Store
Google Play Store ScraperAndroid / Google Play
App Stores Scraper — Apple & Google Play ASOApple + Google Play (combo)

Shopify App Store scraper for Apify — track keyword SERP ranks, category positions, and scrape app details (rating, review count, pricing tiers, Built for Shopify badge). Run a watchlist that emits deltas when competitors move. Export structured JSON for Python, Node.js, or AI agents via MCP. Designed for daily scheduled runs with KV history. No Shopify Partner login — a practical Shopify App Store API alternative for public listing data.

Use it for Shopify app competitor research, ASO-style keyword monitoring on App Store search, and cron alerts when a rival gains reviews or wins the Built for Shopify badge. For mobile store ASO, chain to Apple App Store Scraper or Google Play Store Scraper.

When to use this Actor

  • Daily keyword rank tracking for your app vs competitors (email marketing, product reviews, …)
  • Category position snapshots on curated category pages
  • Watchlist alerts: rating / review count / pricing / Built for Shopify badge
  • Reliable app detail export via schema.org JSON-LD (not fragile CSS-only scraping)
  • Canary mode for pipeline health checks before production schedules

When not to use

  • You need install counts or revenue (not published on public listings)
  • You only want a one-off dump of the entire 16k+ catalog with no rank history (use a full-catalog sitemap Actor instead)

Modes

ModeWhat it does
keyword_ranksSearch SERP position of tracked handles × keywords + KV history + optional RANK_CHANGE
category_ranksPosition on a category page × tracked handles + KV history
watchlistFingerprint deltas: rating, review count, pricing, Built for Shopify badge
app_detailsFull listing parse (JSON-LD + pricing plans + badge + developer)
searchDump search result rows for a keyword (discovery)
canaryFixed public probes — fails the run loudly if parsers break

Key features

  • Turbo-Frame search — real SERP HTML (organic vs search_ad sponsored cards)
  • Organic-first ranks — ads excluded by default (includeAds to count them)
  • JSON-LD detailsratingValue / ratingCount from structured data
  • True BFS badge — detects built-for-shopify-badge, not navbar guide links
  • KV history — named store for rank snapshots and watchlist fingerprints
  • Canary — deterministic health check for scheduled pipelines
  • Typed datasetkeyword_rank, category_rank, app, search_result, monitor_event

Input parameters

ParameterDescription
modeSee modes table above
appHandlesApp slugs to track (klaviyo-email-marketing, judgeme, …)
startUrlsApp / category / search URLs (handles and queries parsed automatically)
searchTerm / searchTermsKeywords for search / keyword_ranks
categoryUrlsCategory paths or URLs (marketing-and-conversion)
maxSearchPagesPages per keyword (default 3)
includeAdsCount sponsored cards in SERP ranks (default false)
concurrencyParallel workers (default 4)
rankHistoryLimitKV snapshots per target
emitRankChangesEmit RANK_CHANGE monitor events
maxItemsDataset row cap (0 = unlimited)
monitorStoreNameKV store for ranks + watchlist state
monitorBaselineOnlySeed state without change events
resetMonitorStateClear KV state before run
proxyConfigurationOptional Apify Proxy

Example — keyword ranks (daily)

{
"mode": "keyword_ranks",
"appHandles": ["klaviyo-email-marketing", "omnisend", "mailchimp"],
"searchTerms": ["email marketing", "sms marketing"],
"maxSearchPages": 3,
"includeAds": false,
"emitRankChanges": true,
"maxItems": 50
}

Example — watchlist deltas

{
"mode": "watchlist",
"appHandles": ["judgeme", "loox", "klaviyo-email-marketing"],
"monitorBaselineOnly": false,
"maxItems": 100
}

Example — category ranks

{
"mode": "category_ranks",
"appHandles": ["judgeme", "loox", "instafeed"],
"categoryUrls": ["marketing-and-conversion"],
"emitRankChanges": true,
"maxItems": 50
}

Example — app details

{
"mode": "app_details",
"appHandles": ["klaviyo-email-marketing", "judgeme", "omnisend"],
"maxItems": 10
}

Output

Typed dataset rows via itemType — export as JSON, CSV, or Excel from the Apify dataset.

itemTypeMain fields
keyword_rankkeyword, handle, rank, previousRank, rankDelta, found, history
category_rankcategory, handle, rank, previousRank, found
apptitle, rating, reviewCount, pricingSummary, pricingPlans, builtForShopify, developerName
search_resultkeyword, handle, rank, isAd, page
monitor_eventeventType, changes, handle (RATING_CHANGE, REVIEW_COUNT_CHANGE, PRICE_CHANGE, BADGE_CHANGE, RANK_CHANGE, NEW_APP)
canaryok, checks, failures

Example — keyword_rank

{
"itemType": "keyword_rank",
"keyword": "email marketing",
"handle": "klaviyo-email-marketing",
"title": "Klaviyo: Email Marketing & SMS",
"rank": 1,
"previousRank": 2,
"rankDelta": 1,
"found": true,
"isAd": false,
"url": "https://apps.shopify.com/klaviyo-email-marketing",
"scrapedAt": "2026-08-03T16:00:00Z"
}

Example — app details

{
"itemType": "app",
"handle": "judgeme",
"title": "Judge.me Product Reviews App",
"rating": 5.0,
"reviewCount": 42771,
"pricingSummary": "Free plan available",
"pricingPlans": [{"name": "Free", "price": "Free"}, {"name": "$15/month", "price": "$15/month"}],
"builtForShopify": true,
"developerName": "Judge.me",
"url": "https://apps.shopify.com/judgeme",
"scrapedAt": "2026-08-03T16:00:00Z"
}

Use cases

  • Shopify app founders tracking SERP vs Klaviyo / Omnisend / Judge.me
  • Agencies monitoring client apps for review-count velocity and badge wins
  • Market researchers exporting category grids and competitor pricing tiers
  • SaaS / VC screening of a niche (email, reviews, loyalty) via keyword discovery
  • Pipelines that need a failing canary when Shopify markup changes

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/shopify-app-store-rank-tracker').call({
mode: 'keyword_ranks',
appHandles: ['klaviyo-email-marketing', 'omnisend'],
searchTerms: ['email marketing'],
maxSearchPages: 2,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

from apify_client import ApifyClient
client = ApifyClient()
run = client.actor("crawloop/shopify-app-store-rank-tracker").call(run_input={
"mode": "watchlist",
"appHandles": ["judgeme", "loox"],
"maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("eventType") or item.get("itemType"), item.get("handle"))

cURL

curl -s -X POST "https://api.apify.com/v2/acts/crawloop~shopify-app-store-rank-tracker/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"app_details","appHandles":["klaviyo-email-marketing"],"maxItems":5}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name (crawloop/shopify-app-store-rank-tracker).

Example prompts:

  • "Run Shopify App Store Scraper for keyword email marketing tracking klaviyo-email-marketing and omnisend, return ranks as JSON"
  • "Watchlist judgeme and loox for rating, review count, and Built for Shopify badge changes"
  • "Scrape Shopify App Store app details for judgeme with Python, then compare Apple App Store ranks via Apple App Store Scraper"

Suite next step

After Shopify App Store ranks, enrich mobile ASO with Apple App Store Scraper or Google Play Store Scraper, or run both via App Stores Scraper.

FAQ

Is this a Shopify App Store API?
Shopify does not offer a public App Store listing API for third parties. This Actor scrapes the same public pages merchants see and returns structured JSON — a practical API alternative for ranks, ratings, and pricing.

Can I scrape with Python or Node.js?
Yes — use the Apify client examples above, or call the Actor from MCP / AI assistants.

Do I get install counts or revenue?
No — Shopify does not publish those on public listings. Use rating, reviewCount, and SERP/category rank as popularity proxies.

Are search ads included in ranks?
By default no. Set includeAds: true to count sponsored search_ad cards.

Why is category rank coverage limited?
Category landing pages are curated (section grids), not infinite paginated catalogs. Rank is position among unique handles on that page.

How do I schedule daily runs?
Use Apify Schedules with keyword_ranks or watchlist. First run with monitorBaselineOnly: true to seed KV state quietly.