jula.fi APIwww.jula.fi ↗
Access Jula.fi product data via 3 endpoints. Search by keyword, browse categories, and retrieve SKUs, VAT prices, brand info, stock status, and reviews.
curl -X GET 'https://api.parse.bot/scraper/80116cba-47d0-4afb-a62e-b72797e05ead/search_products?query=hammer&offset=0&page_size=24' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with pagination. Returns product SKUs, prices, brands, stock status, and review scores.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (e.g. 'hammer', 'drill') |
| offset | integer | Pagination offset (start from 0) |
| page_size | integer | Number of products per page |
{
"type": "object",
"fields": {
"query": "string - the search term used",
"total": "integer - total matching products",
"offset": "integer - current offset",
"products": "array of product objects with sku, product_id, title, url, brand, price_inc_vat, price_exc_vat, price_type, is_sellable, in_web_stock, category, parent_category, review_score, review_count",
"page_size": "integer - page size used",
"has_next_page": "boolean - whether more results exist",
"next_page_offset": "integer - offset for next page"
},
"sample": {
"data": {
"query": "vasara",
"total": 56,
"offset": 0,
"products": [
{
"sku": "012521",
"url": "/catalog/tyokalut-ja-koneet/kasityokalut/isku-vaantotyokalut/vasarat/vasara-012521/",
"brand": "Meec Tools",
"title": "Vasara 16 Oz 330 mm",
"category": "Vasarat",
"price_type": "Base",
"product_id": "01017871",
"is_sellable": true,
"in_web_stock": true,
"review_count": 101,
"review_score": 4.6,
"price_exc_vat": 3.98,
"price_inc_vat": 4.99,
"parent_category": "Isku- ja vääntötyökalut"
}
],
"page_size": 48,
"has_next_page": true,
"next_page_offset": 48
},
"status": "success"
}
}About the jula.fi API
The Jula.fi API gives developers structured access to the Finnish hardware store's product catalog through 3 endpoints covering search, category browsing, and individual product detail. The search_products endpoint alone returns 11 fields per product including SKU, brand, price with and without VAT, sellability status, and web stock flags. Use it to build price trackers, catalog mirrors, or procurement tools targeting the Scandinavian hardware market.
Endpoints and What They Return
The API exposes three endpoints. search_products accepts a keyword query plus optional offset and page_size parameters, returning a paginated list of matching products. Each result includes sku, product_id, title, url, brand, price_inc_vat, price_exc_vat, price_type, is_sellable, and in_web_st (web stock flag). The response also includes total, has_next_page, and next_page_offset so you can walk through large result sets programmatically.
get_category_products accepts a category_path string matching the path segments after /catalog/ on jula.fi — for example tools-and-machines/hand-tools/screwdrivers — and returns the full product list for that category with the same field set as search results. This is useful for bulk ingestion of a specific product tree without needing a search term.
Product Detail
get_product_details accepts a product_path and returns a richer record for a single item: description, review_count, and review_score (average out of 5) in addition to the pricing and identification fields shared across endpoints. Both VAT-inclusive and VAT-exclusive euro prices are always present, which matters for B2B vs. consumer use cases. review_count and review_score are nullable — products with no reviews return null for both fields.
Coverage and Scope
All pricing is in euros and reflects the Finnish Jula storefront. The is_sellable boolean indicates whether a product can currently be purchased, and in_web_st indicates web stock availability. These two fields together let you filter out discontinued or out-of-stock items without fetching a separate availability endpoint.
- Track price changes on specific Jula SKUs by polling
get_product_detailsand comparingprice_inc_vatover time. - Build a category-level product feed for a procurement system using
get_category_productswith a known category path. - Compare brand representation across a hardware category by aggregating the
brandfield from category product listings. - Filter purchasable products from keyword search results using
is_sellableandin_web_stflags. - Aggregate review scores across a product category by combining
get_category_productswithget_product_detailscalls. - Sync a local database of Finnish hardware SKUs and descriptions for offline catalog browsing or POS integration.
- Identify product gaps or pricing anomalies by scanning multiple category paths and comparing
price_exc_vatacross brands.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Jula.fi have an official public developer API?+
How does pagination work in `search_products`?+
has_next_page (boolean) and next_page_offset (integer). Pass next_page_offset as the offset parameter on your next request, keeping page_size the same, to fetch the following page. Repeat until has_next_page is false.Does `get_category_products` return all products in a category or just the first page?+
category_path and exposes a total count. Unlike search_products, there is no pagination offset parameter for this endpoint — the full category product list is returned in a single response.Are store-level stock quantities or specific store locations available?+
in_web_st (web stock flag) and is_sellable at the product level, but per-store inventory counts and store location data are not included. You can fork this API on Parse and revise it to add a store-stock endpoint if that granularity is needed.