Thomann Product & Price Scraper (Germany, EUR) avatar

Thomann Product & Price Scraper (Germany, EUR)

Pricing

from $1.40 / 1,000 product scrapeds

Go to Apify Store
Thomann Product & Price Scraper (Germany, EUR)

Thomann Product & Price Scraper (Germany, EUR)

Thomann price scraper: search Europe's largest music retailer by keyword and get one row per product: EUR price, struck-through and RRP price, discount, stock status, rating, review count, brand, image and URL. For guitar, synth and pro-audio price watching.

Pricing

from $1.40 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

10 days ago

Last modified

Share

Search Thomann, Europe's largest music retailer, for one or more keywords and get one flat row per product: the selling price in EUR (German VAT included), the struck-through earlier price and the manufacturer's recommended price where Thomann shows them, the discount, the stock status, rating, review count, Thomann's own sales rank, brand, image and product URL. Run it on a schedule and diff the dataset to get a music-gear price watch: track what a Shure SM58, a Boss pedal or a Fender Stratocaster costs today against last week, and when a sold-out item comes back.

No account, no API key, no login, no browser. One request returns 100 products.

Input

FieldNotes
searchTermsOne or more search terms, one per line. Required. shure sm58, boss ds-1, fender player ii stratocaster. A product found by two terms is returned once, under the first.
maxItemsProducts to read per search term (default 100, up to 10,000). 100 per page.
sortpopularity (default), price-asc, price-desc, best-rated, newest, name-asc, name-desc.
proxyConfigurationApify proxy, automatic by default.

The store is pinned to Germany

The actor reads www.thomannmusic.com/en-de/, Thomann International for Germany: English text, EUR, German VAT included. It does not use www.thomann.de/intl/, because that address sends every visitor to the store of their own country (measured 2026-10-15: a Japan exit lands on /en-jp/ in JPY, an Apify datacenter exit in the United States in USD). A response that turns out to be another store is treated as the exit address being wrong: nothing is billed for it, and the actor retries from a fresh address. Product links point at the same Germany store the prices come from.

About search terms

Thomann redirects a term that names a brand or a category to that brand's or category's own page (fender, stratocaster). Those are real product lists and are read as such, in the order you asked for. A broad category word with no product list at all (guitar) is redirected to a navigation page; the actor then searches it again as the exact phrase ("guitar") and logs that it did. Put a brand or model in the term (harley benton sc-450) for a tight, predictable list. An empty term is refused: an empty Thomann search is the whole 125,000-product catalogue.

About the sorts

The sort is confirmed from Thomann's own answer on every page: the page says which sort it applied, and an unknown sort is silently ignored by Thomann, so a term fails (at no charge) rather than return rows in an order that was not asked for. Thomann's "popularity" is its default order.

Output

Prices are numbers in euros; currency is always EUR.

FieldNotes
query, positionThe search term that first found the product, and its place in Thomann's result list for that term and sort (1 is the first result).
product_id, urlThomann's article number (105767) and the product page on the Germany store.
name, brand, model, subtitleThe full title (Shure SM58 LC), the manufacturer, the model without the brand, and Thomann's one-line product type (Dynamic Cardioid Vocal Microphone).
priceThe selling price now, VAT included.
original_price, on_sale, discount_percent, discount_amountoriginal_price is the struck-through earlier price on a reduced product. on_sale is true when it is above price. discount_percent (one decimal) and discount_amount are worked out from the two prices and are null when the product is not reduced, never 0.
retail_price, retail_discount_percentThe manufacturer's recommended price (UVP) where Thomann shows one, and how far price sits below it. Null otherwise.
price_includes_vat, vat_rateAs sent (true, 19.0). Gift certificates carry no VAT.
unit_price, unit_price_unitPrice per metre, litre or similar on goods sold that way (0.22 per m). Null on everything else.
availability_text, availability_status, in_stockThomann's stock line (In stock, In stock within 2-3 weeks, Product is sold out), its machine tag (in-stock, on-date, short-term, mid-term, temporarily-not-available, sold-out, not-yet-available, unknown) and in_stock, true only for in-stock.
stock_quantity, available_fromThe stock count as Thomann sends it, and the expected ISO date for on-date and not-yet-available products. See the notes below.
rating, review_countStar rating out of 5 (Thomann scores out of 10, this is half) and the review count. Both null when the product has no reviews.
sales_rankThomann's own sales rank of the product (1 is its best seller).
is_b_stock, is_download, category_keysB-stock (open-box, returned or demo) flag, download flag, and Thomann's category keys.
image_urlThe full-size product photo. Null when the product has none.

Example row (real, 2026-10-15):

{
"query": "sennheiser wireless", "position": 1, "product_id": "519215",
"name": "Sennheiser EW-D SK Base Q1-6", "brand": "Sennheiser",
"model": "EW-D SK Base Q1-6", "subtitle": "Digital Wireless System",
"url": "https://www.thomannmusic.com/en-de/sennheiser_ew_d_sk_base_q1_6.htm",
"image_url": "https://images.static-thomann.de/pics/prod/519215.jpg",
"currency": "EUR", "price": 499.0, "original_price": 529.0, "retail_price": 599.0,
"on_sale": true, "discount_percent": 5.7, "discount_amount": 30.0,
"retail_discount_percent": 16.7, "price_includes_vat": true, "vat_rate": 19.0,
"unit_price": null, "unit_price_unit": null,
"availability_text": "In stock", "availability_status": "in-stock", "in_stock": true,
"stock_quantity": 120, "available_from": null,
"rating": 4.81, "review_count": 26, "sales_rank": 155,
"is_b_stock": false, "is_download": false, "category_keys": ["MIWIGI"]
}

Honest nulls

A field Thomann did not send is null, never 0. Most products have no original_price (only reduced ones do) and many have no retail_price. A product with no reviews has a null rating and review_count: Thomann sends a count of 0 and no rating, and the actor reports both as absent rather than as a rating of 0. A product with no photo has a null image_url. stock_quantity is passed through as sent: it is 0 on most products that are not in stock and on in-stock products that are not counted (gift certificates), but not on all (a short-term guitar carried 146), so use in_stock for the yes/no.

Pricing

Pay per event:

  • $0.002 per run (actor-start), charged only after your input is validated, so a run that fails on bad input costs nothing.
  • $0.0014 per product row written (product-scraped), i.e. $1.40 per 1,000 products. A row that is not written is not charged.

How it fetches

It reads the product list Thomann embeds in its own search page (search_dir.html?sw=<term>&ls=100&pg=<n>&oa=<sort>), 100 products per request. Measured 2026-10-15 from a Japan exit: HTTP 200, no cookie, no key. A refusal (403, 429, 5xx), a 200 that is not a Thomann page, or a page of another store is treated as the address being blocked, and the actor rotates to a fresh one and retries.

Things worth knowing, all measured:

  • No depth cap. Thomann serves any page that exists (page 277 of 277 for a 27,636-match search), so a term is bounded by your maxItems (10,000 at most), not by the site. A page past the last is a valid empty page, not an error.
  • Page size. Thomann lists 25, 50 or 100 per page; the actor uses 100.
  • No matches. A term with no results is a normal empty answer, not an error. It is logged and the run continues with the next term.
  • German product names. Some product names, mostly spare parts and cables, are German even on the English store; they are returned as Thomann prints them.
  • Not offered. Thomann's filters (manufacturer, price range, features) exist on the site but are not wired into this actor; put the brand in the search term.