{
  "openapi": "3.0.1",
  "info": {
    "title": "The Saleroom Scraper - Auction Lots, Estimates & Premiums",
    "description": "Scrape auction lots from the-saleroom.com: title, estimate, current bid, images, sale dates, buyer's premium, auction house phone and email. Search by keyword, category, house, country, estimate or postcode, paste catalogue links (closed lots with Sold/Passed status) or monitor new lots.",
    "version": "0.1",
    "x-build-id": "JsuN4J7IV6Mwrd7px"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~the-saleroom-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-the-saleroom-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapersdelight~the-saleroom-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-the-saleroom-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapersdelight~the-saleroom-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-the-saleroom-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "🔍 Search terms",
            "type": "array",
            "description": "The site's own lot search, one search per term, e.g. \"pocket watch\", \"Moorcroft\", \"Banksy\". Leave empty (and add no links) to read every lot that matches the filters below.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "the-saleroom.com links",
            "type": "array",
            "description": "Links from the-saleroom.com: a search (/search-results?searchterm=... with its filters), a category (/for-sale/fine-art), an auction catalogue (every lot, closed ones too), an auction house (its open lots; add ?Auctions=past for its past sales) or a single lot. A link brings its own filters.",
            "items": {
              "type": "string"
            }
          },
          "masterCategory": {
            "title": "Category",
            "enum": [
              "",
              "COL",
              "CWJ",
              "DEA",
              "FIA",
              "FUR",
              "AA",
              "VFT",
              "COV",
              "COG",
              "ETA",
              "GRE",
              "ELP",
              "OTI",
              "CAT",
              "PAM",
              "WSU",
              "IND",
              "AGR",
              "MET",
              "MSC",
              "WOO",
              "FAA"
            ],
            "type": "string",
            "description": "The site's top-level category. Pair it with Sub-categories to narrow further.",
            "default": ""
          },
          "categoryCodes": {
            "title": "Sub-categories",
            "type": "array",
            "description": "Sub-category codes or names, e.g. \"CLK\" or \"Clocks\", \"WAT\" (watches), \"SIL\" (silver), \"COI\" (coins). Several = any of them. The README lists all 154.",
            "items": {
              "type": "string"
            }
          },
          "auctionHouses": {
            "title": "Auction houses",
            "type": "array",
            "description": "Auction-house names exactly as the site shows them, e.g. \"Bonhams\", \"Fellows\", \"Chiswick Auctions\". Several = any of them.",
            "items": {
              "type": "string"
            }
          },
          "auctionTypes": {
            "title": "Sale types",
            "type": "array",
            "description": "Live (bid during the sale), Timed (online, lots close one by one) and the site's other sale formats. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Live",
                "Timed",
                "Catalogue Live",
                "Catalogue Timed",
                "Tender"
              ],
              "enumTitles": [
                "Live",
                "Timed",
                "Catalogue Live",
                "Catalogue Timed",
                "Tender"
              ]
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Country of the sale. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "United Kingdom",
                "Germany",
                "Canada",
                "United States",
                "Ireland",
                "Italy",
                "Netherlands",
                "Belgium",
                "Australia",
                "Switzerland",
                "France",
                "Spain",
                "Japan",
                "Austria",
                "Singapore",
                "Cyprus",
                "Portugal",
                "Vietnam",
                "Guernsey"
              ],
              "enumTitles": [
                "United Kingdom",
                "Germany",
                "Canada",
                "United States",
                "Ireland",
                "Italy",
                "Netherlands",
                "Belgium",
                "Australia",
                "Switzerland",
                "France",
                "Spain",
                "Japan",
                "Austria",
                "Singapore",
                "Cyprus",
                "Portugal",
                "Vietnam",
                "Guernsey"
              ]
            }
          },
          "brands": {
            "title": "Brands / makers",
            "type": "array",
            "description": "The site's Brand filter, e.g. \"Rolex\", \"Royal Doulton\", \"Moorcroft\", \"Corgi\". Several = any of them.",
            "items": {
              "type": "string"
            }
          },
          "itemTypes": {
            "title": "Item types",
            "type": "array",
            "description": "The site's Item filter, e.g. \"Ring\", \"Bracket Clock\", \"Oil Painting\", \"Vase\". Several = any of them.",
            "items": {
              "type": "string"
            }
          },
          "minEstimate": {
            "title": "Minimum estimate",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest low estimate, in the sale's own currency (the site's Estimate filter)."
          },
          "maxEstimate": {
            "title": "Maximum estimate",
            "minimum": 0,
            "type": "integer",
            "description": "Highest high estimate, in the sale's own currency."
          },
          "listedSince": {
            "title": "Listed since",
            "type": "string",
            "description": "Only lots published on the site since this time: a date (2026-10-01) or a duration (\"24 hours\", \"7 days\"). Pairs well with a daily schedule."
          },
          "auctionDateFrom": {
            "title": "Auction date from",
            "type": "string",
            "description": "Only lots whose auction starts on or after this date."
          },
          "auctionDateTo": {
            "title": "Auction date to",
            "type": "string",
            "description": "Only lots whose auction starts on or before this date."
          },
          "nearPostcode": {
            "title": "Near postcode",
            "type": "string",
            "description": "The site's location filter: lots from sales within the radius below of this postcode, e.g. \"SW1A 1AA\", \"BD23 6QR\"."
          },
          "postcodeCountry": {
            "title": "Postcode country",
            "enum": [
              "UK",
              "US",
              "IE",
              "DE",
              "FR",
              "NL",
              "IT",
              "BE",
              "CA",
              "AU",
              "CH",
              "ES",
              "AT"
            ],
            "type": "string",
            "description": "Country of the postcode above.",
            "default": "UK"
          },
          "radiusMiles": {
            "title": "Within (miles)",
            "enum": [
              "10",
              "25",
              "50",
              "100",
              "250",
              "500"
            ],
            "type": "string",
            "description": "Radius around the postcode, the site's own choices.",
            "default": "25"
          },
          "imagesOnly": {
            "title": "Lots with images only",
            "type": "boolean",
            "description": "The site's \"Lots with images\" filter.",
            "default": false
          },
          "exactMatch": {
            "title": "Exact matches only",
            "type": "boolean",
            "description": "The site's \"Exact matches only\" switch: no typo tolerance or word-prefix matching for the search terms.",
            "default": false
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "relevance",
              "auctionDate",
              "highEstimate",
              "lowEstimate",
              "auctionHouse",
              "publishedDate"
            ],
            "type": "string",
            "description": "The site's sort options. Monitor mode always reads newest listings first.",
            "default": "relevance"
          },
          "includeEndedAuctions": {
            "title": "Include ended auctions",
            "type": "boolean",
            "description": "The site's search index still holds lots of auctions that ended long ago (about a quarter of it in October 2026; their pages say \"Lot - Expired\"). Off = only auctions that have not ended more than a day ago.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop lots whose title or description contains any of these words, e.g. \"reproduction\", \"damaged\". Dropped lots are not charged.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithEstimate": {
            "title": "Only lots with an estimate",
            "type": "boolean",
            "description": "Skip lots the auctioneer published without an estimate.",
            "default": false
          },
          "includeAuctionDetails": {
            "title": "Auction details",
            "type": "boolean",
            "description": "Add each auction's buyer's premium and online commission (inc. VAT), sale days with lot ranges, status, lot count, venue address and the auction house's phone and email. One catalogue page per auction, shared by its lots.",
            "default": true
          },
          "includeAuctionHouseDetails": {
            "title": "Auction-house profile",
            "type": "boolean",
            "description": "Add the auction house's full address, phone, email and profile text from its page on the site (one page per house).",
            "default": false
          },
          "includeLotDetails": {
            "title": "Lot details",
            "type": "boolean",
            "description": "Open each lot's page: lot status (Sold / Passed / WaitingToBeOffered ...), opening price, every image, total buyer fees % and the full description of closed lots. One page per lot, so slower.",
            "default": false
          },
          "includeClosedLots": {
            "title": "Closed lots of catalogue links",
            "type": "boolean",
            "description": "For auction-catalogue links: also deliver lots that have already closed (read from the catalogue's own pages; turn on Lot details for their Sold / Passed status).",
            "default": true
          },
          "monitorMode": {
            "title": "Only new lots (monitor)",
            "type": "boolean",
            "description": "Deliver only lots that no earlier run of the same search delivered; newest listings are read first and the walk stops where the last run ended. Pairs with a daily schedule.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for the monitor's memory, e.g. \"clocks-uk\". Runs with the same name share one memory even if their inputs differ; empty = one memory per input."
          },
          "maxItems": {
            "title": "Maximum lots",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many lots in total. 0 = no limit (one search pages through up to 100,000 lots; bigger searches are split by auction date automatically).",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Maximum lots per search",
            "minimum": 0,
            "type": "integer",
            "description": "Cap for each search term or link on its own. 0 = only the overall maximum applies.",
            "default": 0
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Core fields only (id, link, title, estimate, bid, auction, house, location, dates) - smaller rows for spreadsheets and AI pipelines.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "type": "integer",
            "description": "Cut descriptions to this many characters. 0 = full text.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: the actor reads the site directly and moves to Apify's proxies by itself only if the site refuses a request.",
            "default": {
              "useApifyProxy": false
            }
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Pages read at the same time for auction, house and lot details.",
            "default": 4
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}