Vexaloom Labs

Ecwid App Market Pricing & Category Scraper

Scrape apps from the Ecwid (Lightspeed E-Series) App Market - name, developer, description, categories, pricing type, and icon. Browse the whole market, filter by category, or search by keyword.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredBrowse all apps, filter by category, search by keyword, fetch exact apps, or collect reviews.
categorystringoptionalMarketplace category or collection (mode=byCategory). Legacy names are accepted.
searchQuerystringoptionalKeyword matched against app name, tagline, description, developer and categories (mode=search).
Show all input fields
FieldTypeRequiredDescription
modestringrequiredBrowse all apps, filter by category, search by keyword, fetch exact apps, or collect reviews.
categorystringoptionalMarketplace category or collection (mode=byCategory). Legacy names are accepted.
searchQuerystringoptionalKeyword matched against app name, tagline, description, developer and categories (mode=search).
appIdsarrayoptionalApp namespaces or Ecwid marketplace URLs (mode=byApp or mode=reviews).
includeFreeOnlybooleanoptionalKeep only apps whose listing is marked completely free. Overrides pricingType.
pricingTypestringoptionalFilter by free, freemium or paid pricing.
minRatingnumberoptionalKeep apps rated at or above this value (0-5). Apps without a rating are excluded when set.
minReviewCountintegeroptionalKeep apps with at least this many reviews. Apps without a review count count as zero.
includeDetailsbooleanoptionalFetch each app's detail page for developer website, support contact, feature bullets and screenshots.
includeReviewsbooleanoptionalAttach up to maxReviewsPerApp reviews to each app record (app modes only).
maxReviewsPerAppintegeroptionalReview cap per app, 1-100 (includeReviews and reviews modes).
emitReviewRecordsbooleanoptionalAlso emit one dataset record per review when includeReviews is on.
sortBystringoptionalSort app records by source order, name, rating or review count.
maxItemsintegeroptionalMaximum app records in app modes, or review records in reviews mode (1-1000).

Download the published input schema

View complete JSON
{
  "description": "Choose which apps and reviews to collect from the Ecwid App Market.",
  "properties": {
    "appIds": {
      "description": "App namespaces or Ecwid marketplace URLs (mode=byApp or mode=reviews).",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "the-printful"
      ],
      "title": "App IDs or URLs",
      "type": "array"
    },
    "category": {
      "default": "all",
      "description": "Marketplace category or collection (mode=byCategory). Legacy names are accepted.",
      "editor": "select",
      "enum": [
        "all",
        "featured",
        "new",
        "free",
        "marketing",
        "design",
        "dropshipping",
        "storemanagement",
        "marketplaces",
        "accounting",
        "shipping",
        "analytics",
        "customersupport",
        "tools",
        "pos",
        "cms",
        "social",
        "shipping-carriers",
        "store-design",
        "storedesign",
        "customer-support",
        "selling-on-marketplaces",
        "store management",
        "store-management",
        "catalog-order-management",
        "social-media",
        "shipping carriers",
        "store design",
        "selling on marketplaces",
        "customer support",
        "customer support & rewards",
        "analytics & reporting",
        "point of sale (pos)",
        "content management systems (cms)",
        "all apps",
        "catalog & order management",
        "catalog and order management",
        "social media",
        "point of sale",
        "content management systems",
        "analytics and reporting",
        "reporting"
      ],
      "enumTitles": [
        "All apps",
        "Featured",
        "New",
        "Free",
        "Marketing",
        "Store Design",
        "Dropshipping",
        "Catalog & Order Management",
        "Selling on Marketplaces",
        "Accounting",
        "Shipping",
        "Analytics & Reporting",
        "Customer Support & Rewards",
        "Tools",
        "Point of Sale (POS)",
        "Content Management Systems (CMS)",
        "Social Media",
        "Shipping carriers",
        "Store Design (legacy alias)",
        "Store Design (legacy alias)",
        "Customer Support & Rewards (legacy alias)",
        "Selling on Marketplaces (legacy alias)",
        "Catalog & Order Management (legacy alias)",
        "Catalog & Order Management (legacy alias)",
        "Catalog & Order Management (legacy alias)",
        "Social Media (legacy alias)",
        "Shipping carriers (legacy alias)",
        "Store Design (legacy alias)",
        "Selling on Marketplaces (legacy alias)",
        "Customer Support & Rewards (legacy alias)",
        "Customer Support & Rewards (legacy alias)",
        "Analytics & Reporting (legacy alias)",
        "Point of Sale (POS) (legacy alias)",
        "Content Management Systems (CMS) (legacy alias)",
        "All apps (legacy alias)",
        "Catalog & Order Management (legacy alias)",
        "Catalog & Order Management (legacy alias)",
        "Social Media (legacy alias)",
        "Point of Sale (POS) (legacy alias)",
        "Content Management Systems (CMS) (legacy alias)",
        "Analytics & Reporting (legacy alias)",
        "Analytics & Reporting (legacy alias)"
      ],
      "prefill": "all",
      "title": "Category",
      "type": "string"
    },
    "emitReviewRecords": {
      "default": false,
      "description": "Also emit one dataset record per review when includeReviews is on.",
      "prefill": false,
      "title": "Emit Review Records",
      "type": "boolean"
    },
    "includeDetails": {
      "default": false,
      "description": "Fetch each app's detail page for developer website, support contact, feature bullets and screenshots.",
      "prefill": false,
      "title": "Include App Details",
      "type": "boolean"
    },
    "includeFreeOnly": {
      "default": false,
      "description": "Keep only apps whose listing is marked completely free. Overrides pricingType.",
      "prefill": false,
      "title": "Free Apps Only",
      "type": "boolean"
    },
    "includeReviews": {
      "default": false,
      "description": "Attach up to maxReviewsPerApp reviews to each app record (app modes only).",
      "prefill": false,
      "title": "Attach Reviews",
      "type": "boolean"
    },
    "maxItems": {
      "default": 100,
      "description": "Maximum app records in app modes, or review records in reviews mode (1-1000).",
      "editor": "number",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max Items",
      "type": "integer"
    },
    "maxReviewsPerApp": {
      "default": 10,
      "description": "Review cap per app, 1-100 (includeReviews and reviews modes).",
      "editor": "number",
      "maximum": 100,
      "minimum": 1,
      "prefill": 10,
      "title": "Max Reviews per App",
      "type": "integer"
    },
    "minRating": {
      "description": "Keep apps rated at or above this value (0-5). Apps without a rating are excluded when set.",
      "maximum": 5,
      "minimum": 0,
      "title": "Minimum Rating",
      "type": "number"
    },
    "minReviewCount": {
      "description": "Keep apps with at least this many reviews. Apps without a review count count as zero.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum Review Count",
      "type": "integer"
    },
    "mode": {
      "default": "browse",
      "description": "Browse all apps, filter by category, search by keyword, fetch exact apps, or collect reviews.",
      "editor": "select",
      "enum": [
        "browse",
        "byCategory",
        "search",
        "byApp",
        "reviews"
      ],
      "enumTitles": [
        "Browse all apps",
        "Filter by category",
        "Search by keyword",
        "Fetch exact apps",
        "Collect reviews"
      ],
      "prefill": "browse",
      "title": "Mode",
      "type": "string"
    },
    "pricingType": {
      "default": "all",
      "description": "Filter by free, freemium or paid pricing.",
      "editor": "select",
      "enum": [
        "all",
        "free",
        "freemium",
        "paid"
      ],
      "enumTitles": [
        "Any pricing",
        "Free",
        "Freemium",
        "Paid"
      ],
      "prefill": "all",
      "title": "Pricing Type",
      "type": "string"
    },
    "searchQuery": {
      "description": "Keyword matched against app name, tagline, description, developer and categories (mode=search).",
      "editor": "textfield",
      "title": "Search Query",
      "type": "string"
    },
    "sortBy": {
      "default": "default",
      "description": "Sort app records by source order, name, rating or review count.",
      "editor": "select",
      "enum": [
        "default",
        "name",
        "rating",
        "reviewCount"
      ],
      "enumTitles": [
        "Source order",
        "Name (A-Z)",
        "Highest rating",
        "Most reviews"
      ],
      "prefill": "default",
      "title": "Sort By",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Ecwid App Market Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
appsstringoptionalDataset containing scraped Ecwid App Market apps and, when requested, their reviews.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Apps and reviews from the Ecwid App Market — developer, categories, pricing, free trials, ratings, review counts, logos, screenshots and reviews.",
  "properties": {
    "apps": {
      "description": "Dataset containing scraped Ecwid App Market apps and, when requested, their reviews.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Ecwid apps and reviews",
      "type": "string"
    }
  },
  "title": "Ecwid App Market Apps, Ratings & Reviews Scraper Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Apps and reviews",
      "transformation": {
        "fields": [
          "appId",
          "name",
          "developer",
          "categories",
          "pricingType",
          "rating",
          "reviewCount",
          "url"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Ecwid App Market Apps, Ratings & Reviews Scraper

Scrape the Ecwid App Market — the add-on marketplace for Ecwid (Lightspeed E-Series) stores. Collect every listed app with its developer, categories, pricing, free-trial flag, logo, rating and review count, then optionally open detail pages for feature bullets, screenshots and support contacts, or pull paginated customer reviews. No login, cookies, or proxy setup.

What this actor does

  • Five modes: browse the whole market, filter by category or collection, search by keyword, fetch exact apps, or collect reviews.
  • Complete catalog: reads the live listing in one request — currently 405 apps — and deduplicates by app namespace.
  • Exact categories: all 14 marketplace categories plus the Featured, New, and Free collections.
  • Decision signals: rating, review count, real logo URL, pricing type, and a free-trial flag on every app that has them.
  • Optional depth: developer website, support URL and email, feature bullets, screenshots, attached reviews, and standalone review records.
  • Filters and sorting: pricing type, free-only, minimum rating, minimum review count, and sorting by name, rating or review count.
  • Empty fields are omitted: a field is only included when the marketplace actually provides it.

Output per app

  • appId — unique app namespace (for example the-printful)
  • name — app title
  • tagline — short listing description
  • description — full listing description (HTML preserved)
  • developer — developer or company name, when published
  • categories[] — marketplace category names
  • pricingType — free, freemium, or paid
  • pricing — the marketplace's own pricing text, when it is more than just “Free”
  • hasFreeTrial — true when the pricing text advertises a trial
  • rating — average rating from 0 to 5; omitted when the app has no rating
  • reviewCount — number of published reviews; 0 is a real value
  • url — app page on the Ecwid marketplace
  • iconUrl — the app's real logo URL
  • headerImageUrl — the app's header/banner image URL
  • developerWebsite — developer site from the detail page (when includeDetails is on)
  • supportUrl — support link from the detail page (when includeDetails is on)
  • supportEmail — support email from the detail page (when includeDetails is on)
  • features[] — feature bullets from the detail page (when includeDetails is on)
  • screenshots[] — gallery image URLs, excluding the header image (when includeDetails is on)
  • reviews[] — attached reviews (when includeReviews is on), each with reviewId, rating, text, author, date
  • recordType — always app
  • scrapedAt — ISO 8601 UTC capture timestamp

Output per review

Returned by mode: "reviews", or as extra records when emitReviewRecords is on:

  • reviewId — marketplace review ID
  • appId, appName — the reviewed app
  • rating — 1 to 5 stars
  • text — review body as published
  • author — display name shown by the marketplace
  • date — review timestamp from the source
  • url — the app page
  • recordType — always review
  • scrapedAt — ISO 8601 UTC capture timestamp

Input

Field Type Default Description
mode string browse browse / byCategory / search / byApp / reviews
category string all Category or collection (mode=byCategory); legacy names accepted
searchQuery string – Keyword matched against name, tagline, description, developer and categories (mode=search)
appIds array – Namespaces or full marketplace URLs (mode=byApp or mode=reviews)
includeFreeOnly boolean false Keep only completely free apps; overrides pricingType
pricingType string all all / free / freemium / paid
minRating number – Keep apps rated at or above this value (0–5); unrated apps are excluded when set
minReviewCount integer – Keep apps with at least this many reviews
includeDetails boolean false Fetch developer website, support contact, feature bullets and screenshots per app
includeReviews boolean false Attach reviews to app records (app modes only)
maxReviewsPerApp integer 10 Review cap per app (1–100)
emitReviewRecords boolean false Also emit one record per attached review
sortBy string default default / name / rating / reviewCount
maxItems integer 100 App-record cap in app modes; review-record cap in reviews mode (1–1000)

Examples

Example: top-rated apps with a meaningful review history

{
  "mode": "browse",
  "minRating": 4.5,
  "minReviewCount": 10,
  "sortBy": "rating",
  "maxItems": 50
}

Example: one category with full detail enrichment

{
  "mode": "byCategory",
  "category": "shipping",
  "includeDetails": true,
  "maxItems": 40
}

Example: keyword search for free inventory tools

{
  "mode": "search",
  "searchQuery": "inventory",
  "includeFreeOnly": true,
  "maxItems": 30
}

Example: exact apps with reviews attached

{
  "mode": "byApp",
  "appIds": [
    "the-printful",
    "https://www.ecwid.com/apps/featured/kliken-stats"
  ],
  "includeDetails": true,
  "includeReviews": true,
  "maxReviewsPerApp": 25
}

Example: review records for one app

{
  "mode": "reviews",
  "appIds": ["kliken-stats"],
  "maxReviewsPerApp": 50,
  "maxItems": 50
}

Use cases

  • Competitive research — compare the apps available to Ecwid merchants across categories, pricing models and ratings.
  • App directory sites — mirror marketplace listings with logos, ratings, review counts and screenshots.
  • Pricing analysis — separate genuinely free apps from freemium and externally billed ones.
  • Partner and developer scouting — find active developers and the support channels they publish.
  • Voice-of-customer research — export paginated reviews for sentiment analysis and product-gap studies.
  • Market monitoring — re-run on a schedule to catch new listings and changing ratings.

FAQ

Do I need an Ecwid account? No. The marketplace pages and review endpoints used here are public.

How many apps are on the market? The live total changes as developers add and remove listings. A full browse run currently returns about 405 apps; the actor deduplicates by namespace and reports the real total.

What is the difference between free, freemium and paid? free means the listing is marked completely free. freemium covers a free tier, a free trial, free tokens, or a “Free to $X” plan. Everything else is paid, including externally billed apps and in-app charges. The raw marketplace pricing text is kept in pricing when it adds detail.

Why does a “Free to $X” app say freemium? Because it has a free entry point but paid tiers above it. The hasFreeTrial flag tells you whether the pricing text also advertises a trial.

Why do some apps have no rating? Ratings come from the marketplace's public review widget. Apps with no reviews, or with no review product yet, omit rating. A real reviewCount: 0 is kept; apps with no review product at all omit both fields.

How many reviews can I collect? The source returns five reviews per page. maxReviewsPerApp accepts 1–100, and the actor stops at the last page or after two empty pages. The largest app currently has 225 reviews, so the 100-review cap is deliberate.

Which categories are available? All 14 live marketplace categories plus Featured, New, and Free. A few categories (CMS, Social Media, Shipping carriers) have no public category page, so the actor matches them exactly against each app's category list.

Does the actor expose install counts, app versions, last-updated dates, languages, badges or structured pricing tiers? No. The marketplace does not publish those datapoints; the actor ships the raw pricing text and the fields the source actually provides.

Are review authors anonymized? Sometimes. The marketplace displays some reviewers as anonymized names; the actor publishes the author name exactly as shown and does not attempt to de-anonymize it.

Is this affiliated with Ecwid or Lightspeed? No. This is an independent third-party actor reading publicly available marketplace pages.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build yvjWtmKgfbyDV6FVY. Documentation is regenerated from the default published build; private drafts are not included.