Shopify App Store Scraper icon

Lead generation · E-commerce

Shopify App Store Scraper

Scrape Shopify App Store listings for pricing tiers, ratings, review counts, launch dates, categories, and integrations. Fetch specific app handles or discover up to 40 apps per category. Built for Shopify app developers and DTC agencies doing competitive research.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

apps.shopify.com has no public API for app-listing data — we read the app-card markup on category browse pages and the structured LD+JSON block on each app's detail page, so you get one clean row per app with pricing tiers, ratings, launch date, category, and integration tags without hand-scraping the Store yourself.

What we handle for you

  • 🛡️ We rotate browser fingerprintscurl-cffi impersonation (Chrome / Firefox) so the target sees a real browser, not a Python client.
  • 🔁 We retry with exponential backoff on 408 / 429 / 5xx, honouring Retry-After, rotating impersonation profiles between attempts.
  • 🧩 Structured-first parsing — we prefer each detail page's application/ld+json block for name, developer, icon, rating, and review count over brittle HTML text.
  • 🧱 A missing pricing section or malformed detail page never fails the run — that row degrades gracefully (pricing_plans: [], null fields) instead of aborting.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable handles, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 You pay only for results that land. No data, no charge (only the small actor-start warm-up fee).

Use cases

  • Competitive pricing research — compare pricing tiers across Shopify apps in your category before setting your own.
  • DTC agency app-stack vetting — pull ratings, reviews, and integration tags for the apps you're recommending to clients.
  • Market-intel tracking — snapshot a category's top 40 apps to watch how the ecosystem shifts over time (scheduling for deltas is on you).
  • Integration audits — check which platforms (Shopify Flow, POS, Checkout, etc.) an app actually works with before you commit.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
appHandles array no Direct list of apps to fetch — bare handles (e.g. 'klaviyo-email-marketing-sms') or full apps.shopify.com URLs, normalized to a handle. This is the primary, most reliable input mode. At least one of App handles /…
categorySlugs array no Top-40-per-category discovery mode, e.g. 'marketing-and-conversion', 'finding-products', 'orders-and-shipping', 'sales-channels', 'selling-products', 'store-design', 'store-management'. Shopify does not paginate this…
maxItems integer no Hard cap on total dataset rows emitted this run, applied across both input modes combined — the priced dimension.
{
  "appHandles": [
    "klaviyo-email-marketing"
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

handlenamedeveloperurlicon_urlcategorypricing_plansrating_valuereview_countlaunched_dateworks_withinstall_countdiscovered_viascraped_at

{
  "handle": "klaviyo-email-marketing",
  "name": "Klaviyo: Email Marketing & SMS",
  "developer": "Klaviyo",
  "url": "https://apps.shopify.com/klaviyo-email-marketing",
  "icon_url": "https://cdn.shopify.com/app-store/listing_images/example/icon/example.png",
  "category": "Marketing and conversion",
  "pricing_plans": [
    {
      "name": "Free plan",
      "price": "Free to install",
      "additional_charges": null
    },
    {
      "name": "Growth",
      "price": "$45/month",
      "additional_charges": "Additional email/SMS charges may apply."
    }
  ],
  "rating_value": 4.6,
  "review_count": 3812,
  "launched_date": "2019-05-15",
  "works_with": [
    "Shopify Flow",
    "Shopify POS",
    "Checkout"
  ],
  "install_count": null,
  "discovered_via": "app_handles",
  "scraped_at": "2026-08-06T09:00:00+00:00"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
App row$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Do I need both `appHandles` and `categorySlugs`?
No — either alone works. Provide appHandles for specific apps, categorySlugs for top-40-per-category discovery, or combine both in one run (results are deduplicated by handle).
Why is `install_count` always null?
Shopify doesn't expose a merchant/install-count signal anywhere on the App Store. We ship it null rather than invent a proxy metric.
Can I enumerate an entire category beyond 40 apps?
Not currently — Shopify's category pages return exactly 40 app cards with no working pagination parameter. This is a platform limitation, not a bug.
Is `price` a parsed number?
No — it's kept as raw text (e.g. "$29.99/month", "Free to install") because pricing tiers mix flat, trial-qualified, and usage-based phrasing that a single numeric field can't represent without losing information.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run