TSBOHEMIA.CZ Scraper: Prices, EAN, Discount Codes
Pricing
from $0.85 / 1,000 products
TSBOHEMIA.CZ Scraper: Prices, EAN, Discount Codes
Scrape TSBOHEMIA.CZ (Czech IT & electronics shop) by category, search, order code, EAN or URL: price, lowest price in 30 days, discount codes, e-shop and store availability, EAN, part number. Site filters, sorting, monitoring incl. removed products. Unofficial.
Pricing
from $0.85 / 1,000 products
Rating
0.0
(0)
Developer
Tomáš Buchta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape products and prices from TSBOHEMIA.CZ, a large Czech IT and electronics shop with stores in Brno, Olomouc, Ostrava and Prague. Use a category URL, product URLs, a search term, or look products up by order code, EAN or part number. For each product you get the name, brand, EAN, part number, current price (with and without VAT), lowest price in the last 30 days, public discount codes and the price with the code, promotions, availability in the e-shop and in stores, labels and energy class. Optionally you also get the technical parameters, warranty and all product images.
Built for price monitoring: schedule it daily in monitoring mode and you get, and pay for, only products whose price or availability changed, plus (optionally) the products that disappeared and the ones that came back.
What's new
- October 2026: lookups by order code, EAN or part number. Paste up to 200 codes into Order codes (Objednací kód), EANs or Part numbers (MPN) and get exactly those products, each marked with
matchedBy. Codes that don't exist or aren't valid are listed in the status message; the run goes on. - October 2026: removed and reappeared products in monitoring. With Monitoring: include removed products you also get the products that disappeared since the previous run (
changeType: "removed",removedAt) and the ones that came back ("reappeared"). - October 2026: optional fast mode, about 5× faster (60 requests per minute instead of 12) for $0.01 per 1 000 products. It slows down by itself as soon as the shop asks for it.
- New output fields
matchedByandremovedAt(null unless you use the new options); all other fields stay as they were. - October 2026: TSBOHEMIA.SK Scraper. The same scraper for the Slovak shop, with EUR prices (Slovak VAT) and lookups by order code, EAN or part number: TSBOHEMIA.SK Scraper.
- Steadier long runs: memory stays flat on long runs (proxy connections are now closed when idle).
- Second attempt for rejected pages: a page or API call the site rejects is asked once more 30 seconds later from the same IP, so short-lived blocks no longer leave gaps.
- Sorting by price or biggest discount across the whole category, done by the actor (the shop sorts by price only on its own pages).
Why use this TSBOHEMIA.CZ scraper?
- 🔢 EAN and part number for every product, already in the listing (no extra request). Match TSBOHEMIA.CZ products with other shops or your catalogue.
- 🔎 Lookups by order code, EAN or part number. Paste a list of up to 200 codes and get exactly those products, each marked with
matchedBy. - 🎟️ Discount codes. Many products are cheaper "s kódem" (with a code). You get
couponPrice,couponCodeandcouponValidUntil, so you see the real lowest price. - 🏷️ Real discounts.
isDiscountedanddiscountPercentcompare the price with the lowest price of the last 30 days, as the shop shows it under EU rules. - 🎛️ The website's own filters: brand, store availability (e-shop, Brno, Olomouc, Ostrava…), labels (clearance, last pieces, new…) and any category parameter (screen size, Smart TV, weight range…). Or just paste a URL with filters set on the website.
- 📉 Monitoring mode and price drop alerts. Only new or changed products, with
previousPrice,priceChangeandpriceChangePercent; removed and reappeared products on request. - 🧮 More filters you don't pay for: price range, in stock, discounted, with a code, name keywords, exclude used/open-box, energy class.
- ⚡ Optional fast mode, about 5× faster, for a tiny extra charge.
What data can you get?
| Field | Example |
|---|---|
| Name, brand | 65" HISENSE 65E7S PRO (2026), HISENSE |
| EAN, part number, order code | 6942351432595, 65E7S PRO, 187892 |
| Price incl. / without VAT | 17 990 CZK, 14 868 CZK |
| Lowest price in 30 days | 19 990 CZK |
| Discounted, discount | true, 10 % |
| Price with code, code, valid until | 11 990 CZK, 26ONA-HISENSETV-A, 2026-10-18 |
| Promotion label | Mega sleva 8000 Kč |
| Availability | in_stock (Skladem na 6 prodejnách) |
| Stores with stock | 6 (Olomouc, Pavlovičky; Brno, Heršpice) |
| Labels, energy class | Poslední kusy, E |
| Category path | Elektronika › Televize |
| Parameters (optional) | Úhlopříčka obrazovky: 165 cm (65"), Smart TV: ano, … |
| Warranty, images (optional) | 24 months, 7 image URLs |
See the Output tab for all fields.
How to scrape TSBOHEMIA.CZ
- Category: open TSBOHEMIA.CZ, go to a category, e.g.
https://www.tsbohemia.cz/televize_c5622, and paste the URL into Category, product or search URLs. Product URLs (…_d582529) work too. A parent category such as Počítače a notebooky is scraped through its subcategories. - Or search: type what you're looking for into Search, e.g.
samsung qledor a part number. Results come in the shop's relevance order. - Or look up exact products: put order codes into Order codes (Objednací kód) (the number after Objednací kód on the product page), barcodes into EANs or manufacturer codes into Part numbers (MPN).
- Optionally narrow it down with Site filters (brand, store, labels, parameters) and Filters, set Max products, and turn on Add specifications, warranty and images if you need them.
- Click Start and download the results as JSON, CSV or Excel, or use the API.
Tip: set filters on the website (brand, screen size…) and paste the URL including the part after #, e.g. https://www.tsbohemia.cz/televize_c5622#brands=109&par-0-2177=ano. The actor applies the same filters. A URL sorted by price on the website is sorted by the actor (see Sorting by price or discount).
Use cases
Daily price monitoring of a category, including products that disappeared. Schedule it every morning:
{"startUrls": [{ "url": "https://www.tsbohemia.cz/televize_c5622" }],"maxItems": 0,"onlyNewOrChanged": true,"includeRemovedProducts": true,"monitoringKey": "tv-daily"}
Price drop alerts of at least 10 %:
{"startUrls": [{ "url": "https://www.tsbohemia.cz/televize_c5622" }],"maxItems": 0,"onlyNewOrChanged": true,"monitoringKey": "tv-drops","minPriceDropPercent": 10}
Track your own list of products by EAN or order code (e.g. to compare with other Czech shops):
{"eans": ["8806097118541", "8806094901221"],"productCodes": ["166350"],"onlyNewOrChanged": true,"monitoringKey": "my-products"}
A large category quickly, with parameters and images, in fast mode:
{"startUrls": [{ "url": "https://www.tsbohemia.cz/televize_c5622" }],"maxItems": 500,"includeDetails": true,"fastMode": true}
55" Samsung and LG Smart TVs in stock in the e-shop, up to 20 000 CZK:
{"startUrls": [{ "url": "https://www.tsbohemia.cz/televize_c5622" }],"brands": ["Samsung", "LG"],"stores": ["e-shop"],"parameterFilters": { "Úhlopříčka obrazovky": ["138 cm (55\")", "139 cm (55\")", "140 cm (55\")"], "Smart TV": "ano" },"maxPrice": 20000}
Clearance and discount codes: "labels": ["Výprodej"] or "onlyWithCoupon": true.
Product matching by EAN: scrape a category, join ean with your catalogue or another shop, or look your EANs up directly with EANs.
Site filters (applied by the shop)
| Input | What it does |
|---|---|
| Brands | Only these brands, e.g. Samsung, LG. |
| Available in store | e-shop (ships now) and/or stores, e.g. Brno, Olomouc, Ostrava. |
| Labels | Výprodej (all clearance), Poslední kusy, Použité, Rozbaleno zlevněno, Novinka, Předobjednávka… |
| Parameter filters | Any parameter of the category's filter: {"Name": "value"}, {"Name": ["value 1", "value 2"]} or {"Name": {"min": 1, "max": 10}} for numeric ones. |
| Sort by | The shop's order: Recommended (default) or Best sellers. Or sorted by the actor: Cheapest first, Most expensive first, Biggest discount first, Cheapest incl. discount codes (see below). |
Names are matched without case and diacritics; a unique beginning is enough (úhlopříčka). If a name or value doesn't exist in a category, the log lists the available ones, and the category is skipped when nothing in it can match.
Sorting by price or discount (extra charge)
The shop doesn't provide sorting by price for automated access, so the actor sorts by itself: it reads the whole category (up to Max pages per category), applies your filters, sorts the products and saves the first Max products. Example: the 10 cheapest 55" TVs in stock.
- It costs a little more: besides the price per saved product, each listing page read for sorting (24 products) is charged as a "Sorting page" event (see the Pricing tab). Sorting the TV category (about 19 pages) adds 19 such events, i.e. about $0.04.
- It takes longer: the actor reads every page at the gentle pace of 12 requests per minute (2 requests per page), e.g. about 3–4 minutes for 450 TVs (under a minute in fast mode).
- Use filters (brand, parameters, store) to make the listing smaller: fewer pages to read means a cheaper and faster run.
- Your maximum cost per run is respected: if it would run out, the actor stops reading more pages, keeps enough budget for the products and sorts what it has read.
- Recommended and Best sellers are free and fast (the shop does the ordering).
Filters (you don't pay for filtered-out products)
| Input | Example |
|---|---|
| Only products in stock, Availability | in stock / on order / on request / pre-order |
| Only discounted products, Min discount (%) | price below the 30-day low, at least 15 % off |
| Only products with a discount code | couponCode is set |
| Min price (CZK), Max price (CZK) | 10 000 – 30 000 |
| Exclude brands, Name must contain, Name must not contain | OLED, not stojan |
| Exclude used and open-box products, Only products with EAN, Energy classes | A, B |
Lookups by order code, EAN or part number
Each code is searched on TSBOHEMIA.CZ and only products with exactly that order code, EAN or part number are returned, with matchedBy set to productCode, ean or partNumber. An EAN or a part number can return two products (e.g. a product and its "EU" twin with the same EAN). Codes that don't exist are listed in the status message (not found: …); codes that can't be valid (e.g. an EAN with a wrong check digit) are skipped with a warning and listed as not valid, skipped: …, and the rest of the run goes on. At most 200 codes per run; each lookup takes 3 requests.
Fast mode (small extra charge)
Normal speed: at most 12 requests per minute, one at a time (the default, unchanged). Fast mode: at most 60 per minute, 2 at a time. It switches back to the normal speed for the rest of the run as soon as the website answers "too many requests", "forbidden", "service unavailable", shows a challenge or slows down; products saved after that have no fast-mode charge. If the website asks to wait longer than 2 minutes, the run stops and keeps the products saved so far.
Other inputs
Safety limits in Advanced: Max pages per category (24 products per page), Max pages per search and Include subcategories. Proxy configuration defaults to Apify residential proxy in the Czech Republic (see the FAQ).
Monitoring mode explained
With Monitoring: only new or changed products each run compares products with the previous run that used the same Monitoring: key. A product is returned as changeType: "new" or "updated" only if it is new or its price, availability, 30-day lowest price, discount status or price with a code changed. Monitoring: only price changes narrows it to price changes, Monitoring: min price drop (%) to price drops. For monitoring, use category URLs rather than search terms.
Monitoring: include removed products also returns products of the previous run that are no longer listed as changeType: "removed" with removedAt and the last known name, price and URL; when such a product comes back, it is "reappeared". It is checked only after a run that read everything it was asked for (not when Max products, Max products per search or URL, a page limit, the search page limit or unread pages cut it short; the status message then says why). Use one Monitoring: key per input.
How much does it cost to scrape TSBOHEMIA.CZ?
You pay per saved product; the platform usage and the residential proxy are included.
| Plan | Per 1 000 products | + with the product page (details, lookups) | + Fast mode |
|---|---|---|---|
| FREE | $0.95 | +$0.95 | +$0.01 |
| BRONZE | $0.93 | +$0.93 | +$0.01 |
| SILVER | $0.90 | +$0.90 | +$0.01 |
| GOLD and higher | $0.85 | +$0.85 | +$0.01 |
Sorting by price or discount adds $0.002 per listing page read (see Sorting by price or discount). A product saved with its product page (details, lookups) costs a little more, because the page goes through the residential proxy. A removed-product row is saved and charged like a product (without the product page). Filtered-out and unchanged products (in monitoring mode) are free. There is also a tiny start fee of $0.00005 per run.
By default the actor is deliberately gentle with the shop: at most 12 requests per minute, one at a time. Typical runs:
| Scenario | Requests | Time (normal / fast mode) | Price (FREE plan) |
|---|---|---|---|
| 20 products from a category | 3 | ~15 s / ~5 s | $0.02 |
| 1 000 products from a category | ~85 | ~7 min / ~1.5 min | $0.95 |
| 100 products with parameters, warranty and images | ~110 | ~9 min / ~2 min | $0.19 |
| 1 search term, 2 pages | 5 | ~25 s / ~5 s | $0.05 |
| 50 EAN lookups | ~150 | ~13 min / ~3 min | $0.10–0.19 |
| 10 cheapest TVs (sorting 450 products) | ~40 | ~3–4 min / ~1 min | $0.01 + ~$0.04 sorting |
Input example
{"startUrls": [{ "url": "https://www.tsbohemia.cz/televize_c5622" }],"searchQueries": ["samsung qled"],"eans": ["8806097118541"],"maxItems": 100,"brands": ["Samsung"],"onlyInStock": true,"includeDetails": false}
Output example
{"id": "tsbohemia:583755","source": "tsbohemia.cz","url": "https://www.tsbohemia.cz/65-hisense-65e7s-pro-2026_d583755","productId": 583755,"productCode": "187892","partNumber": "65E7S PRO","ean": "6942351432595","name": "65\" HISENSE 65E7S PRO (2026)","brand": "HISENSE","category": "Televize","categoryPath": ["Elektronika", "Televize"],"mainCategory": "Elektronika","price": 17990,"priceWithoutVat": 14868,"currency": "CZK","lowestPrice30Days": 19990,"isDiscounted": true,"discountPercent": 10,"couponPrice": 11990,"couponCode": "26ONA-HISENSETV-A","couponValidUntil": "2026-10-18T21:59:59Z","promoLabel": "Mega sleva 8000 Kč","promoEndsAt": null,"availability": "in_stock","availabilityText": "Skladem na 6 prodejnách","onlineAvailabilityText": null,"storeCount": 6,"storeNames": ["Olomouc, Pavlovičky", "Brno, Heršpice"],"labels": [],"isUsedOrOpenBox": false,"energyClass": "E","shortDescription": "Televize - QLED, 165cm, 4K Ultra HD, 120 Hz …","imageUrl": "https://interlink-static3.tsbohemia.cz/65-hisense-65e7s-pro-2026_ig583755.jpg","position": 14,"warrantyMonths": null,"specifications": null,"images": null,"detailScraped": false,"changeType": null,"firstSeenAt": null,"previousPrice": null,"priceChange": null,"priceChangePercent": null,"sourceUrl": "https://www.tsbohemia.cz/televize_c5622","scrapedAt": "2026-10-13T08:09:37Z","matchedBy": null,"removedAt": null}
Limitations
- Speed: at most 12 requests per minute (60 in fast mode): about 140 products per minute from listings (2 requests per 24 products), 12 per minute with details. This is on purpose, to keep the load on the shop low.
- Sorting by price or discount reads the whole category first (slower, charged per page read). With Max pages per category lower than the category size, only the products on the pages read are sorted.
- Search reads at most 10 search terms per run and Max pages per search pages per term (24 products per page; default 2, at most 5). For large or scheduled runs, use category URLs or lookups.
- Search results and lookups have no category unless you turn on Add specifications, warranty and images.
- Parameters are the ones the shop lists for the product; some products have only a few.
- Descriptions: only a ~200-character excerpt (Add a short description excerpt). Images are returned as URLs; product photos and texts are copyrighted, so check the rights before you republish them.
storeNameslists the stores the shop names on the product tile;storeCountcan be higher.- If the site rejects a request, a rejected page is asked once more after 30 seconds from the same IP address and session (never from another IP), which recovers short-lived rejections. If it rejects a few requests in a row even so, the run stops and says so. Products whose detail couldn't be read are returned with the listing data (
detailScraped: false). A rejected lookup stops the remaining lookups of the run.
For AI agents and API users
- Minimal input:
{"searchQueries": ["samsung qled"], "maxItems": 20},{"eans": ["8806097118541"]}or{"startUrls": [{"url": "https://www.tsbohemia.cz/televize_c5622"}], "maxItems": 20}. - One row = one product = one charge (+ the
fast-modeevent when fast mode is on).includeDetails: trueadds 1 request per product, same price per product.sortBycheapest,mostExpensive,biggestDiscountorcheapestWithCodealso charges onesorting-pageevent per listing page read. - 24 products per listing page.
maxItemscounts saved products,maxItemsPerStartUrllimits each search term, URL or lookup. - Prices are in CZK.
availabilityis one ofin_stock,on_order,on_request,preorder,out_of_stock,unknown.matchedByisproductCode,ean,partNumberor null.changeTypeisnew,updated,removed,reappearedor null. - Monitoring state is kept per
monitoringKeybetween runs of the same user.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("<username>/tsbohemia-scraper").call(run_input={"startUrls": [{"url": "https://www.tsbohemia.cz/televize_c5622"}],"maxItems": 100,})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(product["name"], product["price"], product["couponPrice"], product["ean"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('<username>/tsbohemia-scraper').call({ searchQueries: ['samsung qled'], maxItems: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((p) => `${p.name}: ${p.price} CZK`));
cURL
curl -X POST "https://api.apify.com/v2/acts/tsutseisoftware~tsbohemia-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"eans": ["8806097118541"], "productCodes": ["198737"]}'
You can also connect the actor to Make, Zapier, n8n, Google Sheets, Slack or webhooks and schedule it in Apify Console.
Troubleshooting
| Status message | What to do |
|---|---|
Skipping unsupported URL | Use a TSBOHEMIA.CZ category (…_c123), product (…_d123) or search URL. For www.tsbohemia.sk use the TSBOHEMIA.SK Scraper. |
not found: … | No product on TSBOHEMIA.CZ has exactly this order code, EAN or part number. |
not valid, skipped: … | The value can't be an order code, EAN or part number (e.g. a wrong EAN check digit); fix it, the other codes were looked up. |
unknown brand / parameter / value … (log) | Use one of the names listed in the log for that category. |
… skipped because the site filters match nothing there | No product in that category has the requested brand, label or parameter value. |
… only lists subcategories | Turn on Include subcategories, or use a subcategory URL. |
TSBOHEMIA.CZ is rejecting requests | Try again later. |
fast mode: N products, then the normal speed because … | The website asked to slow down; the rest of the run used the normal speed (no fast-mode charge). |
removed products were not checked because … | The run didn't read everything (e.g. Max products reached); removed products are checked in a complete run. |
… listing pages could not be read, so the results may be incomplete | The site didn't answer some pages; run it again later for complete results. |
Saved 0 products (new or changed since last run) | Nothing changed since the previous monitoring run; that's expected. |
More Czech & Slovak e-shop scrapers
Compare prices across Czech and Slovak shops with the same output format (EAN for matching, monitoring mode):
- Datart.cz Scraper: electronics: prices, 30-day low, EAN, store availability
- Planeo.cz Scraper: electronics & appliances: prices, discount codes, store pickup, EAN
- Smarty.cz Scraper: electronics: prices, coupons, cashback, EAN, price history, store stock
- BAUHAUS.cz Scraper: DIY & garden: prices, unit prices, stock in 9 stores, variants, EAN
- Mironet.cz Scraper: electronics: prices, store stock, delivery date, MPN, warranty, price history
- Alza Scraper (CZ, SK, HU, AT, DE): electronics: prices, coupons, ratings, reviews, pickup points, MPN
- NAY.sk Scraper (Slovakia): electronics: prices in EUR, discount codes, stock in 54 stores, EAN
- BAUHAUS.sk Scraper (Slovakia): DIY & garden: EUR prices, Bratislava store stock, variants, EAN
- Planeo.sk Scraper (Slovakia): electronics & appliances: EUR prices, discount codes, cashback, stock in 69 stores, EAN
- TSBOHEMIA.SK Scraper (Slovakia): IT & electronics: EUR prices, discount codes, EAN, lookups
- Smarty.sk Scraper (Slovakia): electronics: EUR prices, coupons, cashback, stock in Slovak stores, EAN
FAQ
Is it legal to scrape TSBOHEMIA.CZ?
The actor collects only publicly available product data (prices, availability, codes, parameters) and no personal data: no reviews, questions or contacts. It does not log in, makes at most 12 requests per minute by default (60 in fast mode, with automatic slow-down) and never solves captchas or other challenges. The site's robots.txt asks crawlers not to use its search page; the Search field and the code/EAN lookups do use it (with limits), category and product URLs don't. How you use the data is your responsibility. Use it for price monitoring and analysis, and don't republish the catalogue, texts or photos. If unsure, consult a lawyer.
Do I need a proxy?
It's already set up. TSBOHEMIA.CZ rejects requests from data-center IP addresses (including Apify's own servers), so the default Proxy configuration is Apify Proxy with residential IPs in the Czech Republic. The proxy is included in the price per product. Keep the default unless you have your own Czech proxies.
What does fast mode cost and when should I use it?
$0.01 per 1 000 products on top of the normal price, only for products saved at the fast speed. Use it for large categories, product details, sorting and long code/EAN lists, when the time matters. Without it, nothing changes: the default speed and price are the same as before.
Can I look up my own list of products?
Yes: put order codes, EANs or part numbers into the lookup fields (up to 200 per run). Combine it with monitoring mode to get only the products whose price or availability changed.
Can I use it through the API?
Yes. See the Python, JavaScript and cURL examples above, or the API tab.
Something doesn't work
Open an issue in the Issues tab and include the input you used.
This is an unofficial tool, not affiliated with or endorsed by T.S.BOHEMIA a.s., the operator of TSBOHEMIA.CZ. It is also known as a TS Bohemia API, TSBOHEMIA price tracker or "hlídač cen TS Bohemia".