docs / price-compare

Price Comparison API

Price Comparison API

base /price-compare/v18 endpoints
post/price-compare/v1/product3 credits

full product detail (title, brand, EAN/GTIN, MPN, breadcrumb, images, specs, rating, lowest_price, embedded merchant offers) by product_id or url

ParameterAllowed / rangeDescription
product_idoptionalProduct id. geizhals: the digits in -vNNN.html (family) / -aNNN.html (variant). cimri: the numeric id after the slug comma (…,2237451716) — prefer passing the full `url`. akakce: the numeric prCode (…,282674948.html, or just 282674948) — a bare prCode works (api6 needs no slug).
urloptionalFull product/variant URL (overrides product_id). geizhals: a *.html page. cimri: https://www.cimri.com/<slug>,<id>. akakce: https://www.akakce.com/<slug>,<id>.html. Take it from a search result's comparison_url.
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
Try in playground →
post/price-compare/v1/offers3 credits

all merchant offers for a product variant — per-merchant price, availability, delivery, merchant redirect URL (paginated; use a VARIANT id, -aNNN)

ParameterAllowed / rangeDescription
product_idoptionalProduct id. geizhals: the digits in -vNNN.html (family) / -aNNN.html (variant). cimri: the numeric id after the slug comma (…,2237451716) — prefer passing the full `url`. akakce: the numeric prCode (…,282674948.html, or just 282674948) — a bare prCode works (api6 needs no slug).
urloptionalFull product/variant URL (overrides product_id). geizhals: a *.html page. cimri: https://www.cimri.com/<slug>,<id>. akakce: https://www.akakce.com/<slug>,<id>.html. Take it from a search result's comparison_url.
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
page = 1optional1–50Result page (1-based). Page forward with meta.next_page.
sortoptionalp · -p · r · tResult sort order. geizhals: passed to the site 'sort' value. akakce: engine-side offer sort — 'p' price asc, '-p' price desc.
merchantoptionalFilter offers to a merchant (vdName, case-insensitive substring — e.g. 'n11', 'Amazon', 'Trendyol'). akakce offers/compare only.
min_priceoptionalFilter offers to price >= min_price (akakce offers/compare).
max_priceoptionalFilter offers to price <= max_price (akakce offers/compare).
limitoptional1–200Top-N: cap the returned offers after sort/filter (akakce offers/compare). Honest bare ceiling per query ≈ 15 offers (~5 product models × top-3).
Try in playground →
post/price-compare/v1/price_history3 credits

price-history for a product — window + min/max observed. cimri ships a REAL 90-day daily min-price series; geizhals' raw point-series is JS-chart-only (min/max + range surfaced, honestly flagged, R15 no fabrication). akakce: not exposed (use cimri for TR history).

ParameterAllowed / rangeDescription
product_idoptionalProduct id. geizhals: the digits in -vNNN.html (family) / -aNNN.html (variant). cimri: the numeric id after the slug comma (…,2237451716) — prefer passing the full `url`. akakce: the numeric prCode (…,282674948.html, or just 282674948) — a bare prCode works (api6 needs no slug).
urloptionalFull product/variant URL (overrides product_id). geizhals: a *.html page. cimri: https://www.cimri.com/<slug>,<id>. akakce: https://www.akakce.com/<slug>,<id>.html. Take it from a search result's comparison_url.
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
Try in playground →
post/price-compare/v1/category2 credits

browse a comparison-site category by its id/slug → product cards (same shape as search). geizhals-only (cimri/akakce expose search/product/offers/price_history/suggest/compare).

ParameterAllowed / rangeDescription
categoryrequiredGeizhals category id or slug — the value after ?cat= (e.g. 'umtsover' for Handys, 'sm_ssd' for SSDs). Discover via the categories action.
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
page = 1optional1–50Result page (1-based). Page forward with meta.next_page.
sortoptionalp · -p · r · tResult sort order. geizhals: passed to the site 'sort' value. akakce: engine-side offer sort — 'p' price asc, '-p' price desc.
Try in playground →
post/price-compare/v1/categories2 credits

top-level category navigation tree of the comparison source (id, name, url)

ParameterAllowed / rangeDescription
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
Try in playground →
post/price-compare/v1/suggest2 credits

search autocomplete — product-name suggestions + the linked product_id for a partial query

ParameterAllowed / rangeDescription
queryrequiredSearch keyword (product name, model, or EAN/GTIN).
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
Try in playground →
post/price-compare/v1/compare4 credits

one-shot price-compare: resolve a query to its top product, then return that product's merchant offers + EAN/GTIN in a single call (search→offers convenience)

ParameterAllowed / rangeDescription
queryrequiredSearch keyword (product name, model, or EAN/GTIN).
source = geizhalsoptionalgeizhals · cimri · akakcePrice-comparison site to query. 'geizhals' covers Germany, Austria, and the EU (geizhals.de / geizhals.at / geizhals.eu); 'akakce' and 'cimri' cover Turkey. All three return multi-merchant offer lists, EAN/GTIN identifiers, and current pricing. Idealo (idealo.de) is not currently available.
country = deoptionalde · at · eu · trLocale host. geizhals: de/at/eu (same DOM, different merchant pool). cimri/akakce are TR-only (country is ignored for them).
sortoptionalp · -p · r · tResult sort order. geizhals: passed to the site 'sort' value. akakce: engine-side offer sort — 'p' price asc, '-p' price desc.
merchantoptionalFilter offers to a merchant (vdName, case-insensitive substring — e.g. 'n11', 'Amazon', 'Trendyol'). akakce offers/compare only.
min_priceoptionalFilter offers to price >= min_price (akakce offers/compare).
max_priceoptionalFilter offers to price <= max_price (akakce offers/compare).
limitoptional1–200Top-N: cap the returned offers after sort/filter (akakce offers/compare). Honest bare ceiling per query ≈ 15 offers (~5 product models × top-3).
Try in playground →