Shopware Store Scraper — Prices and Compatibility avatar

Shopware Store Scraper — Prices and Compatibility

Pricing

$5.00 / 1,000 successful extension results

Go to Apify Store
Shopware Store Scraper — Prices and Compatibility

Shopware Store Scraper — Prices and Compatibility

Scrape store.shopware.com: extension name, producer, price and rental plans with currency, compatible Shopware versions, rating, reviews, last update, version, languages and description. Filter by search term, category and Shopware version. No login, no proxy. Pay per result — see the Pricing tab.

Pricing

$5.00 / 1,000 successful extension results

Rating

0.0

(0)

Developer

Atesen Software

Atesen Software

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

Scrape the Shopware Store: extension prices and rental plans, compatible Shopware versions, ratings, reviews, last update and languages. No login needed.

Shopware Store Extensions Scraper (prices, versions, ratings)

Give it search terms, store categories or single extension pages from store.shopware.com and get one row per extension: name, URL, producer name, price and rental plans with currency, compatible Shopware versions, rating, number of reviews, last update, version, languages and short description. It reads the public store pages, so no account, no API key and no proxy are needed.

  • Version filter: keep only extensions that support the Shopware version you run, for example 6.6 (any 6.6.x.y) or 6.7.2.0.
  • Real prices, never guessed: free is saved only when the store says "Free". A page without a readable price gives an empty price, never 0. Extensions that are not released yet are marked coming_soon.
  • Rental plans: the Shopware Store rents extensions. Monthly and annual plans are saved with their own price and interval.
  • Polite: about one request per second, the store's robots.txt is read first, retries with back-off, the actor slows down when the store reports that its request allowance is running low, and it stops when the store stops answering extension pages (3 in a row) instead of asking again.
  • Never crashes on a bad input: a wrong URL, a missing extension or a blocked page becomes one free status row that says why.
  • No reviews, no contacts: the only name saved is the producer's name as the store prints it. Most producers are companies; a sole trader can be listed under their own name. Reviews, reviewer names, support contacts and partner pages are not read, and e-mail addresses are removed from text fields.

Use cases

  • Competitor and market research: which extensions exist in a category, what they cost per month, how well they are rated and how often they are updated.
  • Compatibility checks: find extensions that already support the newest Shopware version before you upgrade a shop.
  • Agency catalogues: keep a dated list of the extensions you recommend, with price, version and last update.
  • Partner and producer monitoring: watch new releases, price changes and ratings of the extensions you sell or depend on.

Input

FieldDescription
searchTermsWords for the store's own search, for example seo or paypal. 24 extensions per page, best match first. The store also returns partial matches.
startUrlsEnglish store URLs on store.shopware.com/en/: a category or listing (/en/extensions/integration/legal-security/), a search (/en/search?search=theme) or one extension page (/en/<code>/<name>.html). Other languages are not supported.
shopwareVersionsOptional. Keep extensions whose compatibility range contains at least one of these versions (6.6, 6.7.2.0). Needs the extension page of every candidate.
maxItemsStop after this many extension rows in total. Default 50. 0 = no limit (the pages limit still applies).
maxListingPagesListing pages read per search term or listing URL. Default 5, 24 extensions per page.
includeDetailsDefault on. One extra request per extension for rental plans, compatible versions, last update, version, languages, downloads and category. Off = 24 extensions per request with name, producer, price, rating and short description. A version filter always reads the extension pages.
includeSourceInfoDefault on. One free source row per search term, listing or extension URL.
{
"searchTerms": ["seo"],
"shopwareVersions": ["6.7"],
"maxItems": 8,
"maxListingPages": 1
}

Output

One row per extension. This is a real row from a run on 24 October 2026.

{
"type": "extension",
"name": "SEO Professional",
"url": "https://store.shopware.com/en/dreis43878114545m/seo-professional.html",
"extensionCode": "dreis43878114545m",
"producer": "Dreischild GmbH",
"category": "SEO Optimization",
"price": 33.25,
"priceInterval": "month",
"currency": "EUR",
"priceType": "rental",
"isFree": false,
"priceNetOfVat": true,
"rentalPlans": [
{ "plan": "Annually", "price": 399, "interval": "year", "pricePerMonth": 33.25 },
{ "plan": "Monthly", "price": 39.9, "interval": "month", "pricePerMonth": 39.9 }
],
"compatibleVersions": "6.1.4 - 6.7.15.1",
"compatibleFrom": "6.1.4",
"compatibleTo": "6.7.15.1",
"hosting": null,
"matchesVersions": null,
"ratingValue": 4.28,
"reviewsCount": 29,
"downloads": 2473,
"downloadsText": "2,473",
"lastUpdate": "2026-10-19",
"publicationDate": "2020-03-30",
"version": "6.15.92",
"shortDescription": "Effective search engine optimization for Shopware 6 with SEO Professional through many SEO functions that expand the Shopware standard accordingly. Test now!",
"languages": ["English", "German"],
"detailsRead": true,
"input": "https://store.shopware.com/en/dreis43878114545m/seo-professional.html",
"scrapedAt": "2026-10-24T02:31:51.428Z"
}

How to read the price fields:

  • price is the lowest price per month over all rental plans, in currency (EUR). An annual plan is shown as its monthly equivalent in pricePerMonth. rentalPlans lists every plan with the price you actually pay per interval.
  • priceType is free (the store says "Free"), rental, or coming_soon (not released yet, price empty). If the price cannot be read, price, priceType and isFree are all null.
  • priceNetOfVat is true when the page carries the store's note that prices are quoted net of VAT.
  • ratingValue is empty and reviewsCount is 0 for an extension without reviews. Both are empty when the page shows no review section at all. With includeDetails off, a listing card without a rating badge gives empty ratingValue and empty reviewsCount (unknown, not 0).
  • compatibleVersions is the range printed by the store. hosting lists Cloud or Self-hosted badges. If the page names no version range (some self-hosted listings), the version fields are empty.
  • downloads is a number only when the store prints one; a value such as <10 is kept as text in downloadsText.
  • With includeDetails off, the fields that need the extension page (category, rentalPlans, compatible*, hosting, matchesVersions, downloads, downloadsText, lastUpdate, publicationDate, version, languages) are left out and detailsRead is false.

Free helper rows share the same dataset:

  • type: "source": one per input. input, kind (search, listing or extension), shopwareVersions, listingPagesRead, entriesScanned, entriesInListing (what the store says the listing holds), skippedOtherVersion, skippedVersionUnknown, detailPagesFailed, itemsSaved, complete. complete is true only when the whole listing was read: it is false when maxItems, maxListingPages or the cost limit stopped the run, or when a page could not be read (with a version filter this includes an extension page that failed), or when the run stopped early because the store stopped answering. A listing page that comes back without any extension cards inside the range the store announced counts as an unreadable page, not as the end of the listing.
  • type: "status": status, input, url, httpStatus, message.

Status values you may see: invalid_input, invalid_url, unsupported_url, blocked_by_robots, fetch_failed, access_denied, not_found, extension_not_found, detail_failed, listing_parse_failed, no_results, no_version_match, version_mismatch, version_unknown, error (an unexpected failure; the run then ends as failed).

A status row for a failed extension page inside a listing says whether the extension was still saved from its listing card (and counts as a result) or left out. If 3 extension pages in a row cannot be read (HTTP 403, 429, 5xx or a page that is not an extension page; a 404 does not count), the run stops, keeps what it saved, writes one more status row that says so, and marks the source row complete: false.

{
"type": "status",
"status": "extension_not_found",
"input": "https://store.shopware.com/en/nosuchcode123/does-not-exist.html",
"message": "extension nosuchcode123 does not exist in the store (HTTP 404). Not charged.",
"url": "https://store.shopware.com/en/nosuchcode123/does-not-exist.html",
"httpStatus": 404,
"scrapedAt": "2026-10-24T02:31:52.440Z"
}

A real source row (search seo, version filter 6.7, one listing page): 15 extensions read, 6 supported other versions, 1 gave no version range, 8 saved, complete: false because only the first page was read.

{
"type": "source",
"input": "seo",
"kind": "search",
"shopwareVersions": ["6.7"],
"listingPagesRead": 1,
"entriesScanned": 15,
"entriesInListing": 286,
"skippedOtherVersion": 6,
"skippedVersionUnknown": 1,
"detailPagesFailed": 0,
"itemsSaved": 8,
"complete": false,
"scrapedAt": "2026-10-24T02:31:18.432Z"
}

Limits

  • Only English store pages (/en/) are read. The store's search ranks best matches first and also returns partial matches, so check the first rows.
  • A search or category is read in the store's own ranking, up to maxListingPages pages. The source row tells you how many extensions the store lists and whether the whole listing was read.
  • A version filter has to open the page of every candidate, so a filtered scan of a large category takes about one second per extension.
  • If an extension page cannot be read, the extension is still saved from its listing card (without the page-only fields) and a status row (detail_failed, extension_not_found, access_denied, fetch_failed or blocked_by_robots) names it. That partial row is still one result. With a version filter such an extension is left out, because its versions cannot be checked.
  • Prices are the store's public prices, quoted net of VAT. Discounts, trial months and in-app purchases are not read.
  • The actor stays out of private areas: cart, account, wishlist and the store's internal widget routes are never requested.

FAQ

Do I need a Shopware account, an API key or a proxy? No. The actor reads the public pages of store.shopware.com. If the store ever answers with a block page (HTTP 403), you get a free access_denied status row and nothing is charged. The actor does not try to get around a block.

How does the Shopware version filter work? 6.6 matches every extension whose range contains any 6.6.x.y version, 6.7.2.0 matches ranges containing exactly that release. The range is read from the extension page. Extensions whose page prints no range cannot be checked: they are left out and counted in skippedVersionUnknown of the source row.

What does price mean when an extension has several plans? It is the lowest price per month ("from" price in the store). The annual plan is converted to its monthly equivalent by the store itself. Use rentalPlans for the exact price of each plan. price: 0 only appears when the store prints "Free" (or a price of zero); an unreadable price is null.

Does it collect personal data? It does not read reviews, reviewer names, support contacts or partner pages, and e-mail addresses are removed from the text fields. It does save the producer name exactly as the store prints it. That is usually a company, but a sole trader can be listed under their own name, which is then personal data of that person. Check the rules that apply to you (for example GDPR) before you store or share it.

Is it polite to the store? About one request per second, retries with back-off, and the store's robots.txt is read first and obeyed. The store reports how many requests it still allows; the actor pauses when that number gets low. On 24 October 2026 the store's robots.txt allowed all pages and the shopware AG terms (GTC) contained no clause about automated access to public pages that we could find. Please check the terms and the laws that apply to you before you reuse the data.

Pricing

Pay per result — see the Pricing tab.

Each saved extension row is one result. Source rows and status rows are free. The run stops when it reaches the maximum cost per run that you set; when no result fits the remaining budget, it makes no robots, listing or extension requests. On graceful abort it saves RUN_SUMMARY and a STATE progress snapshot with saved extension codes, the current source and counters before shutdown. This snapshot does not automatically resume another run.

Support and disclaimers

Questions and feature requests belong on the Issues tab of this Actor's page on Apify. This Actor is an independent tool and is not affiliated with Shopware AG or the producers of the extensions. It reads only what the store publishes on its public pages; how you may use that data depends on the store's terms and the applicable law.