Ceneo Products Scraper — Poland Price Comparison avatar

Ceneo Products Scraper — Poland Price Comparison

Pricing

from $1.50 / 1,000 products

Go to Apify Store
Ceneo Products Scraper — Poland Price Comparison

Ceneo Products Scraper — Poland Price Comparison

Scrape Ceneo.pl Poland price comparison search: title, PLN lowest price, shop count, product URL and image. HTTP SSR cards (.cat-prod-row). Enable Apify RESIDENTIAL with country PL if antibot interstitial blocks your IP.

Pricing

from $1.50 / 1,000 products

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Ceneo.pl Poland price-comparison search: title, PLN lowest price, shop count, product URL and image — one clean Dataset row per listing.

HTTP-only (curl_cffi + Chrome TLS + BeautifulSoup). Parses SSR search cards (.cat-prod-row). Warms through Ceneo’s short meta-refresh interstitial when cookies are required.

Proxy: Prefer Apify RESIDENTIAL with country PL. Without it, bare IPs may soft-fail with a clear error row citing RESIDENTIAL PL — not fake empty success.

Why this Actor: Poland price niche · Thin Store gap · Clean PPE schema · Keyword or search URL · No Playwright · Honest antibot limits


What this Actor does

StepAction
1Accept query and/or searchUrl, optional sort / maxItems
2Build https://www.ceneo.pl/;szukaj-{query} (or reuse your URL + page suffix)
3GET with curl_cffi impersonate chrome124 + Accept-Language: pl-PL
4Warm interstitial if needed → parse .cat-prod-row cards
5Normalize PLN price + shopCount → Dataset
6Paginate via ;0020-30-0-0-N.htm until maxItems or empty page

Input

FieldRequiredDescription
queryOne of query/URLKeyword (e.g. iphone, laptop gaming)
searchUrlOne of query/URLFull Ceneo search URL (keeps filters)
sortNorelevance, price_asc, price_desc (v0.1: default SSR ranking)
maxItemsNo1–200 (default 40)
proxyConfigurationNoDefault RESIDENTIAL; Actor injects PL if country empty

Example

{
"query": "iphone",
"sort": "relevance",
"maxItems": 40,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "PL"
}
}

Example with search URL

{
"searchUrl": "https://www.ceneo.pl/;szukaj-iphone",
"maxItems": 20
}

Output example

{
"productId": "157207959",
"title": "Apple iPhone 17 256GB Czarny",
"price": 3998.0,
"currency": "PLN",
"shopCount": 30,
"minPrice": 3998.0,
"detailUrl": "https://www.ceneo.pl/157207959",
"imageUrl": "https://image.ceneostatic.pl/data/products/157207959/f-apple-iphone-17-256gb-czarny.jpg",
"query": "iphone",
"scrapedAt": "2026-09-22T00:00:00Z",
"error": false,
"errorMessage": null
}

Output fields

FieldNotes
productIdNumeric Ceneo id from /… or data-productid
titleFrom data-productname / .cat-prod-row__name
price, minPricePLN; search card lowest (“from”) price
currencyAlways PLN
shopCountShops listing the product (w N sklepach)
detailUrl, imageUrlAbsolute URLs
query, scrapedAt, error, errorMessageRun metadata

Quick start (API)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("noahadler/ceneo-products").call(
run_input={
"query": "iphone",
"maxItems": 20,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "PL",
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("price"), item.get("detailUrl"))

Use cases

  • Poland ecommerce lowest-price monitoring via Ceneo
  • Catalog snapshots for PPE pipelines
  • Competitor assortment coverage in PL
  • Lead gen for brands visible on Ceneo search

Limitations

  • Antibot: without RESIDENTIAL PL, some networks soft-fail with a clear error row (meta-refresh interstitial).
  • Search cards only (v0.1): no deep shop-table enrichment per product.
  • Respect Ceneo Terms of Service and applicable laws.

FAQ

Do I need both query and searchUrl?
No — provide either. If both are set, the Actor uses searchUrl for fetching and keeps query as metadata when present.

Why error on first run?
Often missing Poland residential proxy. Enable Apify Proxy → RESIDENTIAL → PL.

Does this use Playwright?
No. HTTP only (curl_cffi + Chrome TLS fingerprint + BeautifulSoup).


Keywords

ceneo scraper, ceneo.pl api, poland price comparison, PLN product search, poland ecommerce scraper, ceneo catalog dataset, PPE ceneo