Ceneo Price Comparison Scraper
Pricing
from $4.75 / 1,000 products
Ceneo Price Comparison Scraper
Collect Ceneo.pl product records from public search results. Get one row per product with name, lowest price, offer count, ratings, reviews, image, and URL. Run with query and maxItems; no buyer API key or external proxy account. Pricing: $0.0049 per product plus $0.00005 per run on Free.
Pricing
from $4.75 / 1,000 products
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
16
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Ceneo Price Scraper for Poland
For price monitoring, market research, and competitor analysis, this Actor extracts one structured row per product from public Ceneo.pl search results, including the lowest price, offers, ratings, reviews, brand, image, and URL. Use it from your Apify account; no buyer API key or external proxy account is required.
- Extract product prices, shop-offer counts, ratings, and review counts from Ceneo.pl.
- Monitor Polish e-commerce prices with one row per product.
- Benchmark how many shops offer products and how products are rated.
- Research product assortments by keyword and result rank.
- Use the built-in Apify Residential proxy configured for Poland.
What you get
The Actor returns one dataset row for each product it finds in Ceneo search results. The output uses a stable field list that can be combined with other price-comparison datasets. A field is null when the source does not provide the value.
| Field | Type | What it contains |
|---|---|---|
name | string | Product name; non-empty and not null for returned rows |
brand | string | Brand when Ceneo lists one; otherwise null |
url | string | Link to the Ceneo product page; null if absent |
image_url | string | Product image URL; null if absent |
price | number | Lowest price on the page; null if unavailable |
currency | string | Currency code, with PLN as the default; not null for returned rows |
original_price | number | Higher reference price (AggregateOffer highPrice); null when not provided |
discount_pct | number | Percentage difference between original_price and price; filled only when original_price is greater than price, otherwise null |
offer_count | integer | Number of shop offers; null if unavailable |
unit_price | number | Always null for this Actor because Ceneo search pages do not provide it |
lowest_store | string | Always null for this Actor because Ceneo search pages do not provide it |
rating | number | Average product rating; null if unavailable |
review_count | integer | Number of reviews or ratings; null if unavailable |
category | string | Always null for this Actor because Ceneo search pages do not provide it |
rank | integer | Product position in the results; null if no position is provided |
product_id | string | SKU, product ID, or MPN when present; otherwise null |
site | string | Always ceneo; not null for returned rows |
query | string | Search keyword used for the run; non-empty and not null for returned rows |
page_number | integer | Results page containing the row; not null for returned rows |
scraped_at | ISO 8601 string | ISO 8601 timestamp of the run; not null for returned rows |
Sample output
The sample below is shortened to one record; all fields in that record are shown.
{"name": "Apple iPhone 17 256GB Czarny", "brand": null,"url": "https://www.ceneo.pl/157207959?utm_medium=organic&utm_source=listing_carousel&utm_content=/Smartfony;szukaj-iphone","image_url": "https://image.ceneostatic.pl/data/products/157207959/f-apple-iphone-17-256gb-czarny.jpg","price": 3845, "currency": "PLN","original_price": null, "discount_pct": null,"offer_count": 28,"unit_price": null, "lowest_store": null,"rating": 4.83, "review_count": 86, "category": null,"rank": 1, "product_id": null,"site": "ceneo", "query": "iphone","page_number": 1,"scraped_at": "2026-11-07T01:22:50.672124+00:00"}
Pricing
This Actor uses pay-per-event pricing. The apify-actor-start event is charged once per GB of run memory, with a minimum of one event. The product-item event represents one product with its lowest price and comparison fields. The Actor charges the product-item event only when a product is successfully pushed to the dataset.
| Plan | apify-actor-start | product-item |
|---|---|---|
| Free | $0.00005 per event (Free plan) | $0.0049 per event (Free plan) |
For example, 3 results = $0.01475 on the Free plan: one apify-actor-start event at $0.00005 per event (Free plan) plus three product-item events at $0.0049 per event (Free plan).
For 1,000 results, the calculation is 1 × $0.00005 (Free plan) + 1,000 × $0.0049 (Free plan) = $4.90005 on the Free plan. For 10,000 results, the calculation is 1 × $0.00005 (Free plan) + 10,000 × $0.0049 (Free plan) = $49.00005 on the Free plan.
The Apify Free plan includes $5 of monthly platform usage credit, which covers 338 full runs (1,014 product-item events) at the 3-result example rate.
You pay only for the events listed above. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately.
How to use
- Open the Actor in Apify Console.
- Enter a keyword in
query, such asiphoneorpralka. - Set
maxItemsto the number of products to request (default100;0removes the cap; each returned product is charged). - Keep the default
proxyConfiguration, which uses Apify Residential with countryPL. - Start the run and review the Products Overview table after it finishes.
- Repeat the run through Apify Schedules, using daily as a starting point for price-monitoring work.
Example input:
{"query": "iphone","maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "PL"}}
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
query | Required keyword searched on Ceneo.pl. Whitespace is normalized before the search. | Prefilled as iphone |
maxItems | Number of products to request. Minimum is 0; 0 removes the cap. Each returned product is charged. | 100 |
proxyConfiguration | Configures the proxy used to access Ceneo.pl. A residential proxy is required for reliable access. | Apify Residential, country PL |
disableUsageStats | Set to true to turn off the run summary described in Usage statistics. | false |
Limits and edge cases
| Condition | What you see | What to do |
|---|---|---|
| Ceneo returns no further products, or the run reaches the hard cap | The run succeeds with fewer products than requested. A page holds 30 products and a run reads at most 20 pages, so one run returns at most 600 products. | Use a broader or different keyword if you need more results. |
| Ceneo has no products for the keyword | The run succeeds with no dataset products and reports that no products were found. The reason is stored in the OUTPUT record in the run's default key-value store. | Try a shorter or different keyword. |
| The first page is blocked, cannot be parsed, or cannot be reached | The Actor makes up to three attempts at the first page using fresh residential exits. If no product is delivered, the run fails, no products are charged, and the reason is stored in the OUTPUT record in the run's default key-value store. | Keep the default residential proxy and try again later. |
| A later page fails after products were delivered or the time budget is reached | Rows already pushed remain in the dataset. The run finishes as Succeeded with a partial-result message, and the reason is stored in the OUTPUT record in the run's default key-value store. Only delivered products are charged. | Run again later for the remaining results. |
| A product page does not provide an optional value | Fields such as brand, product_id, original_price, discount_pct, unit_price, lowest_store, and category can be null. | Handle null values when importing the dataset. |
| The residential proxy is removed or not configured | Access to this protected target may not be reliable. | Leave the default Apify Residential configuration enabled. |
FAQ
How much does it cost to scrape Ceneo.pl?
See Pricing for the Free-plan event prices and the worked calculation.
What happens when Ceneo has no matching products?
The Actor reports an empty result with a no-products message and suggests trying a shorter or different keyword. No product rows are returned.
Why might a Ceneo run not work?
Ceneo is a protected target that requires a residential proxy for reliable access. The default configuration uses Apify Residential in Poland. If the first page is blocked, unparsed, or unreachable, the Actor retries it before failing a run that delivered no products.
Does this Actor return every shop's offer?
No. It returns one row per product with the lowest price and the number of offers. It does not return a separate row for every shop's individual offer.
Is scraping public Ceneo.pl data legal or allowed?
This Actor uses public Ceneo.pl search results. Whether a particular use is legal or allowed depends on the source's terms and the applicable law for your use case; assess those requirements before using the data.
Related actors
- Cimri Price Comparison Scraper — a related price-comparison scraper for Cimri.
- Prisjakt Price Comparison Scraper — a related price-comparison scraper for Prisjakt.
- Competitor Price Monitor – Price Drop Alerts, Any Store URL — related monitoring for a specific store URL and price-drop alerts.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.