Preisjäger API & Scraper
The Preisjäger API turns www.preisjaeger.at, the German-language deal community of Austria, into JSON in six actions.
🤖 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.
search finds deals by keyword (a search for 'iphone' covered 107 deals of the last year) and sorts them by relevance, newest, hottest, highest or lowest price or latest comment; it filters by temperature (the community's vote score in degrees), price in EUR, posting date (last 7 days, 30 days, year or all time), category, and can leave out expired and in-store-only deals. deals reads the site's own feeds: trending, every new post, the hottest of the period and the discussion threads. category_deals lists one category hottest or newest first. deal returns one deal in full: the price (0 for a free deal, null when the poster gave none), the price as the site prints it, the comparison price and the discount, the merchant, the voucher code, shipping, temperature, status and expiry date, every category it sits in, the poster's username, the outbound link, the images and the full description. comments returns the discussion under a deal with author, time and reactions, and categories lists the site's categories with their ids and deal counts. One ReefAPI key, the standard { ok, data, meta, error } envelope, no Preisjäger account.
What a Preisjäger deal row carries
Every search, feed and category row carries the same fields; deal adds the description, all categories, images and the outbound link. Measured on www.preisjaeger.at on 2026-10-18.
| field | meaning | note |
|---|---|---|
| deal_id | The deal's id on Preisjäger | pass it to deal and comments as it is |
| temperature | Community vote score in degrees | can be negative; sort=hot orders by it |
| price / next_best_price | Deal price and the comparison price the poster gave | EUR; null when not given |
| discount_pct | Computed from the two prices | the site's own percentage is source_discount_pct |
| voucher_code | The code to use at checkout | null when the deal has none |
| merchant / link_host | The shop and the domain the deal links to | |
| is_expired / expires_at | Expired flag and the end date the poster set | ISO 8601 UTC |
| comment_count | Comments under the deal | the comments action returns them |
In search and feed rows a deal without a price and a free deal both show price null with price_is_zero_or_missing true; the deal action tells them apart (price 0 and is_free true for a free deal).
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/preisjaeger/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "iphone",
"sort": "new"
}
}{
"ok": true,
"meta": {
"api": "preisjaeger",
"endpoint": "search",
"mode": "live",
"latency_ms": 1385.7,
"record_count": 30,
"bytes": 268339,
"cache_hit": false,
"query": "iphone",
"sort": "new",
"time_frame": "last_year",
"total": 107,
"total_capped": false,
"page": 1,
"last_page": 4,
"page_size": 30,
"has_more": true,
"pinned_rows": 0,
"filters_applied": {
"sortBy": "new"
},
"upstream_requests": 1,
"charged_credits": 3,
"version": "1.0.0",
"request_id": "bc8dd60b66fa4c0f",
"queue_ms": 1,
"fetched_at": "2026-10-18T17:45:03.525Z"
},
"data": {
"rows": [
{
"deal_id": "370464",
"type": "Deal",
"title": "Iphone 16e 512GB \"as is“- Gerät neuwertig, keine Gebrauchsspuren, einfache Verpackung mit Ladekabel- kein Apple Care",
"url": "https://www.preisjaeger.at/deals/iphone-16e-512gb-370464",
"share_url": "https://www.preisjaeger.at/share-deal/370464",
"status": "Activated",
"is_expired": true,
"is_hot": true,
"is_pinned": false,
"is_local": false,
"temperature": 207.45,
"temperature_level": "Hot3",
"price": 606.95,
"price_is_zero_or_missing": false,
"next_best_price": 728.98,
"discount_pct": 16.7,
"source_discount_pct": null,
"discount_type": null,
"currency": "EUR",
"shipping_free": null,
"shipping_price": 7.95,
"voucher_code": null,
"voucher_code_hidden": false,
"merchant": {
"merchant_id": "30",
"name": "iBOOD",
"url_name": "ibood.com"
},
"link_host": "www.ibood.com",
"group": {
"group_id": "1",
"name": "Elektronik",
"group_slug": "elektronik"
},
"comment_count": 5,
"posted_by": {
"user_id": "98567",
"username": "Thomas_Burger"
},
"published_at": "2026-10-09T04:57:35Z",
"updated_at": "2026-10-09T07:46:12Z",
"starts_at": "2026-10-08T22:01:00Z",
"expires_at": "2026-10-09T21:59:01Z",
"image_url": "https://static.preisjaeger.at/threads/raw/sbJou/370464_1/re/1024x1024/qt/60/370464_1.jpg"
},
{
"deal_id": "369807",
"type": "Deal",
"title": "EKE-Case 2.0 - der Ecken-Schutz fürs Apple iPhone ist jetzt noch besser geworden - ganz ohne dickes Case",
"url": "https://www.preisjaeger.at/deals/eke-case-20-der-ecken-schutz-furs-apple-iphone-ist-jetzt-noch-besser-geworden-ganz-ohne-dickes-case-369807",
"share_url": "https://www.preisjaeger.at/share-deal/369807",
"status": "Activated",
"is_expired": false,
"is_hot": true,
"is_pinned": false,
"is_local": false,
"temperature": 419.56,
"temperature_level": "Hot3",
"price": 19.92,
"price_is_zero_or_missing": false,
"next_best_price": 28.8,
"discount_pct": 30.8,
"source_discount_pct": null,
"discount_type": null,
"currency": "EUR",
"shipping_free": null,
"shipping_price": null,
"voucher_code": null,
"voucher_code_hidden": false,
"merchant": {
"merchant_id": "1084",
"name": "EKE Case",
"url_name": "ekecase.com"
},
"link_host": "ekecase.com",
"group": {
"group_id": "1",
"name": "Elektronik",
"group_slug": "elektronik"
},
"comment_count": 30,
"posted_by": {
"user_id": "43828",
"username": "Lukas"
},
"published_at": "2026-10-05T11:38:57Z",
"updated_at": "2026-10-05T11:38:57Z",
"starts_at": null,
"expires_at": null,
"image_url": "https://static.preisjaeger.at/threads/raw/6OsLn/369807_1/re/1024x1024/qt/60/369807_1.jpg"
},
{
"deal_id": "369875",
"type": "Deal",
"title": "ESR Classic Hybrid für iPhone 18 Pro Max Hülle mit Flex-Ständer + ESR Armorite Pro Panzerglas 3er Pack für iPhone 18 Pro Max",
"url": "https://www.preisjaeger.at/deals/esr-classic-hybrid-fur-iphone-18-pro-max-hulle-mit-flex-stander-esr-armorite-pro-panzerglas-3er-pack-fur-iphone-18-pro-max-369875",
"share_url": "https://www.preisjaeger.at/share-deal/369875",
"status": "Activated",
"is_expired": false,
"is_hot": true,
"is_pinned": false,
"is_local": false,
"temperature": 152.28,
"temperature_level": "Hot2",
"price": 10.44,
"price_is_zero_or_missing": false,
"next_best_price": 38.66,
"discount_pct": 73,
"source_discount_pct": null,
"discount_type": null,
"currency": "EUR",
"shipping_free": null,
"shipping_price": null,
"voucher_code": null,
"voucher_code_hidden": false,
"merchant": {
"merchant_id": "3",
"name": "Amazon",
"url_name": "amazon.de"
},
"link_host": "www.amazon.de",
"group": {
"group_id": "1",
"name": "Elektronik",
"group_slug": "elektronik"
},
"comment_count": 1,
"posted_by": {
"user_id": "45613",
"username": "Michael"
},
"published_at": "2026-09-29T18:14:56Z",
"updated_at": "2026-09-29T18:15:17Z",
"starts_at": null,
"expires_at": null,
"image_url": "https://static.preisjaeger.at/threads/raw/FmbpP/369875_1/re/1024x1024/qt/60/369875_1.jpg"
}
]
}
}What the Preisjäger API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Preisjäger deals by keyword. Sort by relevance, newest, hottest, price or latest comment; filter by temperature, price, posting date, category, expired and local deals. 30 deals a page. | Pricing teams call search to search Preisjäger deals by keyword. | query, sort, time_frame, min_temperature, max_temperature, ... |
| deals | The Preisjäger feeds: trending (heating up now), new (every new post), hottest (the hottest of the period) and community discussions. 30 a page. | Marketplace operators call deals to get the Preisjäger feeds. | list, page |
| category_deals | The deals of one Preisjäger category, hottest or newest first. The category page's own view hides expired deals and starts at a temperature floor (100° or 180° depending on the site); hide_expired / min_temperature change that and meta.applied_view shows what the page applied. | Catalog enrichment teams call category_deals to get the deals of one Preisjäger category, hottest or newest first. | group_slug, sort, min_temperature, hide_expired, page |
| deal | One deal in full by its id: price (0 = free, null = no price), the price as the site prints it, comparison price and discount, merchant, voucher code, shipping, temperature, status and expiry, every category it is in, the poster, the outbound link, images and the full description. | Retail analysts call deal to get one deal in full by its id. | deal_id |
| comments | The comments of one deal, in the site's own order (most helpful first), with author, time, reactions and reply links. | Pricing teams call comments to get the comments of one deal, in the site's own order (most helpful first), with author, time, re…. | deal_id, limit, page |
| categories | The Preisjäger category list: every main category with its id, slug, deal count and its community-favourite subcategories. group_id goes to search, group_slug to category_deals. | Marketplace operators call categories to get the Preisjäger category list. | none |
Call search from your stack
curl -X POST https://api.reefapi.com/preisjaeger/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone","sort":"new"}'import requests
r = requests.post(
"https://api.reefapi.com/preisjaeger/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone",
"sort": "new"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/preisjaeger/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "iphone",
"sort": "new"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.preisjaeger.search with {"query":"iphone","sort":"new"}.Who uses this API and why
- Deal alerts: poll deals list=new or a keyword search with sort=new and push matching deals to your users.
- Price tracking: compare a product's deal price and comparison price across Preisjäger posts over time.
- Voucher code collection: gather the codes posted for a shop with search and read voucher_code.
- Market research: measure which shops and categories get the hottest deals in Austria by temperature.
- Community sentiment: read the comments under a deal to see whether the offer worked for others.
Questions developers ask before integrating
Do I need a Preisjäger account?
No. This API reads the deals Preisjäger publishes to every visitor, without login, and returns them as JSON with the same fields on every row. Vote history, user profiles and alerts stay out: they need a login on the site.
How do I get only hot deals?
Use min_temperature on search, for example min_temperature=100 (the 'iphone' search went from 107 to 93 deals), or sort=hot for the hottest first. The hottest feed in deals lists the hottest deals of the current period (22 when measured).
Can I filter by price and date?
Yes. min_price and max_price filter by the deal price in EUR (100 to 500 left 2 of 107 'iphone' deals), and time_frame limits the posting date to the last 7 or 30 days, the last year (the site's default) or all time.
How do I monitor new deals?
Call deals with list=new and read the newest posts first, 30 per page; deal_id is stable, so you can store the ids you have seen. Search with sort=new does the same for one keyword.
Do I get the voucher code and the shop?
Yes. Every row carries voucher_code (null when there is none), the merchant name and id, and link_host, the domain of the shop the deal points to. The deal action adds the outbound link.
How many results can I page through?
30 deals a page. meta.total, meta.last_page and meta.has_more come from the site's own counter. The new and trending feeds report 10,000 deals, which is a cap: meta.total_capped says so.
Which other Pepper sites are covered?
Each Pepper community has its own API on ReefAPI: mydealz (Germany), hotukdeals (UK), Dealabs (France), Chollometro (Spain), Pepper.pl (Poland), Preisjäger (Austria), Pepper.com NL (Netherlands) and Promodescuentos (Mexico), all with the same six actions and fields.
What is the Preisjäger API?
Preisjäger API is a ReefAPI endpoint group for preisjäger deals from www.preisjaeger.at as json: search the community's schnäppchen by keyword with temperature, price, date and category filters, read the trending, new and hottest feeds, and get every deal in full with price, old price, discount, voucher code, shipping and comments. It returns live JSON through POST requests under /preisjaeger/v1.
Is the Preisjäger API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Preisjäger calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Preisjäger login or account?
No login to Preisjäger 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 Preisjäger 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 Preisjäger API use?
Preisjäger actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Preisjäger from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call preisjaeger actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Preisjäger API a Preisjäger scraper?
It is the managed alternative to a DIY Preisjäger 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 preisjäger deals from www.preisjaeger.at as json: search the community's schnäppchen by keyword with temperature, price, date and category filters, read the trending, new and hottest feeds, and get every deal in full with price, old price, discount, voucher code, shipping and comments back as clean JSON.