Every Swiss shop's price for a product, with shipping and its daily price history
toppreise.ch is Switzerland's price comparison site.
6 active endpoints, on 2 and 3 credit tiers.
- POST/toppreise/v1/search
- POST/toppreise/v1/filters
- POST/toppreise/v1/product
- POST/toppreise/v1/offers
- POST/toppreise/v1/price_history
- POST/toppreise/v1/series
What toppreise.ch endpoints does ReefAPI ship?
6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
toppreise.ch API
5 of 6 endpoints, ready to run
Find products and product series by keyword or category
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the toppreise.ch API works
toppreise.ch is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 530 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From a keyword to every Swiss shop's price and the price curve
Search toppreise.ch, narrow it with brand or shop ids, then read the offer lists and price history.
Brands, shops, product series and sub-categories toppreise offers for the words, with ids and hit counts.
Products and series with the lowest price, lowest price including shipping, number of offers and availability.
Every shop: price, shipping, total, availability, shop rating and payment methods, used offers apart.
The daily lowest item price and lowest price including shipping, with today's, the lowest and the highest price.
A dated CHF price feed per product: the lowest price, every competing Swiss shop with shipping and total, and how today's price compares with the past year.
curl -X POST https://api.reefapi.com/toppreise/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"kaffeevollautomat"}'{
"ok": true,
"data": { … },
"meta": {
"api": "toppreise",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a toppreise.ch field actually contains
Fields that read differently from how they look. Every row was measured against live toppreise.ch pages on 2026-10-15.
| Field | What it holds |
|---|---|
| row_type | product or series. A product row has product_id (the number after -p in its URL), a series row has series_id and a variants list of product rows. product_id goes into product, offers and price_history; series_id into series. 8 of 8 product ids and 3 of 3 series ids came back as the same record. |
| price_min, price_min_incl_shipping | The lowest item price and the lowest price including shipping toppreise prints on the card, in CHF. They equalled the product page's lowest price and the cheapest offer's total on 8 of 8 products (an iPhone case: 31.90 item, 36.80 with shipping). |
| offers[].total_price | toppreise's price including shipping for the shop's cheapest payment method. On 54 of 56 offer rows it was item price plus shipping; on the other 2 a payment discount or fee applies (397.10 + 0.00 shipping, total 385.20 with a 3% prepayment discount). price_difference shows that amount and total_has_adjustment marks the row. |
| used_offers | Second-hand offers toppreise lists on the same product, with condition (for example akzeptabel). They are often cheaper than the cheapest new offer (257.30 against 284.35 for one coffee machine) and are never mixed into offers or price_min. |
| offers[].availability_code | toppreise's delivery class: 1 in stock at the shop's own warehouse, 2 from a supplier or foreign warehouse, 3 within a week, 4 within two weeks, 5 within four weeks, 9 no information. availability carries the site's wording. |
| shop_rating, shop_rating_count | The shop's rating on toppreise.ch and how many ratings it has (5.4 from 2,770). |
| total, total_capped | The number of hits toppreise prints. It stops at 10,000 ("more than 10'000"); total_capped is then true. Sorting by price lists every product separately, so the same search counts 1,245 hits by price and 1,115 by popularity, where series are grouped. |
| price_history.points[] | One point per day: price (lowest item price) and price_incl_shipping. The last point is yesterday's; current is today's price as the chart prints it, so the two can differ after a price change. |
Prices are in Swiss francs as toppreise.ch prints them. The same offer lists came back identical from three different network locations (38 of 38 row comparisons).
toppreise.ch coverage, measured
Every number below was read from live toppreise.ch pages on 2026-10-15, in two runs of 60 calls each.
Switzerland, Swiss francs. "kaffeevollautomat" matched 1,115 hits, the Vollautomaten category 153, Smartphones 4,601; broad words such as "iphone 17" stop at the site's 10,000 cap.
"kaffeevollautomat" 1,115 hits → brand De'Longhi 25 (24 of 24 rows on the page De'Longhi), shop digitec 323, in stock 270, within a week 824, category Vollautomaten 140.
The card's lowest price equalled the product page's lowest price on 8 of 8 products and the cheapest offer on 8 of 8; total equalled price plus shipping on 54 of 56 offer rows, the 2 others carry the payment discount as price_difference.
183 daily points for 6m on products listed long enough; the series' lowest and highest equalled the chart's printed lowest and highest on 8 of 8 products.
24 rows per page; three consecutive pages shared 0 rows; pages stop at 100.
No price-range filter; offer lists in toppreise's own order (cheapest total first); shop detail pages and user reviews are not returned.
What people build with toppreise.ch
The jobs this data is most often used for.
endpoints
credits per call
Track every Swiss shop's CHF price, shipping and availability for a product list.
Read toppreise's daily price history to judge whether today's price is a good one.
Compare used offers with the cheapest new price for the same product.
Map a category with lowest prices, offer counts, GTINs and specs.
What toppreise.ch data costs
The cheapest call here is 2 credits, so $15/mo (Pro) buys 5,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 530 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/toppreise/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"kaffeevollautomat"}'import requests
r = requests.post(
"https://api.reefapi.com/toppreise/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "kaffeevollautomat"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up toppreise.ch.
Get a free key →Do I need a toppreise.ch account?▾
No. Everything is read logged out.
How many shops does offers return?▾
All of them up to 96 in one call, cheapest total first. A De'Longhi Magnifica Start had 30 shop offers on 2026-10-15, all 30 returned, plus used offers apart.
Is shipping included?▾
Every offer row has the item price, the shipping cost and the total. Search rows carry both the lowest item price and the lowest price including shipping.
Which search filters are there?▾
Brand, shop, availability and category, checked against the unfiltered count in the same run: "kaffeevollautomat" 1,115 hits → brand De'Longhi 25, shop digitec 323, in stock 270, deliverable within a week 824, category Vollautomaten 140. A brand or shop id toppreise does not offer for the search is refused, not ignored. There is no price-range filter.
Where do brand and shop ids come from?▾
From filters, for the same words: it lists every brand, shop, product series and sub-category toppreise offers, with ids and hit counts.
How far back does price_history go?▾
As far as toppreise keeps the product: a coffee machine listed since November 2023 had 1,072 daily points. time_range takes 1m, 3m, 6m, 1y or all.
What is a series?▾
toppreise groups variants of one model line (colours, bundles) into a series. Search rows of type series carry their variants; series returns all variants of one series.
How many pages can I read?▾
24 rows per page, up to page 100. has_more and last_page tell you where a result ends.
What is the toppreise.ch API?▾
toppreise.ch API is a ReefAPI endpoint group for swiss price comparison in chf: every shop's price with shipping, used offers apart, the daily price history, gtins and specs. It returns live JSON through POST requests under /toppreise/v1.
Is the toppreise.ch API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. toppreise.ch calls use the same shared credit balance as every other ReefAPI engine.
Do I need a toppreise.ch login or account?▾
No login to toppreise.ch 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 toppreise.ch 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 toppreise.ch API use?▾
toppreise.ch 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 toppreise.ch from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call toppreise actions with the same key, credit pool and JSON envelope used by normal REST requests.
266 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling toppreise.ch, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 529 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-15.