Skroutz APIskroutz.gr ↗
Access Skroutz.gr product data via API: search products, browse categories, compare store prices, track price history, and read user reviews across Greek retailers.
What is the Skroutz API?
The Skroutz.gr API covers 7 endpoints for querying product data from Greece's largest price comparison platform. Use search_products to find items by keyword, get_product_stores to retrieve per-store prices and shipping costs, or get_price_history to pull time-series pricing data across 1-month, 3-month, 6-month, and all-time windows — all returning structured JSON without needing to parse the site yourself.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/f51372c8-2856-4aef-972a-050ad42a3f9a/get_all_categories' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace skroutz-gr-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Skroutz.gr SDK — search products, compare store prices, read reviews."""
from parse_apis.skroutz_gr_api import Skroutz, ProductNotFound
client = Skroutz()
# Search for laptops — limit caps total items fetched.
product = client.productsummaries.search(query="laptop", limit=1).first()
print(f"Found: {product.name} (SKU: {product.sku_id})")
# Drill down to full product details via the summary's navigation op.
detail = product.details()
print(f"Product URL: {detail.url}")
print(f"Specs: {detail.specs}")
# List stores selling this product with prices.
for store in detail.stores.list(slug=detail.slug, limit=3):
print(f" Store: {store.shop_name} — €{store.price} + €{store.shipping_cost} shipping")
# Read user reviews for the product.
for review in detail.reviews.list(limit=3):
print(f" Review by {review.author}: {review.rating}★ — {review.text}")
# Browse categories and list products in one.
cat = client.categories.list(limit=1).first()
for p in cat.products(slug="kinhta-thlefwna", limit=3):
print(f" Category product: {p.name} ({p.sku_id})")
# Get price history for a product.
history = client.pricehistories.get(sku_id=detail.sku_id, slug=detail.slug)
print(f"Price history — min: {history.min_price}, popularity: {history.popularity}")
# Typed error handling for a missing product.
try:
bad = client.productsummaries.search(query="nonexistent_xyz_999", limit=1).first()
if bad:
bad.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.sku_id}")
print("Exercised: search / details / stores.list / reviews.list / categories.list / products / pricehistories.get")
Get all top-level product categories from the navigation menu. Returns a flat list of category objects each carrying an ID, Greek display name, and canonical URL. Use category IDs and slugs to feed get_category_products.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of category objects with id, name, and url"
},
"sample": {
"data": {
"categories": [
{
"id": "407",
"url": "https://www.skroutz.gr/c/407/oikiaka-klimatistika-inverter.html",
"name": "Κλιματιστικά"
},
{
"id": "40",
"url": "https://www.skroutz.gr/c/40/kinhta-thlefwna.html",
"name": "Κινητά"
}
]
},
"status": "success"
}
}About the Skroutz API
Categories and Product Discovery
get_all_categories returns the top-level navigation taxonomy as an array of objects, each with an id, name, and url. Pass a category's slug and category_id to get_category_products to page through its listings. The response includes a products array of SKU objects (each with sku_id, name, slug, and url) plus a count field for the total result set. Alternatively, search_products accepts a free-text query and returns a matching results array with the same SKU-level fields.
Product Details and Specifications
get_product_details takes a sku_id and slug — both available from search or category results — and returns the full specs object alongside the product name and canonical url. The specs field exposes structured technical attributes as key-value pairs (e.g. processor, RAM, display size) that vary by product category.
Pricing, Store Availability, and History
get_product_stores returns a stores array for a given sku_id, including each seller's price, shipping cost, and stock availability, as well as aggregate fields total_shops and min_price. Optionally providing slug improves shop name resolution in the response. get_price_history returns three time-series graph objects — min_price, popularity, and shop_count — across standard time windows, making it straightforward to detect price trends or demand shifts for a product.
User Reviews
get_product_reviews retrieves the review list for a product, with each entry in the reviews array carrying the author name, date, rating, review text, and helpfulness signals. The count field reflects the total number of reviews on record for that SKU.
The Skroutz API is a managed, monitored endpoint for skroutz.gr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when skroutz.gr changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official skroutz.gr API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price-drop alert tool by polling
get_product_storesformin_pricechanges on tracked SKUs. - Visualize price trends over time using
get_price_historymin_price and shop_count time-series data. - Aggregate competitive pricing intelligence across Greek e-commerce retailers for a specific product category.
- Populate a product catalog with structured specs by querying
get_product_detailsfor each SKU. - Analyze consumer sentiment on Greek electronics or appliances by collecting reviews via
get_product_reviews. - Mirror Skroutz category taxonomy into a localized shopping app using
get_all_categoriesandget_category_products. - Track retailer count fluctuation over time using the
shop_countseries fromget_price_history.
| 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 | 100 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 Skroutz.gr have an official developer API?+
What does `get_product_stores` return, and how does it differ from `get_price_history`?+
get_product_stores returns a snapshot of current seller-level data: the full stores array with individual shop prices, shipping costs, and availability, plus aggregate fields total_shops and min_price. get_price_history does not show individual stores — it returns aggregate time-series objects (min_price, popularity, shop_count) over historical windows (1 month, 3 months, 6 months, all time), suitable for trend analysis rather than real-time purchase decisions.Does the API cover seller profile pages or store-level ratings?+
get_product_stores, but dedicated seller profile data — such as store-level review scores or fulfillment metrics — is not exposed. You can fork this API on Parse and revise it to add a store-detail endpoint covering that data.Is pagination supported across all listing endpoints?+
get_category_products accepts an optional page parameter for paginating through category listings, and its response includes a count field so you can calculate total pages. search_products and get_product_reviews do not currently expose pagination parameters — they return the available result set for the given query or SKU in a single response.