Ricardo.ch Listings Scraper avatar

Ricardo.ch Listings Scraper

Under maintenance

Pricing

Pay per event

Go to Apify Store
Ricardo.ch Listings Scraper

Ricardo.ch Listings Scraper

Under maintenance

Scrape live auction and classifieds listings from Ricardo.ch, Switzerland's #1 online marketplace — search by category or free-text slug and get title, price, listing URL, image, and a stable listing ID in one structured dataset, page after page.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share


🎯 What this scrapes

Ricardo.ch is Switzerland's #1 auction and classifieds marketplace, and its search-results page (/de/s/<slug>) is the entry point for browsing any category or free-text query — laptops, bikes, watches, whatever buyers are searching for. This Actor drives that same search endpoint and returns every listing it finds as one clean row: title, price in CHF, listing URL, image, and a stable numeric listing ID, deduplicated across pages.

🔥 What we handle for you

  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page.
  • 🧩 One search, two wire formats handled — Ricardo.ch ships page 1 and page 2+ differently under the hood; we normalize both into the same clean row shape.
  • 🫠 A single unparsable page never fails the run — logged and pagination stops cleanly, the rest of your data still ships.
  • 🧊 Clean, typed dataset rows — validated fields, deduplicated by listing ID, ISO-8601 timestamps, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for listings actually returned; a zero-match search costs nothing beyond the warm-up fee.

💡 Use cases

  • Price monitoring — track how a category's listings and asking prices shift week to week.
  • Resale sourcing — scan a category or keyword for underpriced listings worth flipping.
  • Market research — build a dataset of live CHF pricing across Ricardo.ch categories.
  • Feed a spreadsheet or BI tool with structured Swiss marketplace data, no manual copy-paste.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
search_slugstringno'laptop'The path segment after /de/s/ on Ricardo.ch — a category or free-text search term (e.g. laptop, velo).
max_pagesintegerno2Hard cap on pages fetched. Keep at 2 or higher to exercise both of Ricardo.ch's listing formats.
max_resultsintegerno100Hard cap on dataset rows returned across all pages.
proxyConfigurationobjectno{'useApifyProxy': False}Ricardo.ch's public search page is keyless with no anti-bot surface observed. Leave this off unless your account…

Example input

{
"search_slug": "laptop",
"max_pages": 2,
"max_results": 20,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
listing_idstringNumeric id trailing the listing URL (e.g. "1321416530").
titlestringListing name/title.
pricenumberAsking/current price. Null when unparsable (e.g. "Preis auf Anfrage").
currencystringAlways "CHF" for Ricardo.ch.
listing_urlstringAbsolute URL to the listing detail page.
image_urlstringPrimary listing image, when present.
search_slugstringThe input slug this row was found under.
pageinteger1-based page number this row was scraped from.
source_formatstringWhich parser produced this row: json_ld (page 1) or react_flight (page 2+).
scraped_atstringISO-8601 timestamp of this fetch.

Example output

{
"listing_id": "1321416530",
"title": "POWERHOUSE MacBook Pro 16Zoll/M4 Pro/2 TB SSD/24 GB RAM",
"price": 2800.0,
"currency": "CHF",
"listing_url": "https://www.ricardo.ch/de/a/powerhouse-macbook-pro-16zoll-m4-pro-2-tb-ssd-24-gb-ram-1321416530/",
"image_url": "https://ricardo-images.example/1321416530.jpg",
"search_slug": "laptop",
"page": 1,
"source_format": "json_ld",
"scraped_at": "2026-09-20T00:00:00Z"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.2One-off warm-up charge per run
result-row$0.004Per unique dataset item

Example: 1 000 listings at the rates above ≈ $4.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

  • Search-results fields only — no detail-page enrichment (seller info, bid history, full description) in this version.
  • No auction end-time or bid-count fields — not published on the search-results page.
  • German-language /de/s/ search path only; French/Italian locale paths are out of scope.
  • Any endpoint requiring login (watchlist, bids, messaging) is out of scope.

❓ FAQ

Do I need a Ricardo.ch account or login?

No. This Actor reads only the public search-results page — no login, no auth header, no cookie session required.

What happens if my search slug has no listings?

The run succeeds with zero rows and a status message naming the slug searched — no placeholder rows, no failed run.

Which locale does this cover?

The German-language /de/s/ search path only. French (/fr/s/) and Italian (/it/s/) locales are not covered in this version.

Does this scrape the full listing detail page?

Not in this version — you get everything the search-results page publishes (title, price, URL, image, listing ID). Seller info, bid history, and full descriptions may land in a future version.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.