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.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Browse all apps, filter by category, search by keyword, fetch exact apps, or collect reviews. |
category | string | optional | Marketplace category or collection (mode=byCategory). Legacy names are accepted. |
searchQuery | string | optional | Keyword matched against app name, tagline, description, developer and categories (mode=search). |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Browse all apps, filter by category, search by keyword, fetch exact apps, or collect reviews. |
category | string | optional | Marketplace category or collection (mode=byCategory). Legacy names are accepted. |
searchQuery | string | optional | Keyword matched against app name, tagline, description, developer and categories (mode=search). |
appIds | array | optional | App namespaces or Ecwid marketplace URLs (mode=byApp or mode=reviews). |
includeFreeOnly | boolean | optional | Keep only apps whose listing is marked completely free. Overrides pricingType. |
pricingType | string | optional | Filter by free, freemium or paid pricing. |
minRating | number | optional | Keep apps rated at or above this value (0-5). Apps without a rating are excluded when set. |
minReviewCount | integer | optional | Keep apps with at least this many reviews. Apps without a review count count as zero. |
includeDetails | boolean | optional | Fetch each app's detail page for developer website, support contact, feature bullets and screenshots. |
includeReviews | boolean | optional | Attach up to maxReviewsPerApp reviews to each app record (app modes only). |
maxReviewsPerApp | integer | optional | Review cap per app, 1-100 (includeReviews and reviews modes). |
emitReviewRecords | boolean | optional | Also emit one dataset record per review when includeReviews is on. |
sortBy | string | optional | Sort app records by source order, name, rating or review count. |
maxItems | integer | optional | Maximum 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.
| Field | Type | Required | Description |
|---|---|---|---|
apps | string | optional | Dataset 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 examplethe-printful)name— app titletagline— short listing descriptiondescription— full listing description (HTML preserved)developer— developer or company name, when publishedcategories[]— marketplace category namespricingType—free,freemium, orpaidpricing— the marketplace's own pricing text, when it is more than just “Free”hasFreeTrial— true when the pricing text advertises a trialrating— average rating from 0 to 5; omitted when the app has no ratingreviewCount— number of published reviews;0is a real valueurl— app page on the Ecwid marketplaceiconUrl— the app's real logo URLheaderImageUrl— the app's header/banner image URLdeveloperWebsite— developer site from the detail page (whenincludeDetailsis on)supportUrl— support link from the detail page (whenincludeDetailsis on)supportEmail— support email from the detail page (whenincludeDetailsis on)features[]— feature bullets from the detail page (whenincludeDetailsis on)screenshots[]— gallery image URLs, excluding the header image (whenincludeDetailsis on)reviews[]— attached reviews (whenincludeReviewsis on), each withreviewId,rating,text,author,daterecordType— alwaysappscrapedAt— ISO 8601 UTC capture timestamp
Output per review
Returned by mode: "reviews", or as extra records when emitReviewRecords is on:
reviewId— marketplace review IDappId,appName— the reviewed apprating— 1 to 5 starstext— review body as publishedauthor— display name shown by the marketplacedate— review timestamp from the sourceurl— the app pagerecordType— alwaysreviewscrapedAt— 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.
Source build yvjWtmKgfbyDV6FVY. Documentation is regenerated from the default published build; private drafts are not included.