Rimi Scraper: Latvia, Lithuania, Estonia
Pricing
from $2.00 / 1,000 result scrapeds
Rimi Scraper: Latvia, Lithuania, Estonia
Scrape Rimi's online groceries in Latvia, Lithuania and Estonia (rimi.lv, rimi.lt, rimi.ee): product names, prices in EUR, promotion prices, per-unit prices, category codes and images. Search by keyword or scrape a category. No login or cookies required.
Pricing
from $2.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
0
Monthly active users
17 days ago
Last modified
Categories
Features
Share
Extract grocery products, prices, promotion prices and per-unit prices from Rimi's online groceries in the three Baltic countries: rimi.lv (Latvia), rimi.lt (Lithuania) and rimi.ee (Estonia). Search by keyword or scrape any category. No login, no cookies, no account required.
What is Rimi Scraper?
Rimi Scraper collects structured product data from the Rimi e-shops in Latvia, Lithuania and Estonia. All three shops run on the same Rimi Baltic platform, so one actor covers them with a country input. It reads the server-rendered product grid and returns flat JSON: product name, price in EUR, regular price on promotions, per-unit price, category code, image, product code and stock status.
Rimi is part of Rimi Baltic, owned by the Swedish ICA Group, and is one of the largest grocery retailers in the Baltics. Each country's e-shop carries thousands of products across fresh produce, dairy, meat, bakery, pantry, drinks and household goods.
Popular use cases:
- Grocery price monitoring. Track prices and per-unit prices across the Rimi catalogue in one or all three countries. Spot promotions through
originalPrice. - Cross-border price comparison. The same Rimi own-brand lines are sold in Latvia, Lithuania and Estonia. Run the actor once per country and compare the same product across the Baltics.
- Competitor intelligence. Compare Rimi's range and pricing against Maxima, Barbora, Selver, Prisma and other Baltic grocers.
- Market research. Analyze assortment, pack sizes and category structure in the Baltic grocery market.
- Price comparison sites. Feed a shopping or comparison product with fresh, structured grocery data.
Countries
country | Shop | Language of names | Currency | Example search |
|---|---|---|---|---|
LV (default) | rimi.lv | Latvian | EUR | piens (milk) |
LT | rimi.lt | Lithuanian | EUR | pienas (milk) |
EE | rimi.ee | Estonian | EUR | piim (milk) |
One run covers one country. To cover all three, start three runs or three saved tasks with a different country.
How to scrape Rimi data
- Pick the country:
LV,LTorEE. Leave it out and the actor scrapes Latvia, the same as before the country input existed. - Choose what to scrape: a keyword in
searchQuery, or a category page incategoryUrl. - Set
maxResultsto the number of products you need. - Start the run and download the dataset as JSON, CSV or Excel.
Option 1: Search by keyword
Set searchQuery to any product name or keyword in the language of the shop. The actor pages through all search results up to maxResults.
- Latvia:
piens(milk),maize(bread),siers(cheese),kafija(coffee),olas(eggs) - Lithuania:
pienas(milk),duona(bread),sūris(cheese),kava(coffee),kiaušiniai(eggs) - Estonia:
piim(milk),leib(bread),juust(cheese),kohv(coffee),munad(eggs)
Option 2: Scrape a category
Set categoryUrl to a Rimi category page. A top-level category includes every product in its subcategories, so one URL can return a whole department.
- Latvia:
https://www.rimi.lv/e-veikals/lv/produkti/augli-un-darzeni/c/SH-2(fruit and vegetables) - Lithuania:
https://www.rimi.lt/e-parduotuve/lt/produktai/vaisiai-darzoves/c/SH-2 - Estonia:
https://www.rimi.ee/epood/ee/tooted/puu-ja-koogiviljad/c/SH-2
Category URLs always end in /c/SH-.... Copy one from the address bar while browsing the shop. A full URL decides the country by itself: a rimi.lt URL scrapes Lithuania even when country is left on Latvia, and the log says so. A path without the domain (/e-veikals/lv/produkti/...) uses the selected country.
If both searchQuery and categoryUrl are empty, the actor searches for milk in the language of the selected country, so a run with empty input still returns data.
Input
| Field | Type | Required | Description |
|---|---|---|---|
country | String | No | LV (default), LT or EE. Lower case works too. |
searchQuery | String | No | Product keyword in the shop's language. Ignored if categoryUrl is set. |
categoryUrl | String | No | A Rimi category page URL or path (includes all subcategories). |
maxResults | Integer | No | Maximum number of products to return (default: 100). |
proxyConfiguration | Object | No | Proxy settings. Residential proxies in the shop's country are recommended. |
Example input: Estonia, keyword search
{"country": "EE","searchQuery": "piim","maxResults": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "EE"}}
Example input: Lithuania, whole department
{"country": "LT","categoryUrl": "https://www.rimi.lt/e-parduotuve/lt/produktai/vaisiai-darzoves/c/SH-2","maxResults": 1000}
Output
Each result is a flat JSON object:
| Field | Type | Example |
|---|---|---|
name | String | "Piens Rimi pudele 2% 1l" |
brand | String | "" (Rimi listings carry no brand field) |
price | Number | 0.99 |
currency | String | "EUR" |
country | String | "LV", "LT" or "EE" |
originalPrice | Number | 1.38 (only on promotions) |
pricePerUnit | String | "0.99 EUR/l" |
inStock | Boolean | true |
productId | String | "804139" |
categoryCode | String | "SH-11-8-22" |
imageUrl | String | Primary product image URL |
url | String | Full product page URL on rimi.lv, rimi.lt or rimi.ee |
scrapedAt | String | ISO 8601 timestamp |
Example output
{"name": "Piim Alma 2,5% 1,5l","brand": "","price": 1.39,"currency": "EUR","country": "EE","url": "https://www.rimi.ee/epood/ee/tooted/piimatooted-munad-juust/piimad/piim/piim-alma-2-5-1-5l/p/200280","scrapedAt": "2026-10-15T06:50:46.791Z","inStock": true,"productId": "200280","pricePerUnit": "0.93 EUR/l","categoryCode": "SH-11-8-37","imageUrl": "https://rimibaltic-res.cloudinary.com/image/upload/b_white,c_limit,dpr_auto,f_webp,q_auto:low,w_auto/d_ecommerce:backend-fallback.png/MAT_200280_PCE_EE"}
Notes on the data
- Prices are numbers in EUR in all three countries.
currencyis always present next to the price. The per-unit price is a string such as"0.99 EUR/l"or"1.19 EUR/kg". originalPriceis the regular price of a discounted product. It only appears on products that are on promotion, typically 5 to 25% of a listing.- Brand is empty. Rimi's listing payload has no brand value. The product name usually contains the brand where one applies.
inStockreflects listing availability. Rimi listings only show products that can be ordered, so it istrueon almost every row.productIdis Rimi's product code. The same own-brand product can have a different code in each country.
Cost estimate
The price is $0.002 per result ($2 per 1,000 products) plus $0.005 per run start, the same for every country.
The actor uses plain HTTP requests, no headless browser. One request returns up to 100 products, so a full catalogue of 15,000 to 20,000 products is about 150 to 200 requests.
A run's usage cost only settles after the run reports SUCCEEDED. Reading the cost of a run that is still in progress shows a number that is far too low, so estimate spend from finished runs.
Proxy and reliability
The Rimi shops sit behind AWS CloudFront with Imperva/Incapsula fingerprinting. Single requests work from most IPs, but back-to-back requests from one datacenter IP can be throttled. The actor paces requests and, with a rotating residential proxy in the shop's country (the default), runs smoothly through large category walks.
The input form prefills a Latvian proxy. When you pick Lithuania or Estonia, the actor switches a proxy country of LV, LT or EE to the selected country, so you do not have to change the proxy by hand. Any other proxy country you set is kept as it is.
Limitations / known issues
- Brand, nutrition and detailed specifications are not part of the listing and are not scraped.
- Ratings and reviews are not available on Rimi.
- One run scrapes one country. A category URL of another Rimi country switches the run to that country.
- Very large full-catalogue runs are paced to stay under anti-bot thresholds, so they take longer than an unpaced scrape (still well under an hour per country).
Related Scrapers
Building a Baltic or European grocery price dataset? These pair well with this actor:
- Barbora Scraper. Maxima's online grocery in Lithuania, Latvia and Estonia.
- Rohlik Scraper. Grocery products and prices from Rohlik.cz, Knuspr.de and Gurkerl.at.
- Tesco Scraper. UK grocery products and prices.
- Albert Heijn Scraper. Dutch grocery products and prices.
- Apotheka Latvia Scraper. Latvian pharmacy products and prices.