Košarica Download

For retailers

KosaricaBot

KosaricaBot/1.0 (+https://kosarica.ai/bot)

KosaricaBot is the crawler of the Košarica app. It reads publicly published prices and product details from Slovenian retailers, and each chain's store list (addresses, locations and opening hours).

When and how often

  • Prices: once a day per chain, as a rule at the time in the table: at night within that source's window between 02:00 and 06:00 Slovenian time, and SPAR in the morning, only within the time its Visit-time allows (04:00–08:45 UTC).
  • Store list (addresses, locations and opening hours): once a day per chain, as a rule at the time in the table. Mostly at night or early in the morning, SPAR within its Visit-time, Eurospin in the morning.
  • A run takes from a minute to an hour and a half (SPAR's prices are on about 420 pages, one every 10 seconds). After a fix we may also start one by hand, possibly outside the night window (SPAR never outside its Visit-time), with the same rate limits and the same robots.txt rules.

The times are when a run starts, in Slovenian time; requests per minute are per site.

ChainPricesStore list
Mercator03:11 · up to 20/min00:47 · up to 12/min
Lidl03:17 · up to 20/min01:13 · up to 12/min
Tuš03:47 · up to 20/min01:31 · up to 12/min
Jager03:53 · up to 4/min23:07 · up to 4/min
dm04:07 · up to 20/min05:21 · up to 12/min
Eurospin04:29 · up to 20/min10:23 · up to 12/min
HOFER04:31 · up to 30/min05:11 · up to 6/min
SPAR / INTERSPAR06:23 · up to 6/min06:13 · up to 6/min

How it behaves

  • It follows robots.txt, including Crawl-delay and Visit-time.
  • It sends one request at a time and at most as many requests per minute as the table says (never more than 30).
  • From retailers it reads only what they publish: their website and their public product and store finders, also where these are on another host. The table and “Other sources” below list every host it reads.
  • It stops on HTTP 403 or 429 or any bot check and never bypasses protections, logins or limits.
  • When a site does not answer, it tries again after longer and longer pauses; a whole run at most twice more the same night.
  • It collects no personal data and uses no user accounts.

The hosts KosaricaBot reads for each chain (and each host's robots.txt):

ChainPricesStore list
Mercatormercatoronline.siwww.mercator.si
Lidlwww.lidl.siwww.lidl.si
Tušwww.tus.siwww.tus.si
Jagerwww.trgovinejager.comwww.trgovinejager.com
dmwww.dm.si
products.dm.de
www.dm.si
store-data-service.services.dmtech.com
Eurospinwww.eurospin.siwww.eurospin.si
HOFERasl.api.hofer.siwww.hofer.si
asl.api.hofer.si
uberall.com
SPAR / INTERSPARonline.spar.siwww.spar.si

Other sources (not retailer sites): once a week it downloads the public Open Food Facts data export from static.openfoodfacts.org, which redirects the download to its storage at openfoodfacts-ds.s3.eu-west-3.amazonaws.com, and takes links to product photos from it. Once a day it also downloads a public price list of AI models (raw.githubusercontent.com) and the European Central Bank’s euro reference rate (www.ecb.europa.eu), each with a single request and without checking robots.txt.

How to stop it

Add User-agent: KosaricaBot and Disallow: / to your robots.txt, or email us at podpora@kosarica.ai.

KosaricaBot follows the robots.txt of each host it reads, so add the two lines to the robots.txt of the host in the table: for Mercator's and SPAR's prices, mercatoronline.si and online.spar.si. asl.api.hofer.si, products.dm.de and store-data-service.services.dmtech.com have no robots.txt of their own, so for HOFER and dm it follows the robots.txt of www.hofer.si or www.dm.si: when that closes the whole site, or its product pages (for the store list, its store pages), to KosaricaBot, reading from those hosts stops too.