Discover/Catawiki API
live

Catawiki APIcatawiki.com ↗

Search live Catawiki auction lots by keyword, get current bids in EUR/USD/GBP, expert estimates, shipping rates, and full lot detail via 2 endpoints.

Endpoint health
verified 3h ago
search_lots
get_lot
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the Catawiki API?

The Catawiki API provides 2 endpoints for querying live auction lots on catawiki.com. The search_lots endpoint returns real-time bid prices in EUR, USD, and GBP, seconds remaining, reserve status, seller-provided shipping costs to a specified destination country, and facets for filtering by category, closing date, and more. The get_lot endpoint adds expert estimate ranges, full image arrays, and detailed seller profile data for a single lot.

This call costs10 credits / call— charged only on success
Try it
1-based results page.
Result ordering; time_remaining puts the soonest-closing lots first.
Free-text search keywords (brand, model, artist...).
2-letter lowercase ISO country code of the delivery destination used to pick the shipping rate (e.g. nl, de, be).
Lots per page, clamped to 1-48. Also bounds the number of per-lot shipping lookups.
true = only lots without a reserve price. Omitted = no filter.
Numeric Catawiki category id (values appear in facets[id=l2_categories].values[*].id, e.g. 343 = Rolex Watches). Omitted = no filter.
ISO date YYYY-MM-DD; only lots whose bidding closes on that calendar day (available days appear in facets[id=bidding_end_days] as YYYYMMDD ids). Omitted = no filter.
true = only lots with free shipping everywhere. Omitted = no filter.
2-letter lowercase country code of the seller (values appear in facets[id=seller_location].values[*].id, e.g. nl). Omitted = no filter.
When false, skips the per-lot shipping lookups and every lot's shipping field is null (fast, 2 round trips).
→ api.parse.bot/scraper/27aceb17-15a0-4fef-8641-61a59752a83e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/27aceb17-15a0-4fef-8641-61a59752a83e/search_lots?sort=time_remaining&query=rolex&ship_to=nl&per_page=5' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Keyword search over live Catawiki auction lots. Each row is one lot with its live current bid (EUR/USD/GBP), bidding start/end times, seconds left, reserve status, favourite count and, unless include_shipping=false, the seller's shipping rate to the ship_to country taken from the lot's own shipping-rate table (falls back to the seller's 'Rest of European Union' or 'Anywhere else' rate when the exact country is not listed; null when the seller lists none). The default sort is time_remaining (soonest closing first). Paginated via page and per_page (1-48, default 24, default page 1); total is the site's own match count and has_more is page*per_page < total. Cost: one search request, one bidding request, plus one shipping request per lot when include_shipping is on, so a full page of 48 with shipping is 50 round trips. Filters (free_shipping, no_reserve, seller_location, category_id, closing_date) are applied upstream; valid ids/codes for seller_location, category_id and closing_date are listed in the returned facets. Note: for a keyword the site has no direct matches for, Catawiki returns a small set of loosely 'related' objects rather than an empty list, exactly as its website does. Facets are limited to the category, reserve, free-shipping, closing-date and seller-location groups.

Input
ParamTypeDescription
pageinteger1-based results page.
sortstringResult ordering; time_remaining puts the soonest-closing lots first.
queryrequiredstringFree-text search keywords (brand, model, artist...).
ship_tostring2-letter lowercase ISO country code of the delivery destination used to pick the shipping rate (e.g. nl, de, be).
per_pageintegerLots per page, clamped to 1-48. Also bounds the number of per-lot shipping lookups.
no_reservebooleantrue = only lots without a reserve price. Omitted = no filter.
category_idstringNumeric Catawiki category id (values appear in facets[id=l2_categories].values[*].id, e.g. 343 = Rolex Watches). Omitted = no filter.
closing_datestringISO date YYYY-MM-DD; only lots whose bidding closes on that calendar day (available days appear in facets[id=bidding_end_days] as YYYYMMDD ids). Omitted = no filter.
free_shippingbooleantrue = only lots with free shipping everywhere. Omitted = no filter.
seller_locationstring2-letter lowercase country code of the seller (values appear in facets[id=seller_location].values[*].id, e.g. nl). Omitted = no filter.
include_shippingbooleanWhen false, skips the per-lot shipping lookups and every lot's shipping field is null (fast, 2 round trips).
Response
{
  "type": "object",
  "fields": {
    "lots": "array of lot rows: lot_id (string, pass to get_lot), title, subtitle, url, image_url, auction_id, current_bid {EUR,USD,GBP} numbers, bidding_start_time / bidding_end_time (ISO 8601 UTC), seconds_left (int, computed at call time), closed, reserve_price_set, reserve_price_met (null when no reserve), favorite_count, buy_now_available, shipping (null when include_shipping=false or lookup failed) {to {region_code, region_name, price (major currency units), currency}, estimated_delivery_days [{from_days,to_days}], is_pickup_only, combined_shipping_allowed}",
    "page": "page returned",
    "sort": "sort order applied",
    "query": "echo of the search keywords",
    "total": "site-reported number of matching lots",
    "facets": "array of {id, name, values[{id,name,count}]} for the category, reserve, free-shipping, closing-date and seller-location filter groups",
    "ship_to": "destination country code used for shipping rates",
    "has_more": "true when a further page exists",
    "per_page": "page size applied after clamping",
    "shipping_coverage": "requested / fetched counts of per-lot shipping lookups and a failed list of {lot_id, status_code}"
  },
  "sample": {
    "data": {
      "lots": [
        {
          "url": "https://www.catawiki.com/en/l/107135360-rolex-oyster-perpetual-day-date-118239-unisex-2006",
          "title": "Rolex - Oyster Perpetual Day-Date - 118239 - Unisex - 2006",
          "closed": false,
          "lot_id": "107135360",
          "shipping": {
            "to": {
              "price": 69,
              "currency": "EUR",
              "region_code": "nl",
              "region_name": "The Netherlands"
            },
            "is_pickup_only": false,
            "estimated_delivery_days": [
              {
                "to_days": 14,
                "from_days": 7
              }
            ],
            "combined_shipping_allowed": false
          },
          "subtitle": "Automatic - White gold",
          "image_url": "https://assets.catawiki.nl/assets/2026/6/17/0/a/5/0a597ce0-8616-4b46-a04f-c5befaa84081.jpg",
          "auction_id": "1296076",
          "current_bid": {
            "EUR": 13200,
            "GBP": 11351,
            "USD": 15004
          },
          "seconds_left": 78033,
          "favorite_count": 26,
          "bidding_end_time": "2026-10-01T18:01:00Z",
          "buy_now_available": false,
          "reserve_price_met": false,
          "reserve_price_set": true,
          "bidding_start_time": "2026-09-25T16:00:00Z"
        }
      ],
      "page": 1,
      "sort": "time_remaining",
      "query": "rolex",
      "total": 782,
      "facets": [
        {
          "id": "reserve_price",
          "name": "Reserve price",
          "values": [
            {
              "id": "1",
              "name": "Reserve price",
              "count": 636
            },
            {
              "id": "0",
              "name": "No reserve price",
              "count": 146
            }
          ]
        }
      ],
      "ship_to": "nl",
      "has_more": true,
      "per_page": 5,
      "shipping_coverage": {
        "failed": [],
        "fetched": 5,
        "requested": 5
      }
    },
    "status": "success"
  }
}

About the Catawiki API

Searching Auction Lots

The search_lots endpoint accepts a query string and returns a paginated list of matching live lots. Each row exposes lot_id, title, subtitle, url, image_url, auction_id, and a current_bid object with EUR, USD, and GBP values. Bidding start and end times, seconds remaining, a no_reserve flag, and a favourite count are included per lot. You can sort results by time_remaining (soonest-closing first), recently added, or relevance, and filter by category_id, closing_date (ISO date), or no_reserve=true. Page size is controlled by per_page (1–48).

Shipping Rate Lookups

Pass a 2-letter ISO country code via the ship_to parameter (e.g. nl, de, gb) to include the seller's quoted shipping rate to that destination in each lot row. The shipping_coverage field in the response reports how many of the requested lots returned a shipping figure and lists any {lot_id, status_code} pairs that failed. Setting include_shipping=false disables per-lot shipping lookups if that latency is not needed. The ship_to code used is echoed back in the top-level response.

Facets and Full Lot Detail

The facets array in search_lots responses contains filter groups — category, reserve status, free shipping, closing date, and seller location — each with id, name, and values[{id, name, count}]. The category_id values found in facets (e.g. 343 for Rolex Watches) can be fed back as a filter on subsequent calls. For a single lot, get_lot accepts the lot_id emitted by search_lots and returns the full seller profile (name, country, is_pro, score_percent, review_count, objects_sold), the auction context (id, title, status), expert estimate {min_eur, max_eur}, a full images array, and a closed boolean indicating whether bidding has ended.

Reliability & maintenanceVerified

The Catawiki API is a managed, monitored endpoint for catawiki.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when catawiki.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official catawiki.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track the closing prices of specific collectible categories by polling search_lots sorted by time_remaining.
  • Build a cross-currency bid tracker using the current_bid EUR/USD/GBP fields returned per lot.
  • Compare seller shipping costs to different destination countries by varying the ship_to parameter.
  • Alert users when lots matching a keyword have no reserve price using the no_reserve filter.
  • Aggregate expert estimate ranges (min_eur, max_eur from get_lot) against final hammer prices for valuation research.
  • Filter upcoming lots closing on a specific date using the closing_date parameter alongside a category facet.
  • Build a seller reputation tool using the score_percent, review_count, and objects_sold fields from get_lot.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Catawiki offer an official developer API?+
Catawiki does not publish a public developer API or documented REST surface. There is no official API portal, key registration, or listed developer program as of mid-2025.
What bid price data does `search_lots` return, and in which currencies?+
search_lots returns a current_bid object per lot with three fields: the EUR, USD, and GBP equivalent of the live bid at the time of the request. Bidding start and end timestamps and a seconds_left value are also included so you can compute urgency without additional calls.
Does the API return historical sold prices or completed auction results?+
The API currently covers live and open auction lots. Completed auction history and hammer prices are not returned by either endpoint. You can fork this API on Parse and revise it to add an endpoint targeting closed lot data.
What are the pagination limits for `search_lots`?+
per_page is clamped to a maximum of 48 lots per request. The has_more boolean indicates whether additional pages exist, and page is 1-based. The total field gives the site-reported count of matching lots across all pages, which you can use to calculate pagination depth before fetching.
Can I retrieve all lots in a specific category without a keyword query?+
The query parameter is required for search_lots. You can narrow results to a category using category_id (values come from the facets array), but a keyword string must still be provided. Browse-by-category without a search term is not currently supported. You can fork this API on Parse and revise it to add a category-browse endpoint.
Page content last updated . Spec covers 2 endpoints from catawiki.com.
Related APIs in MarketplaceSee all →
wheatlandauctionservices.com API
Search through Wheatland Auction Services' current sports card and memorabilia auction by keywords or categories to find lots that interest you, then view detailed information about individual items including pricing data. Browse anonymously without needing an account to discover and compare available lots before bidding.
collectauctions.com API
Search through Collect Auctions lots and view detailed information about each item, including current status (sold, unsold, or active), opening bid, final sale price with premium included, bid count, and auction dates. Access gallery views of lots and get comprehensive details to research auction history and track specific items.
siriussportsauctions.com API
Search current and past Sirius Sports Cards auction lots and fixed-price items by your criteria, then view detailed information about specific cards including current auction prices and historical prices realized. Browse anonymously to discover cards and compare pricing across live auctions and completed sales without needing an account.
whiskyauctioneer.com API
Access data from whiskyauctioneer.com.
marketplace.cleansweepauctions.com API
Search for auction lots and fixed-price items across Clean Sweep Auctions' active listings, recently closed sales, or store inventory using keywords, then view detailed pricing and bid information for any specific lot. Get instant access to current market data including bid history and final sale prices without needing an account.
milehighcardco.com API
Search Mile High Card Company's current auction catalog by keyword and view detailed pricing information for individual lots, including separate price roles and completion status independent of scheduled auction timing. Perfect for tracking specific cards and monitoring auction activity without needing to browse the website directly.
rrauction.com API
Search and browse current and past auction lots from RR Auction, including detailed information about each item's description, estimated value, and bidding history. Find specific items of interest by searching across their complete catalog of collectibles, memorabilia, and rare goods.
pristineauction.com API
Search and browse Pristine Auction's sports card lots to find current bidding information, hammer prices, and auction details for completed sales. Access real-time bid counts, end times, buyer's premiums, and final prices for any lot you're interested in.