toppreise.ch APItoppreise.ch ↗
Access Swiss retail price comparisons, product specs, price history, and shop listings from Toppreise.ch via 6 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/2ead1174-4b95-4c51-b9ff-1d8d3ea286da/search_products?page=0&query=iPhone' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword on Toppreise.ch with optional pagination. Returns a list of matching products with names, URLs, and starting prices.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed) |
| queryrequired | string | Search keyword (e.g. 'iPhone', 'Samsung Galaxy') |
{
"type": "object",
"fields": {
"page": "integer, the page number returned",
"query": "string, the search query used",
"products": "array of product objects with product_id, name, url, and price_starting"
},
"sample": {
"data": {
"page": 0,
"query": "iPhone",
"products": [
{
"url": "https://www.toppreise.ch/preisvergleich/Smartphones/APPLE-iPhone-15-128GB-Schwarz-MTP03ZD-A-p739106",
"name": "APPLEiPhone15, 128GB, Schwarz (MTP03ZD/A)",
"product_id": "739106",
"price_starting": "499.95"
}
]
},
"status": "success"
}
}About the toppreise.ch API
The Toppreise.ch API exposes 6 endpoints covering product search, retailer offers, technical specifications, and historical price data from Switzerland's price comparison platform. The search_products endpoint accepts a keyword query and returns matching products with their starting prices and product IDs, which feed directly into detail and history lookups. All monetary values are in CHF.
Product Search and Offers
The search_products endpoint takes a required query string and an optional 0-indexed page integer, returning an array of product objects each containing product_id, name, url, and price_starting. These IDs can be passed directly to get_product_details, which returns a full offers array — one entry per retailer — with shop_name, shop_id, shop_url, price, offer_name, and availability. Either a product_id or a product_url is accepted as input, making it straightforward to work from search results or from a known URL.
Specifications and Price History
get_product_specs retrieves the technical datasheet for a product as a flat key-value specs object. Field names reflect the German-language site (e.g. Marke, Typ, Betriebssystem, Bilddiagonale), so Swiss and European product attribute names should be expected. get_price_history takes a product_id and returns a history array of two sub-arrays — one for shipping price and one for pickup price — each as [timestamp_ms, price_chf] pairs covering approximately the past year of daily data points.
Shop Directory
list_shops requires no inputs and returns the full registry of retailers on Toppreise.ch as an array of objects with shop_id, name, and url. Specific retailer profiles can be fetched with get_shop_details, which accepts either a shop_id or shop_url and returns the shop's name, url, shop_id, and a details object containing ratings and associated metadata. This is useful for filtering offer results or building shop-level aggregations.
- Track daily CHF price fluctuations for electronics across Swiss retailers using
get_price_historytimestamp arrays. - Build a price alert system by polling
get_product_detailsoffers and comparing retailer prices for a specific product. - Aggregate product specifications from
get_product_specsto create structured comparison tables for Swiss consumer electronics. - Index the full retailer directory with
list_shopsto map shop IDs to names across offer data. - Identify the cheapest shipping vs. pickup offer by comparing both price series in
get_price_historyresponse arrays. - Surface starting prices in CHF for product search results using
search_productsfor a keyword-driven shopping tool. - Cross-reference
get_shop_detailsratings with offer prices fromget_product_detailsto rank retailers by value and reputation.
| 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 Toppreise.ch have an official developer API?+
What does `get_price_history` return, and how far back does it go?+
get_price_history returns a history field containing two sub-arrays of [timestamp_ms, price] pairs — one series for shipping price and one for pickup price. Data covers approximately the past year of daily points. The endpoint requires a product_id and does not accept date range filters; you receive the full available history for that product.Does `get_product_details` return stock levels or delivery time estimates?+
offers array includes an availability field, but detailed stock counts or specific delivery-time strings are not broken out as separate fields. The API covers shop name, price, offer name, and availability status per retailer. You can fork the API on Parse and revise it to add any additional offer fields the source exposes.Does the API cover product categories, subcategories, or category browsing?+
search_products, product details, specs, price history, and shop data, but does not expose a category tree or category-browse endpoint. You can fork it on Parse and revise to add the missing endpoint.Are product specs returned in English or German?+
get_product_specs follow the German-language naming used on Toppreise.ch — for example Marke (brand), Betriebssystem (operating system), and Bilddiagonale (screen diagonal). Values are also in German where applicable. No translation layer is applied.