Ceneo Scraper
Ceneo is where Polish shoppers go to find out who is cheapest, which makes one Ceneo page a map of the whole market for a product. Its programmatic access is merchant-facing. The AI scraper reads the public comparison page instead, turns it into columns you define, and runs on a schedule.
- ceneo.pl
How to scrape Ceneo.pl
Most people searching for a "Ceneo API" are looking for something that does not exist in the form they expect. Ceneo's programmatic access is merchant-facing: it is built for shops that want their offers listed on the platform, not for anyone who wants to read the market off it. There is no public read API you can sign up for, and Scrapewise does not carry a dedicated Ceneo endpoint either. What makes Ceneo worth the trouble is its shape. A comparison site collapses the whole Polish market for one product onto a single page, ranked cheapest first, with every shop named. That is a wider view than any individual retailer gives you, and it is the fastest way to see whether your price is the one buyers are being shown. Access is the hard part. We measured it on 30 September 2026: a plain fetch returned a shell with the homepage title on a category URL, and a real browser landed on a consent and challenge wall whose only body text was the cookie notice, with no listings behind it. A run therefore has to go through a rendered page from a residential exit. You paste ceneo.pl URLs into the AI scraper, declare the columns you want, and set a daily schedule. Data comes back by REST API, CSV or Excel, and you pay per page from a prepaid wallet.
What the AI scraper does with a ceneo.pl link
Three steps, same as any other site. Nothing about Ceneo is pre-built, which is why it reaches a market nobody ships an endpoint for.
Paste the link
A product comparison page, a shop's profile, or a category URL with the filters already applied. Ceneo encodes filters and sort order in the address, so a view you built by hand in the browser is a valid input.
You declare the columns
A Ceneo job usually wants one row per merchant offer: the shop name, its rank in the list, the offer price, delivery cost, the total a buyer pays, the shop's rating and its availability wording. You name those fields yourself in a Custom Schema, or start from the ready Product List schema and add to it.
Schedule it and take the data out
Run it once or daily. Pull each run by REST API or download it as CSV or Excel. The columns stay the same between runs, so a Ceneo table lines up with whatever you already collect from Allegro and your own shop.
Set it up once. The data keeps coming.
Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
Runs on your schedule
Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
Use it your way
Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.
Ask your AI assistant about your own data
Connect Claude Desktop or Claude Code with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.
- Which of my ASINs lost the Buy Box this week?
- Which competitor cut prices the most since Monday?
- Show the keywords where I dropped out of the top 10.
What you send and what you get
You send a link and a column list. Which shop is cheapest today, what delivery adds and where you rank comes from the page itself.
- Link to a ceneo.pl product, shop or category pagerequired
Set your filters and sort order in the browser first, then copy the address. Ceneo encodes them in the URL, so a view you built by hand is a valid input.
https://www.ceneo.pl/;szukaj-philips+hue - Your column listrequired
Start from the ready Product List schema or name your own fields in a Custom Schema. The AI fills the fields you declared.
Custom Schema, 12 fields - How often it runsoptional
- On demand
- Daily
- Weekly
- Monthly
Daily is the fastest cadence available, and enough to catch the day a competitor takes the top row off you.
One row per merchant offer on the product, 12 columns each
- offer_rank
- shop_name
- offer_price
- delivery_cost
- total_price
- shop_rating
- availability
- product_title
- brand
- best_price_on_page
- offer_count
- checked_at
REST API, CSV or Excel. The column set stays the same between runs, so a Ceneo table lines up with your other Polish channels.
The columns a ceneo.pl run gives you
We are not going to print a table of invented merchant offers and call it real output. Ceneo returns a shell to a plain fetch and a consent wall to an ordinary browser, so a run has to go through the residential tier. This is the column list you declare before the run, and the column list every run comes back with.
offer_rankPosition of the offer in Ceneo's list, cheapest first by defaultshop_nameMerchant behind this offeroffer_priceHeadline price, before deliverydelivery_costDelivery cost as the page states ittotal_priceOffer price plus deliveryshop_ratingShop rating, when Ceneo displays oneavailabilityStock wording the shop publishes for the offerproduct_titleProduct title as Ceneo writes itbrandBrand shown on the productbest_price_on_pageCheapest offer across every merchant on the pageoffer_countHow many merchant offers the product carried on this runchecked_atWhen this run collected the page (UTC)The columns are yours, not ours. Add, rename or drop any of them in a Custom Schema and every future run returns exactly your set.
What a ceneo.pl page costs
Pay-as-you-go from your wallet. No plan, no monthly fee, no seat count.
Measured on 30 September 2026, not assumed. A plain fetch of a ceneo.pl search URL came back at 200, which looks like success until you read it: 21 KB carrying the Ceneo homepage title rather than the search, a body of stylesheet variables, no structured product data and no price anywhere in it. Ceneo answers the request and withholds the page. Loading the same URL in a real browser landed on a consent and challenge wall whose entire body text was the cookie notice. A browser alone is not enough here, so budget for a rendered page coming out of a residential exit.
150 ceneo.pl product pages checked once a day for a month is 4,500 pages.
about EUR 16.88 for the month at this tier
You are charged for the tier a run actually used, not the tier it was expected to need, and your balance never expires.
See the full price list →What this page is not promising
We would rather say this here than in a support ticket.
No dedicated Ceneo endpoint
There is no Ceneo data API in our catalogue and no pre-built Ceneo schema. The AI scraper reads the page you point it at, and that is the whole mechanism.
This is the expensive tier
Ceneo returns a shell to a plain fetch and a consent wall to a plain browser, so every run goes through a rendered page from a residential exit at EUR 3.75 per 1,000 pages. If the page count matters to you, scope it before you switch it on rather than after.
No merchant-account data
Anything behind Ceneo's merchant login, your feed status, your clicks, your spend, is not reachable by a scraper reading public pages.
Deep offer lists are extra pages
A product with a hundred shops on it is a paginated list, not one request. Covering all of it changes the page count and the cost.
Daily, not real time
Daily is the fastest schedule. There is no real-time feed, no per-minute polling and no price-drop alerting.
No price history, no SKU matching
We store nothing about Ceneo prices on our side, so a price curve starts the day you switch the scraper on. You get Ceneo's rows as Ceneo presents them, mapping them to your catalogue is a separate job, and we are not lawyers, so check Ceneo's terms before you run anything.
Typical fields the AI scraper extracts from a ceneo.pl page
A starting point, not a fixed schema. What comes back is whatever the page actually shows on the day of the run.
Merchant offers
The reason to scrape a comparison site: one page, every shop selling the product, ranked.
- Shop name and rank in the list
- Offer price, before delivery
- Delivery cost and the total a buyer pays
- Shop rating and review count, where Ceneo shows them
- Availability wording the shop publishes
- Number of offers on the product
Ranking and visibility
On a comparison site your rank is your traffic, so the position is as interesting as the price.
- Cheapest offer across the whole page
- Your own shop's rank, where you appear
- Sponsored or promoted placement, where the page marks it
- Position of the product in a category listing
Product and identity
Ceneo maintains its own product records, so titles and specs are Ceneo's rather than any one merchant's.
- Product title as Ceneo writes it
- Brand
- Category breadcrumb
- Specification table values, where the page prints one
- Product rating and review count
- Product image URL
The column list is one you write: name each field, give it a type and a line telling the AI what to look for. The schema belongs to your account, so a Ceneo field set can be reused on Idealo or on the next comparison site you point us at. How Custom Schema works →
What it cannot give you The scraper cannot invent a field the page does not render. Ceneo paginates long offer lists, so a popular product with a hundred shops is several pages rather than one. Delivery cost is frequently conditional on basket value and is stated as a rule rather than a number, which means the total price column is only as precise as what the shop published. Historical prices are not on the page and are not stored on our side.
What people use Ceneo data for
Seeing the whole Polish market on one page
A Ceneo product page names every shop selling the product and ranks them. Scraping it daily gives you the market price band, not a sample of it, which is a much harder thing to assemble retailer by retailer.
Tracking your own rank, not just your price
On a comparison site position is traffic. Knowing you slipped from row one to row four last Tuesday is more actionable than knowing a competitor is two zloty cheaper.
Finding sellers you did not appoint
Comparison sites surface merchants a brand has never heard of, because a shop only needs a feed to appear. One scrape of your own products names every one of them.
Delivery-inclusive price comparison
The cheapest offer on Ceneo is often not the cheapest total. Pulling offer price, delivery cost and total as separate columns is the only way to compare honestly against your own shop.
Reseller and distributor compliance
If you set recommended prices in Poland, this is where you find out whether they held. The scraper gives you the observation with a timestamp; the conversation is yours.
Feeding your own repricing rules
The export is a normal REST API or CSV, so it drops into whatever repricing logic you already run. Scrapewise supplies the observation; your rules decide what to do with it.
What makes ceneo.pl harder than an ordinary storefront
Comparison sites are the most valuable pages to read and among the most defended. Ceneo is both.
Access
- A plain fetch returns 200 with the homepage title on a search URL, so a status check alone will fool you
- That response carries no structured product data and no prices at all
- A real browser lands on a consent and challenge wall rather than the comparison page
- Runs have to go through a rendered page from a residential exit, which is the most expensive tier
- Success is high but not guaranteed on any individual run
Offer lists
- One product carries a list of shop offers, each with its own price, delivery and availability
- Long lists are paginated, so a popular product is several pages rather than one request
- Sponsored placements sit in the same list and are easy to read as organic ranking
- Delivery cost is often a rule tied to basket value rather than a single number
Comparison-site semantics
- Ceneo maintains its own product records, so its title is not any merchant's title
- A product can be listed more than once when merchants map their feeds differently
- The cheapest offer on the page is not always in stock, so price without availability is misleading
Scheduling and delivery
- Daily is the fastest cadence, which matches how often retail prices meaningfully move
- Every run is retrievable by REST API, or downloadable as CSV or Excel
- Columns stay stable between runs, so downstream jobs do not need to re-map fields
Ceneo.pl scraping — questions
What people ask before pointing the scraper at ceneo.pl.
No. Ceneo's programmatic access is merchant-facing, built for shops that want their offers listed on the platform rather than for anyone who wants to read the market off it. There is no public read API you can sign up for, and no Ceneo endpoint in our catalogue either.
Ready to pull Ceneo data into your stack?
Start free — or talk to our team about your exact fields, refresh cadence and volume.