Every Greek merchant's price for one product, in one call
The Shopflix.gr API turns Greece's multi-vendor marketplace into JSON in seven actions.
7 active endpoints, on 1 and 2 credit tiers.
- POST/shopflix/v1/search
- POST/shopflix/v1/category
- POST/shopflix/v1/product
- POST/shopflix/v1/offers
- POST/shopflix/v1/reviews
- POST/shopflix/v1/categories
- POST/shopflix/v1/suggest
What Shopflix.gr endpoints does ReefAPI ship?
7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Shopflix.gr API
5 of 7 endpoints, ready to run
Every merchant selling one product: the shop name, the shop's rating, its price in euros, its shipping fee, its stock quantity and its instalment offer — plus every merchant's price even where the names stop at five, and the real seller count beside it.
// 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 Shopflix.gr API works
Shopflix.gr 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 438 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 Greek keyword to every merchant's price
Two calls, and a third if you want the specs. The grid gives you one price per product and the band around it; the merchant-by-merchant table is the offers call.
{"query": "iphone", "sort": "price_asc"}The grid. Take products[].sku, and note that each row already carries price_min_eur, price_max_eur and merchant_count so you can decide which products are worth a second call.
{"sku": "SF-202747804"}The merchant table: named shops with rating, price, shipping fee, stock quantity and instalments, plus merchant_prices with every merchant's price and merchant_count beside offers_named.
{"sku": "SF-202747804"}The full product: specification rows, manufacturer and part number, shipping weight and box dimensions, images, and gtin13 where the barcode can be recovered.
A Greek marketplace price picture from two calls, a full product record from a third — with merchant_count beside offers_named so you always know how much of the seller table you are holding.
curl -X POST https://api.reefapi.com/shopflix/v1/offers \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"sku":"SF-202747804"}'{
"ok": true,
"data": { … },
"meta": {
"api": "shopflix",
"endpoint": "offers",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}Which Shopflix number is which
Five of these fields look interchangeable and are not. Measured on 2026-10-06.
| Field | What it is | Measured example |
|---|---|---|
| price_eur (row) | Shopflix's own headline price for the product, in euros | 1568.00 on the Apple iPhone 18 Pro 256GB |
| price_min_eur / price_max_eur | The cheapest and dearest merchant price for that product | 1549.00 to 1936.30 across 14 merchants on the same product |
| merchant_count | How many merchants the market has for the product | 14, 2, 9 and 30 on four measured products |
| offers_named | How many of them this response names. Shopflix names the top five | 5 of 14, 2 of 2, 5 of 9, 5 of 30 |
| merchant_prices[] | Every merchant's price, cheapest first, by merchant reference | 14 rows on the product whose named list held 5 |
| offers[].stock_quantity | The units that merchant declares in stock | 100, 45 and 1 on three merchants of one product |
| gtin13 | The product's EAN-13, recovered from its own images and checksum-checked | 5702016912920 on a LEGO Technic set; null where it cannot be recovered |
| price_band_stale | Set when the headline price and the merchant band disagree | true on 7 of 382 measured rows, absent on the rest |
offers and merchant_prices answer different questions: offers is the named list Shopflix publishes and stops at five, while merchant_prices carries every merchant's price without the shop names. Read merchant_count beside offers_named and you never have to guess which you are holding.
One market, one currency, and the one thing this source cannot do
shopflix.gr only: Greece, euros, and a Shopflix sku. Measured on 2026-10-06 across 382 product rows from 25 calls in 10 Greek and English query families, 5 product pages, 4 offer tables, 6 review calls and 8 negatives. Three of these lines go against us.
Shopflix's own search covers the product name, the sku, the merchant name and spec values, and nothing else. Ten EAN-13 codes that provably belong to products Shopflix sells returned zero results each, and the source's own barcode field was empty on all twenty products sampled across twelve query families. A barcode query is therefore answered as a successful call with zero rows, never as an error. If barcode lookup is the only way your pipeline can address products, this engine will not solve that for you — which is why it is the first line on this page rather than a footnote.
Shopflix names a large minority of its product images after the product's barcode, so the API publishes gtin13 whenever a 13-digit code can be read out and its check digit validates. Measured on 382 rows: 111 filled, which is 21 of 25 on LEGO, 15 of 25 on televisions, 10 of 25 on Nivea and 7 of 25 on vitamins, but 5 of 25 on smartphones and 1 of 25 on adidas. Where it is absent it is null, never a guess. That makes it useful for matching Shopflix rows onto an EAN catalogue you already have, and useless as a way to ask Shopflix about a barcode.
The source publishes five named offers for a product however you ask it, while stating the real number of sellers. So the response carries both lists and says which is which: offers with shop name, rating, price, shipping fee, stock quantity and instalments for up to five, and merchant_prices with every merchant's price and shipping lead time by merchant reference. Measured on four products: 14 merchants with 5 named, 2 with 2 named, 9 with 5 named, 30 with 5 named. The price band always comes from the full list, so the cheapest and dearest prices describe the whole market even where the names stop.
This engine reads shopflix.gr. Prices are numbers in euros on every row and every offer, titles, category paths and shipping lines come back in Greek as the site writes them, and there is no other storefront behind the source, so there is no country to choose. Greek keywords match far more of the catalogue than English ones: eight Greek query families each returned a full page, from 251 matches for a 55-inch television to 20 531 for perfume, while the same words in Latin letters returned zero.
Across 382 rows from 25 calls in 10 query families: the sku, title, url, price, cheapest and dearest merchant price, merchant count, category path and images on 382 of 382. The rating on 155 of 382, because Shopflix publishes one only where the product has reviews, and a zero would read as a bad product rather than an absent rating. No row carried HTML markup in its title. On the product side the manufacturer part number is present on some categories and null on others, and the source's own barcode field and ISBN come back as null rather than being filled from somewhere else.
A laptop search returns 1 521 products, and 250 with brand HP, 765 above 1500 euros, 26 below 300 euros, 0 inside the Smartphones department. An iphone search returns 716, and 370 with merchant Techaway. Sorting reorders: cheapest-first gave 90, 100 and 100 euros where dearest-first gave 3 399 on the same query. One scope note: the merchant filter matches the products a merchant is the recommended seller for, not everything that merchant stocks, so use offers for the full seller list of a single product.
The source answers an unknown id with a server error rather than a clean 404, which is exactly how a scraper ends up returning a confident empty result. Measured: a dead sku comes back as NOT_FOUND on both product and offers, a value that is not a sku at all as INVALID_PARAM saying so, a bad sort value as INVALID_PARAM, and a keyword with genuinely no matches as a successful call with zero rows. The difference between nothing found and something broken is never collapsed.
Skroutz and BestPrice index other shops; Shopflix is a marketplace whose merchants sell on the platform itself, so it carries its own merchant set, its own stock quantities and its own per-merchant shipping lead times and instalment offers. Reading all three is how a Greek pricing tool sees the market rather than one site's view of it. Each is a separate engine here with its own actions and credit price.
What people build with Shopflix.gr
The jobs this data is most often used for.
endpoints
credits per call
Greek price monitoring on a marketplace: one sku, every merchant's price, stock quantity and shipping lead time in euros.
Repricing for merchants selling on Shopflix: see where your own offer sits against every other merchant on the same sku.
Cross-checking a third Greek source beside Skroutz and BestPrice before publishing a price or a cheapest-offer claim.
Catalogue enrichment: full specification rows, manufacturer, part number, shipping weight and box dimensions from a keyword.
What Shopflix.gr data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,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 438 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/shopflix/v1/offers \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"sku":"SF-202747804"}'import requests
r = requests.post(
"https://api.reefapi.com/shopflix/v1/offers",
headers={"x-api-key": REEF_KEY},
json={
"sku": "SF-202747804"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Shopflix.gr.
Get a free key →Can I search Shopflix by barcode or EAN?▾
No, and this is measured rather than assumed, because it decides whether the API fits your pipeline. Shopflix's own search covers the product name, the sku, the merchant name and spec values. Ten EAN-13 codes that provably belong to products Shopflix sells returned zero results each, and the source's own barcode field was empty on all twenty products sampled across twelve query families. A barcode query therefore comes back as a successful call with zero rows, never as an error. What you do get is gtin13 on the rows where it can be recovered from the product's own images and the check digit validates: 111 of 382 measured rows, which is 21 of 25 on LEGO and 15 of 25 on televisions but only 1 of 25 on fashion. That makes it a join key — match Shopflix rows against your own EAN catalogue — not a lookup key.
Do I get every merchant selling a product?▾
You get every merchant's price, and the shop names for the top five. Shopflix publishes five named offers per product however you ask, while telling you the real number of sellers, so the response carries both: offers with shop name, shop rating, price, shipping fee, stock quantity and instalments for up to five, and merchant_prices with every merchant's price and shipping lead time by merchant reference. Measured on four products on 2026-10-06: 14 merchants with 5 named, 2 with 2 named, 9 with 5 named and 30 with 5 named. The cheapest and dearest price always come from the full list, so price_min_eur and price_max_eur describe the whole market even when the names stop at five.
Does it work with Greek keywords?▾
Yes, and Greek is the better way to search it. Eight of the ten measured query families were Greek and each returned a full page of rows: 1 657 matches for a fridge, 3 812 for a coffee machine, 5 692 for shampoo, 20 531 for perfume. The same words transliterated into Latin letters returned zero, so a Greek-language query is not a nicety here. The suggest action exists for exactly this: it returns Shopflix's own autocomplete, the real queries its shoppers type, with how many products each one matches, so you can find the wording that has a catalogue behind it before spending a search call.
Are the prices numbers, and in which currency?▾
Numbers, in euros, on every row and every offer. Measured across 382 rows: the price, the cheapest merchant price and the dearest merchant price were filled on all 382. There is one currency because there is one market — shopflix.gr is Greece only, and there is no country parameter behind it. One honesty detail ships with it: on 7 of those 382 rows Shopflix's headline price fell outside its own merchant price band, and those rows carry price_band_stale so the disagreement is visible instead of one of the two numbers being quietly dropped.
Do the filters actually narrow the result, or are they accepted and ignored?▾
They narrow it, and the control numbers are published rather than claimed. Measured in the same run on 2026-10-06: a laptop search returns 1 521 products, and 250 with brand HP, 765 above 1500 euros, 26 below 300 euros, and 0 inside the Smartphones department. An iphone search returns 716 products and 370 with merchant Techaway. A review call returns 16 reviews and 12 with a minimum rating of five. Sorting reorders too: cheapest-first gave 90, 100, 100 euros where dearest-first gave 3 399 on the same query. One scope note so nobody is surprised — the merchant filter matches the products a merchant is the recommended seller for, which is not the same as everything that merchant stocks; use offers for the full seller list of one product.
How do I go from a search result to the price comparison?▾
Every search and category row hands back the sku, and both product and offers take that sku or a full shopflix.gr product URL. A dead or wrong sku is answered with NOT_FOUND rather than an empty-looking success, and a value that is not a sku at all comes back as INVALID_PARAM saying so, which matters here because the source answers an unknown id with a server error rather than a clean 404.
What does this add if I already use Skroutz and BestPrice?▾
A third Greek source, and a different kind of one. Skroutz and BestPrice are comparison sites that index other shops; Shopflix is a marketplace where the merchants sell on the platform itself, so it carries its own merchant set, its own stock quantities and its own per-merchant shipping lead times and instalment offers. Reading all three is how a Greek pricing tool sees the market rather than one site's view of it. Each is a separate engine here with its own actions and its own credit price.
Which fields can be empty?▾
Counted rather than assumed, across 382 rows on 2026-10-06. Always filled: sku, title, url, price, the cheapest and dearest merchant price, the merchant count, the category path and the images, all 382 of 382. Filled part of the time: the rating, on 155 of 382, because Shopflix publishes one only where the product has reviews, and gtin13 on 111 of 382 as described above. Returned as null when the source is silent: the source's own barcode field, the ISBN, and the manufacturer part number, which was present on fashion products and absent on the electronics measured. Nothing is invented to fill a gap, and nothing is copied down from a parent product to make a column look complete.
What is the Shopflix.gr API?▾
Shopflix.gr API is a ReefAPI endpoint group for greek marketplace: every merchant's price and stock for one product, full specs, reviews and the category tree, in eur. It returns live JSON through POST requests under /shopflix/v1.
Is the Shopflix.gr API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Shopflix.gr calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Shopflix.gr login or account?▾
No login to Shopflix.gr 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 Shopflix.gr 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 Shopflix.gr API use?▾
Shopflix.gr actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Shopflix.gr from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call shopflix actions with the same key, credit pool and JSON envelope used by normal REST requests.
191 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Shopflix.gr, 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 437 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-06.