Spar.si Scraper — SPAR Slovenia Grocery Products
Pricing
from $2.00 / 1,000 result scrapeds
Spar.si Scraper — SPAR Slovenia Grocery Products
Scrape grocery products from online.spar.si, SPAR Slovenia's webshop. Get product names, brands, prices (incl. promo prices), units, categories, EAN codes and images by search keyword. No login required.
Pricing
from $2.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Spar.si Scraper
Extract grocery products from online.spar.si, the webshop of SPAR Slovenia. Search by keyword and get product names, brands, prices (including active promo prices), package units, categories, EAN barcodes and images — all in structured, ready-to-use data.
This Actor pulls data directly from the site's server-rendered search results. No login, no session, no browser automation, and it never touches SPAR's underlying GraphQL API. It reads the same product data the page itself renders on the server, so runs are fast and stable.
What does Spar.si Scraper do?
Give it a Slovenian keyword (for example mleko, kruh, jogurt, or kava) and the Actor pages through online.spar.si's search results, extracting the full product listing for every match: name, brand, current price, original price when discounted, unit price, category, SKU, EAN codes, image, product URL and availability.
Because it runs on the Apify platform, you also get scheduling, monitoring, proxy rotation, and integrations (webhooks, Make, Zapier, Google Sheets) out of the box.
Why use Spar.si Scraper?
- Price monitoring. Track SPAR Slovenia prices and active promotions over time.
- Market research. Compare product ranges and pricing against other Slovenian grocery retailers.
- Assortment tracking. See which brands and products are listed under a given category or keyword.
- Barcode/EAN mapping. Pull EAN codes alongside SPAR's internal SKU for catalogue matching.
- No anti-bot headaches. The search page is plain server-rendered HTML — no CAPTCHAs, no browser fingerprinting to work around.
How to scrape Spar.si data
- Open the Actor and go to the Input tab.
- Enter a Search Query in Slovenian (e.g.,
mleko,kruh,sir,jogurt,kava). - Set Max Results to control how many products you want (the site serves 50 products per results page).
- Click Start. When the run finishes, open the Output tab and download your data as JSON, CSV, Excel, or HTML.
- To track prices over time, schedule the Actor to run daily or weekly and compare exports.
That's it — no account, no API key, no store selection needed.
Input
| Field | Type | Description |
|---|---|---|
searchQuery | string | Slovenian search keyword. Defaults to mleko if left empty. |
maxResults | integer | Maximum number of products to return. Default 100. |
proxyConfiguration | object | Apify Proxy settings. Datacenter proxies work fine — the search page has no anti-bot protection. |
Example input:
{"searchQuery": "mleko","maxResults": 20,"proxyConfiguration": { "useApifyProxy": true }}
Output
Each item in the dataset looks like this:
{"productName": "MLEKO 3,5% M.M., POMURSKO MLEJKO, 200ML","brand": "Pomurske Mlekarne","price": 0.65,"currency": "EUR","unitPrice": 3.25,"unitPriceUnit": "KG","category": "TRAJNO MLEKO","sku": "413677","ean": ["3831040002283", "3831040002306"],"imageUrl": "https://cdn1.interspar.at/cachableservlets/articleImage.dam/si/413677/dt_zoom.jpg","url": "https://online.spar.si/p/mleko-35-mm-pomursko-mlejko-200ml-413677","isAvailable": true,"scrapedAt": "2026-07-13T00:10:00.000Z"}
| Field | Description |
|---|---|
productName | Full product name as listed on the site |
brand | Brand name, when provided |
price | Current selling price — the active promo price if the product is discounted |
priceBeforeDiscount | Original price, only present when a promotion is active |
currency | Always EUR |
unitPrice | Price per unitPriceUnit (e.g. per KG or per L) |
unitPriceUnit | Unit the unit price is expressed in |
category | Most specific product category on the site |
sku | SPAR/Instaleap internal product code |
ean | EAN/barcode(s), when present |
imageUrl | Main product photo URL |
url | Direct product page link |
isAvailable | Whether the product is currently orderable |
scrapedAt | ISO 8601 timestamp of when the item was collected |
How it works
online.spar.si is a Next.js storefront running on the Instaleap e-grocery platform. The client app talks to a GraphQL endpoint for live search-as-you-type and cart operations, but the initial search results page is fully server-rendered: Next.js embeds the complete product list — price, brand, SKU, EAN, categories, stock — inside the page's React Server Component "flight" payload (the self.__next_f.push(...) script chunks used for client hydration).
This Actor fetches https://online.spar.si/search?name={query}¤tPage={n} with a plain HTTP GET, reassembles the flight payload, and extracts every embedded product object directly — no GraphQL call, no API key, no session cookie required. This is both simpler and more stable than reversing the GraphQL schema, since the site's own SSR step already assembled exactly the data this Actor needs.
Is it legal to scrape Spar.si?
This Actor only collects publicly available product listing data (names, prices, categories) that anyone can see by browsing online.spar.si. It doesn't access any account data, doesn't bypass paywalls or logins, and doesn't collect personal information. Always check the target site's terms of service and applicable law (e.g. GDPR if you plan to process personal data) before scraping, and use the data responsibly.
Tips
- Slovenian keywords return the most results — try
mleko,kruh,sir,jajca,kava,čokolada. - A broader keyword returns more pages; a narrow one is faster if you only need a specific product line.
- Promotions are time-boxed — re-run periodically if you're tracking price changes, since
priceBeforeDiscountonly appears while a promo is active.
Support
Found a product field missing or a page that doesn't scrape correctly? Open an issue on the Actor's Apify Store page and we'll take a look.