Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API & Scraper
Pigu Group runs the largest marketplace in the Baltics under four names: pigu.lt in Lithuania, 220.lv in Latvia, kaup24.ee in Estonia and hobbyhall.fi in Finland.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
This API reads all four with one parameter, country (lt, lv, ee, fi). search takes a keyword with a price range, sort and page; category lists one category by id; product returns one product with the main offer, every other seller's offer, the delivery options with date and fee, and the full specification table. Every price is in EUR and comes in two fields: price is what anyone pays, member_price is the Pigu PLUS loyalty price when the shop shows one.
What a Pigu field actually contains
Fields that read differently from how they look. Every row was measured against live responses on 2026-10-15.
| Field | What it holds |
|---|---|
| price, member_price | price is the price every buyer pays (the shop labels it the usual price). member_price is the Pigu PLUS loyalty price, shown next to it on most products and only available to members of the shop's loyalty programme. Example: 375.00 EUR for everyone, 230.25 EUR for members. The shop's own analytics and structured data report the member figure as the price; this API keeps the two apart. |
| product_id, modification_id | A product is opened with both ids, and both are on every search and category row. A modification id that belongs to another product returns NOT_FOUND rather than that other product. |
| supply_type, seller_id | 1P means the shop itself sells the product, 3P a marketplace seller. product names the main seller with its rating, and offers lists every other seller with price, member price, rating count and delivery date. |
| delivery | On product: each delivery method the shop offers for the main offer (pickup in a store, parcel locker, post office, courier) with the date it states and the fee in EUR. The dates are the shop's estimate on the day of the call. |
| installment_from_per_month | The lowest monthly payment the shop advertises for buying in instalments. It is not a price. |
| sponsored | true for rows the shop pays to place at the top of a listing. |
| next_cursor, result_set | The shop answers the same keyword from one of two result sets, chosen per request (lego technic: 451 or 261 hits). Page on with next_cursor: every later page is taken from page 1's result set and products already returned are left out (duplicates_dropped). If the shop will not answer from the same set, the page says result_set_changed: true. |
| total | The shop's own count of matching products. A search with no match returns total 0 and an empty list. |
On 12 products in the four shops, price equalled the price printed on the product's own page for everyone on 12 of 12 and member_price the printed member price on 12 of 12. A product opened from a search row returned the same product and the same two prices on 24 of 24 round trips.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/pigu/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "lego technic",
"country": "lt"
}
}{
"ok": true,
"meta": {
"api": "pigu",
"endpoint": "search",
"mode": "live",
"latency_ms": 6948,
"record_count": 60,
"bytes": 1104749,
"cache_hit": false,
"upstream_requests": 3,
"refused_attempts": 2,
"total": 451,
"country": "lt",
"result_set_tries": 1,
"charged_credits": 3,
"version": "0.1.0",
"request_id": "ec3f693ae10b402b",
"queue_ms": 1.1,
"fetched_at": "2026-10-15T17:03:03.057Z"
},
"data": {
"country": "lt",
"shop": "pigu.lt",
"query": "lego technic",
"results": [
{
"product_id": "256931847",
"modification_id": "280867832",
"title": "LEGO® Technic „Fast and Furious“ automobilis „Dodge Charger R/T“ 42231",
"brand": "LEGO®",
"url": "https://pigu.lt/lt/kudikiams-ir-vaikams/zaislai/konstruktoriai-ir-kaladeles/lego-technic-fast-and-furious-automobilis-dodge?id=256931847",
"image": "https://lt2.pigugroup.eu/colours/256/706/397/256706397/lego-technic-fast-and-furious-automobilis-dodge-6e581_large.jpg",
"currency": "EUR",
"price": 159.99,
"member_price": 119.06,
"installment_from_per_month": 3.16,
"rating": 5,
"review_count": 1,
"available": true,
"item_status": "active",
"supply_type": "1P",
"seller_id": "80",
"delivery_promise": "pickup-tomorrow",
"delivery_label": "ATSIIMK RYTOJ",
"labels": [
"*MOKI3 - BE PABRANGIMO"
],
"category_id": "2630",
"sponsored": false
},
{
"product_id": "241505706",
"modification_id": "266394951",
"title": "LEGO® Technic Ferrari FXX K 42212",
"brand": "LEGO®",
"url": "https://pigu.lt/lt/kudikiams-ir-vaikams/zaislai/konstruktoriai-ir-kaladeles/lego-technic-ferrari-fxx-k-42212?id=241505706",
"image": "https://lt2.pigugroup.eu/colours/242/077/616/242077616/lego-technic-ferrari-fxx-k-42212-1e208-price_large.jpg",
"currency": "EUR",
"price": 64.99,
"member_price": 51.69,
"installment_from_per_month": 1.37,
"rating": 5,
"review_count": 5,
"available": true,
"item_status": "active",
"supply_type": "1P",
"seller_id": "80",
"delivery_promise": "pickup-tomorrow",
"delivery_label": "ATSIIMK RYTOJ",
"labels": [
"*MOKI3 - BE PABRANGIMO"
],
"category_id": "2630",
"sponsored": false
},
{
"product_id": "68618821",
"modification_id": "85212331",
"title": "42154 LEGO® Technic 2022 Ford GT",
"brand": "LEGO®",
"url": "https://pigu.lt/lt/kudikiams-ir-vaikams/zaislai/konstruktoriai-ir-kaladeles/lego-technic-2022-ford-gt-42154?id=68618821",
"image": "https://lt2.pigugroup.eu/colours/694/353/46/69435346/42154-lego-technic-2022-ford-gt-ec976_large.jpg",
"currency": "EUR",
"price": 139.99,
"member_price": 98.65,
"installment_from_per_month": 2.62,
"rating": 4.6,
"review_count": 43,
"available": true,
"item_status": "active",
"supply_type": "1P",
"seller_id": "80",
"delivery_promise": "pickup-tomorrow",
"delivery_label": "ATSIIMK RYTOJ",
"labels": [
"*MOKI3 - BE PABRANGIMO"
],
"category_id": "2630",
"sponsored": false
}
],
"total": 451,
"page": 1,
"last_page": 8,
"has_more": true,
"next_cursor": "ADJ7InEiOiJsZWdvIHRlY2huaWMiLCJjIjoibHQiLCJwIjoyLCJycyI6ImFsZ29saWEifQ9QeAcOZRWqBBcKRQTOZBkHJFKfDuZD9gTOZCgO5kPxBQlsNQ7mQ-cPbi2sCKNspg_RmzgM3ZGbBQlsKw5lFa8HfI6hD8X8vwb4dYUHJFKkDmUVuQzdkZYHDGyODuZD4g8u76wO5kQACKNsqw5lFbQO5kP7Bvh16QUJbDoPLu-nD8LY-gUJbD8FYGcQDy7vtgd8jpcIo2ywDuZD7A9uLjgPbi1XByRSmg9K_lkPLu-xBM5kHg9uLbEOZRWlDN2RkQ9uLVwEzmQPBGzDWQF519oEsbp5AvEEvwIriq8B5oXLAiuKvgIriqUB1xVyAw32dQ",
"currency": "EUR",
"search_kind": "search",
"result_set": "algolia",
"result_set_requested": null,
"result_set_changed": false,
"duplicates_dropped": 0,
"redirected_to": null,
"price_filter_applies_to": null
}
}What the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Keyword search in one Pigu Group shop (country lt/lv/ee/fi). Each row: product id and modification id (pass both to `product`), title, brand, URL, image, price in EUR that everyone pays, Pigu PLUS member price when the shop shows one, monthly instalment from, rating and review count, seller id and supply type (1P = sold by the shop, 3P = marketplace seller), delivery promise, promotion labels, sponsored flag, category id (feeds `category`). Plus the shop's own total and page count. Page on with `next_cursor`: it keeps every page in page 1's result set and drops rows already returned. One of `query` or `cursor` is required. | Pricing teams call search to get keyword search in one Pigu Group shop (country lt/lv/ee/fi). | query, country, min_price, max_price, sort, ... |
| category | One category listing of a Pigu Group shop, by the category id a search row carries in `category_id` (or the id in a shop category URL's listing). Same row fields as `search`, plus the category title and the shop's own product count. | Marketplace operators call category to get one category listing of a Pigu Group shop, by the category id a search row carries in `catego…. | category_id, country, sort, page |
| product | One product of a Pigu Group shop by its product id AND modification id (both are on every search/category row). Returns the main offer's price for everyone and member price, main seller with rating, every seller's offer with both prices, rating count and delivery date, the delivery options with date and fee, specification table, description, images. | Catalog enrichment teams call product to get one product of a Pigu Group shop by its product id AND modification id (both are on every sea…. | product_id, modification_id, country |
Call search from your stack
curl -X POST https://api.reefapi.com/pigu/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"lego technic","country":"lt"}'import requests
r = requests.post(
"https://api.reefapi.com/pigu/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "lego technic",
"country": "lt"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/pigu/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "lego technic",
"country": "lt"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.pigu.search with {"query":"lego technic","country":"lt"}.Who uses this API and why
- Track pigu.lt, 220.lv, kaup24.ee and hobbyhall.fi prices daily, with the member price kept apart.
- See every marketplace seller's offer for one product and who has the lowest price.
- Compare delivery dates and fees across sellers and countries.
- Monitor a category's prices and sponsored placements in the Baltics.
- Collect full specification tables and manufacturer codes for product matching.
Questions developers ask before integrating
Which countries and currency?
Four shops of one company: country=lt for pigu.lt (Lithuania), lv for 220.lv (Latvia), ee for kaup24.ee (Estonia) and fi for hobbyhall.fi (Finland). All prices are in EUR. Product and category ids are per shop.
Why are there two prices?
The shops sell a paid loyalty membership (Pigu PLUS, 220.lv PLUS, Kaup24 PLUS, HobbyHall PLUS) and show a lower member price on most products. price is the price for everyone; member_price is the member price, null when the product has none.
Does the price filter use the member price?
Yes. The shop applies min_price and max_price to the lowest price a buyer can pay, which is the member price when there is one. So a row inside a 200-400 EUR range can have a price for everyone above 400; its member_price is inside the range.
Do I need an account?
No. Everything is read logged out: prices, member prices, sellers, offers, delivery dates and specifications.
How do I page through a search?
Pass next_cursor from each answer as cursor while has_more is true. The shop serves two different result sets for the same keyword; the cursor keeps every page in page 1's set and drops products already returned. Measured on lego technic, 3 pages in 5 runs: no product on two pages. Category listings page with page=2, 3 and have a single result set.
Where do category ids come from?
Every search row carries category_id. Pass it to category with the same country to list that whole category (for example 85 is mobile phones on pigu.lt, 879 products).
Can I sort?
Yes: best_selling (the shop's default), price_asc, price_desc, delivery (fastest first) and rating.
What is the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API?
Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API is a ReefAPI endpoint group for the baltic and finnish marketplace in one api: eur price for everyone and the plus member price, every seller's offer, delivery dates and fees, full specifications. It returns live JSON through POST requests under /pigu/v1.
Is the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) login or account?
No login to Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API use?
Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call pigu actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) API a Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) scraper?
It is the managed alternative to a DIY Pigu (pigu.lt, 220.lv, kaup24.ee, hobbyhall.fi) scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same the baltic and finnish marketplace in one api: eur price for everyone and the plus member price, every seller's offer, delivery dates and fees, full specifications back as clean JSON.