Catawiki Auction Lots & Bid Monitor avatar

Catawiki Auction Lots & Bid Monitor

Pricing

from $0.55 / 1,000 lot scrapeds

Go to Apify Store
Catawiki Auction Lots & Bid Monitor

Catawiki Auction Lots & Bid Monitor

Search Catawiki auctions by keyword and get one flat row per lot: title, current bid in EUR, USD and GBP, closing time, reserve met, closed flag, watchers, buy-it-now price, photo and link. Sort by newest or closing soonest. For new-lot and bid alerts on watches, art, cars, coins and collectibles.

Pricing

from $0.55 / 1,000 lot scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Search Catawiki, Europe's online auction house for watches, art, cars, coins, jewellery and collectibles, for one or more terms and get one flat row per lot: title, link, photo, the current bid in euro, US dollar and pound, the closing time, whether the reserve is met, whether the lot has closed, how many people are watching it and the buy-it-now price when there is one. Run it on a schedule, sort by newest first, and diff the dataset on lot_id to get a new-lot alert; sort by closing soon and compare current_bid_* between runs to get a bid alert.

No account, no API key, no login, no browser. One request returns 24 lots and a second request returns the live bids for those 24.

Input

FieldNotes
searchTermsOne or more search terms, one per line. Required. A lot found by two terms is returned once, under the first.
maxItemsLots to read per search term (default 100, up to 2,376). 24 per page.
sortrelevance (Catawiki's default), newest (most recently listed first), closing-soon (lots that close first).
proxyConfigurationApify proxy by default.

About the sorts

The sort values are the three Catawiki's own sort menu sends. Catawiki answers a sort value it does not know with HTTP 200 and the default order, and the page does not say which sort it applied. So:

  • closing-soon is checked by the actor: if fewer than 80% of the first page's closing times come back in ascending order, the term fails (at no charge) rather than return rows in the wrong order. It is a share and not a strict order because a bid in a lot's last minutes pushes its closing time out between the search request and the bidding request.
  • newest cannot be checked from the data, because the search carries no listing time. It was measured to return a different order from relevance, with the most recently opened auctions at the top, and the live test suite holds that in place. Treat "newest" as Catawiki's "recently added" menu entry.

Output

Prices are numbers in the currency named by the column. Times are ISO 8601 in UTC (2026-10-15T19:06:20Z).

FieldNotes
queryThe search term that first found this lot.
lot_id, url, auction_idCatawiki's lot id (the number after /l/), the https://www.catawiki.com/en/l/<id>-<slug> link, and the auction (a themed batch of lots that closes together) the lot sits in. lot_id is stable for the life of the lot: diff on it.
title, subtitle, image_urlAs Catawiki shows them. subtitle is null when the lot has none.
current_bid_eur, current_bid_usd, current_bid_gbpThe highest bid so far, with Catawiki's own conversion. Null when Catawiki sent no amount, never 0.
bidding_start_time, bidding_end_timeWhen bidding opened and when it closes. The close time moves: a bid in the last minutes extends it.
closedTrue once bidding has ended. Catawiki's search still listed a lot five minutes after it closed (1 of 148 distinct lots sampled; how long it keeps closed lots is not measured), so filter on this if you only want live lots.
reserve_price_setWhether the seller set a minimum price.
reserve_price_metWhether the bid has reached it. Null for a lot with no reserve: there is nothing to meet.
favorite_countHow many people have the lot on their watch list.
buy_now_price_eurThe buy-it-now price in euro when the seller offers one, else null.
buy_now_availableCatawiki's own flag from the bidding endpoint. It does not always agree with buy_now_price_eur (one of three sampled lots with a price had the flag false), so use the price.

Honest nulls

A field Catawiki did not send is null, never 0 or "". In the sample every lot had a bid, so the case "nobody has bid yet" was not observed; the actor treats a missing or non-positive amount as null rather than as a bid of 0. If Catawiki's bidding endpoint does not return a lot at all (it leaves out an id it does not know), the lot is still returned with its search fields and null bid, closing, reserve, watcher and closed columns, and the log says how many.

Pricing

Pay per event:

  • $0.002 per run (actor-start), charged only after your input is validated, so a run that fails on bad input costs nothing.
  • $0.00055 per lot row written (listing-scraped), i.e. $0.55 per 1,000 lots. The bidding request that supplies the bids is included.

How it fetches

Two plain HTTP requests per page of 24 lots, no browser:

  1. https://www.catawiki.com/en/s?q=<term>&page=<n> - a Next.js page. The lots are read from the JSON in its __NEXT_DATA__ script tag (searchLots.lots). That data carries what the lot is and no bid amounts at all.
  2. https://www.catawiki.com/buyer/api/v3/bidding/lots?ids=a,b,c - Catawiki's own bidding API, called once per page with that page's 24 ids, joined to the search lots by id.

Measured 2026-10-12: HTTP 200 from an Apify datacenter exit for both, no key or cookie, held for 30 minutes. Catawiki refuses a plain development machine (403), so the Apify proxy is what the actor runs through, and it retries a 403, 429 or 5xx from a fresh address. Nothing was measured through a residential exit.

Things worth knowing, all measured:

  • Only 99 pages are real. For a search of 11,663 lots, pages 1 to 99 were distinct and pages 100 and beyond all returned one repeated set of 24 lots. The actor stops at page 99 (2,376 lots) and says so in the log. To read a larger search, split it into narrower terms, or run it newest-first on a schedule. A search past its end is the other behaviour: an empty page.
  • No match is not "no results". For a nonsense term Catawiki returns a full page of loosely related lots and flags it extended_search_result. Those lots are not matches, so the actor returns none of them and charges nothing; the log says the term had no results. A real term can also hit this: "rolex daytona 6263" did.
  • Counts move. Lots are listed and closed between requests, so a walk can show a lot twice across a page boundary; it is returned once.
  • The bidding endpoint answers in id order, not in the order asked, which is why the join is by id. 24, 66 and 90 ids in one call all worked.
  • Not offered. per_page and p are ignored by the source, so there are no inputs for them. Filters (category, price, closing date) are not offered.