{
  "openapi": "3.0.1",
  "info": {
    "title": "Drouot Scraper - Auction Lots, Sales & House Contacts",
    "description": "From $1.80 per 1,000 rows, no start fee. drouot.com: 214,444 lots across 809 upcoming sales from 364 auction houses. Every lot, sale and house row carries the auctioneer's email, phone and address, plus company registration and VAT numbers. Filter by category, search, country, sale type or estimate.",
    "version": "0.1",
    "x-build-id": "A0fp5v2tAl7qFFFWM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~drouot-lot-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-drouot-lot-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~drouot-lot-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-drouot-lot-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~drouot-lot-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-drouot-lot-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": {
          "mode": {
            "title": "Row type",
            "enum": [
              "lots",
              "sales",
              "auctionHouses"
            ],
            "type": "string",
            "description": "lots: the catalogue grain. Every lot row carries lot number, description, estimates, live bid, photos, the sale it belongs to AND the auction house's email, phone and address. sales: one row per auction — the whole contact-bearing calendar costs 17 requests. auctionHouses: one row per house, adding the company registration number, the French agrement number, the VAT number, the house's own website, its named auctioneers and its top hammer prices.",
            "default": "lots"
          },
          "startUrls": {
            "title": "Drouot URLs",
            "type": "array",
            "description": "Paste URLs straight out of your browser, in any of the six site languages. Supported: a sale /en/v/184215-…, a single lot /en/l/34888742-…, a category /en/c/626/paintings, a search /en/s?query=bernard+buffet, an auction house /en/auctioneer/840/etampes-encheres, or the board /en/auctions/future. A URL this actor cannot walk is reported in the log by name rather than silently skipped.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQuery": {
            "title": "Search term",
            "type": "string",
            "description": "Drouot's own full-text lot search, e.g. \"bernard buffet\", \"rolex submariner\", \"meissen\". Note the index is per-language: the same term returned 308 lots on /en and 452 on /fr (measured 2026-09-18), so set Language below to match how the catalogue is written."
          },
          "categoryIds": {
            "title": "Categories",
            "type": "array",
            "description": "Drouot's own category tree, read from its /categories endpoint on 2026-09-18: 6 macro categories, 27 categories, 83 sub-categories. Indented entries are children. Picking a parent includes its children (Paintings = 20,094 lots, its child Old Masters = 10,038).",
            "items": {
              "type": "string",
              "enum": [
                "1053",
                "622",
                "9",
                "437",
                "701",
                "1",
                "650",
                "651",
                "652",
                "653",
                "654",
                "655",
                "658",
                "659",
                "204",
                "190",
                "341",
                "464",
                "695",
                "696",
                "697",
                "1106",
                "1107",
                "205",
                "194",
                "628",
                "629",
                "632",
                "187",
                "358",
                "726",
                "727",
                "712",
                "714",
                "1056",
                "1050",
                "626",
                "30",
                "39",
                "75",
                "156",
                "164",
                "21",
                "25",
                "28",
                "42",
                "50",
                "234",
                "310",
                "40",
                "635",
                "800",
                "801",
                "802",
                "803",
                "1051",
                "199",
                "41",
                "677",
                "678",
                "679",
                "682",
                "684",
                "686",
                "687",
                "689",
                "1108",
                "230",
                "67",
                "153",
                "637",
                "638",
                "643",
                "617",
                "666",
                "667",
                "668",
                "669",
                "670",
                "625",
                "716",
                "718",
                "719",
                "720",
                "1052",
                "14",
                "699",
                "700",
                "1111",
                "26",
                "671",
                "672",
                "1109",
                "203",
                "27",
                "46",
                "352",
                "418",
                "665",
                "765",
                "206",
                "17",
                "36",
                "74",
                "133",
                "363",
                "615",
                "707",
                "43",
                "1055",
                "5",
                "16",
                "126",
                "152",
                "312",
                "1110"
              ],
              "enumTitles": [
                "Luxury & Art of living (1053)",
                "— Watches and timepieces (622)",
                "—— Wristwatches (9)",
                "—— Clocks and mantel clocks (437)",
                "—— Fob and pocket watches (701)",
                "— Jewellery and precious stones (1)",
                "—— Rings (650)",
                "—— Earrings (651)",
                "—— Cufflinks (652)",
                "—— Bracelets (653)",
                "—— Brooches and pins (654)",
                "—— Necklaces, pearl necklaces and chains (655)",
                "—— Precious stones (658)",
                "—— Semi-precious stones (659)",
                "— Fashion and vintage items (204)",
                "—— Suitcases and trunks (190)",
                "—— Furs (341)",
                "—— Textiles, lace and fabrics (464)",
                "—— Belts and accessories (695)",
                "—— Wallets (696)",
                "—— Handbags (697)",
                "—— Clothes (1106)",
                "—— Shoes (1107)",
                "— Tableware (205)",
                "—— Glasses, carafes and liquor cabinets (194)",
                "—— Plates and Dishes (628)",
                "—— Cutlery and silverware (629)",
                "—— Sets of tableware (632)",
                "— Wines and spirits (187)",
                "—— Champagne (358)",
                "—— Whisky, rum and brandy (726)",
                "—— Wine and fortified wine (727)",
                "— Pens, paperweights and inkwells (712)",
                "— Cars, bicycles and other (714)",
                "— Luxury brands (1056)",
                "Fine arts (1050)",
                "— Paintings (626)",
                "—— Icons (30)",
                "—— Impressionist and modern paintings (39)",
                "—— Post-war and contemporary paintings (75)",
                "—— Old Masters (before 1870) (156)",
                "— Graphic arts (164)",
                "—— Photographs (21)",
                "—— Posters (25)",
                "—— Works on paper (28)",
                "—— Tapestries (42)",
                "—— Lithographs (50)",
                "—— Street Art, graffiti (234)",
                "—— Watercolours (310)",
                "— Sculptures (40)",
                "—— Bronzes (635)",
                "—— Marble sculptures (800)",
                "—— Plaster sculptures (801)",
                "—— Terracotta sculptures (802)",
                "—— Wood sculptures (803)",
                "Furniture & Works of art (1051)",
                "— Furniture (199)",
                "—— Carpets (41)",
                "—— Bookshelves (677)",
                "—— Sideboards and credenzas (678)",
                "—— Desks (679)",
                "—— Chests (682)",
                "—— Consoles and corner furniture (684)",
                "—— Beds (686)",
                "—— Screens (687)",
                "—— Tables (689)",
                "—— Commodes (1108)",
                "— Works of art (230)",
                "—— Antique and modern frames (67)",
                "—— Ceramics (153)",
                "—— Caskets and boxes (637)",
                "—— Mirrors (638)",
                "—— Vases (643)",
                "— Lighting (617)",
                "—— Wall lamps (666)",
                "—— Chandeliers, candlesticks and candelabra (667)",
                "—— lampposts (668)",
                "—— Lamps and lanterns (669)",
                "—— Ceiling and suspended lights (670)",
                "— Seating (625)",
                "—— Sofas and benches (716)",
                "—— Chairs (718)",
                "—— Armchairs (719)",
                "—— Stools (720)",
                "Collections (1052)",
                "— Numismatics (14)",
                "—— Coins and notes (699)",
                "—— Ingots (700)",
                "—— Histo medals (1111)",
                "— Arms, hunting weapons and military mementoes (26)",
                "—— Arms (671)",
                "—— Helmets and uniforms (672)",
                "—— Militaria medals (1109)",
                "— Books & manuscripts (203)",
                "—— Strip cartoons (27)",
                "—— Postcards (46)",
                "—— Maps (352)",
                "—— Old books (418)",
                "—— Letters and autographs (665)",
                "—— Religious books (765)",
                "— Collectors' items (206)",
                "—— Sport items (17)",
                "—— Stamps (36)",
                "—— Natural history (74)",
                "—— Scientific instruments (133)",
                "—— Animal mementoes and taxidermy (363)",
                "— Toys and models (615)",
                "— Music (707)",
                "Asian art (43)",
                "World Art (1055)",
                "— Arts of Africa, America and Oceania (5)",
                "— Archaeology – Antiquity (16)",
                "— Judaica (126)",
                "— Islamic art (152)",
                "— Religions (312)",
                "— Precolombian Art (1110)"
              ]
            },
            "default": []
          },
          "saleIds": {
            "title": "Sale IDs",
            "type": "array",
            "description": "Numeric Drouot sale ids, e.g. 184215. The number in a /v/ URL. Faster than pasting whole URLs when you already keep a list.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locale": {
            "title": "Language",
            "enum": [
              "en",
              "fr",
              "de",
              "es",
              "it",
              "zh"
            ],
            "type": "string",
            "description": "Which language version of the catalogue to read. Titles, descriptions and category names come back in this language; ids, prices, dates and contacts are identical in all six. Lot rows also carry originalDescription — the text in the language the auctioneer actually wrote it in — when you turn on full lot pages below.",
            "default": "en"
          },
          "countries": {
            "title": "Auction house country",
            "type": "array",
            "description": "Drouot stores country as a bare numeric id with no dictionary anywhere in its data. The 27 values below are every country present on the live board on 2026-09-18, with how many of the 808 upcoming sales each accounted for. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "75",
                "109",
                "84",
                "18",
                "228",
                "231",
                "203",
                "210",
                "150",
                "12",
                "209",
                "128",
                "140",
                "175",
                "181",
                "11",
                "88",
                "107",
                "112",
                "31",
                "37",
                "45",
                "55",
                "60",
                "103",
                "174",
                "234"
              ],
              "enumTitles": [
                "France  (491 of 808 upcoming sales)",
                "Italy  (77 of 808 upcoming sales)",
                "Germany  (54 of 808 upcoming sales)",
                "Belgium  (48 of 808 upcoming sales)",
                "United Kingdom  (37 of 808 upcoming sales)",
                "United States  (21 of 808 upcoming sales)",
                "Spain  (19 of 808 upcoming sales)",
                "Switzerland  (10 of 808 upcoming sales)",
                "Netherlands  (7 of 808 upcoming sales)",
                "Austria  (6 of 808 upcoming sales)",
                "Sweden  (6 of 808 upcoming sales)",
                "Luxembourg  (4 of 808 upcoming sales)",
                "Monaco  (4 of 808 upcoming sales)",
                "Portugal  (4 of 808 upcoming sales)",
                "Romania  (4 of 808 upcoming sales)",
                "Australia  (2 of 808 upcoming sales)",
                "Greece  (2 of 808 upcoming sales)",
                "Ireland  (2 of 808 upcoming sales)",
                "Japan  (2 of 808 upcoming sales)",
                "Bulgaria  (1 of 808 upcoming sales)",
                "Canada  (1 of 808 upcoming sales)",
                "Taiwan  (1 of 808 upcoming sales)",
                "Croatia  (1 of 808 upcoming sales)",
                "Denmark  (1 of 808 upcoming sales)",
                "India  (1 of 808 upcoming sales)",
                "Poland  (1 of 808 upcoming sales)",
                "Uruguay  (1 of 808 upcoming sales)"
              ]
            },
            "default": []
          },
          "saleTypes": {
            "title": "Sale type",
            "type": "array",
            "description": "Counted on the live board 2026-09-18. Bidding data (currentBid, nextBid) is only ever live on ONLINE sales — see the README.",
            "items": {
              "type": "string",
              "enum": [
                "LIVE",
                "ONLINE",
                "CATALOGUE",
                "COURANTE"
              ],
              "enumTitles": [
                "LIVE — room sale with live online bidding  (665 of 808)",
                "ONLINE — timed online-only sale  (106 of 808)",
                "CATALOGUE — catalogued sale  (36 of 808)",
                "COURANTE — general/everyday sale  (1 of 808)"
              ]
            },
            "default": []
          },
          "saleStatuses": {
            "title": "Sale status",
            "type": "array",
            "description": "Counted on the live board 2026-09-18. CLOSED sales do not appear on the upcoming board at all and return an empty catalogue when asked directly — their lots survive only on their own lot pages.",
            "items": {
              "type": "string",
              "enum": [
                "CREATED",
                "IN_PROGRESS",
                "CLOSED"
              ],
              "enumTitles": [
                "CREATED — upcoming, not open for bidding yet  (699 of 808)",
                "IN_PROGRESS — open now  (109 of 808)",
                "CLOSED — finished (a closed sale withdraws its catalogue)"
              ]
            },
            "default": []
          },
          "minEstimate": {
            "title": "Minimum estimate",
            "minimum": 0,
            "type": "integer",
            "description": "Keep lots whose estimate range reaches at least this. Lots with NO estimate at all are dropped by this filter, because an unknown estimate cannot be asserted to be inside your band. Measured: 94.0% of lots carry a low estimate. Note the currency is the sale's own — 725 of 808 upcoming sales are in EUR, the rest in 10 other currencies."
          },
          "maxEstimate": {
            "title": "Maximum estimate",
            "minimum": 0,
            "type": "integer",
            "description": "Keep lots whose estimate range starts at or below this."
          },
          "onlyWithContact": {
            "title": "Only rows with an email or a phone",
            "type": "boolean",
            "description": "Filter before delivery so you never pay for a row you cannot act on. Measured on all 809 upcoming sales: 100.0% carry an auction-house email and 99.0% a telephone, so this normally removes nothing — it is here so a lead-gen run can guarantee it.",
            "default": false
          },
          "fetchLotDetails": {
            "title": "Open each lot page (full description, all photos, categories)",
            "type": "boolean",
            "description": "Lot LISTINGS cut the description at exactly 500 characters with no ellipsis — measured: 87 of 100 descriptions on one sale page were exactly 500 long. They also carry one photo and no categories. Turning this on re-reads each lot from its own page for the untruncated description, the auctioneer's original-language text, every photo and the category ids. Costs one extra request per lot: 100 lots go from 1 request to 101.",
            "default": false
          },
          "includeHouseRegistry": {
            "title": "Add the auction house registry block",
            "type": "boolean",
            "description": "Joins in each house's company registration number, its French agrement number (the authorisation an operateur de ventes volontaires must hold under Code de commerce L321-4), its VAT number and its own website. One extra request per DISTINCT house, cached for the whole run — the 809-sale board is run by 364 houses, so the whole board costs 364 lookups, not 809. Already included in Auction houses mode.",
            "default": false
          },
          "includeSaleTerms": {
            "title": "Add the full terms of sale (Sales mode)",
            "type": "boolean",
            "description": "The auction calendar does not carry each sale's conditions of sale; the sale's own page does. Turning this on fetches them, at one extra request per sale. Measured: 100% of sales publish terms.",
            "default": false
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on rows delivered, and therefore on rows charged. 0 means no cap. For scale: the whole upcoming board is 809 sales / 364 auction houses / 214,444 lots, and a full lot sweep is about 2,200 requests, roughly 9 minutes at the rate drouot.com tolerates.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Measured 2026-09-18: 18 of 18 requests across all six routes returned HTTP 200 through Apify's automatic (datacenter) proxy, and a 30-call sustained run was 30/30. Automatic is the default because it is cheaper and, here, more reliable: in a 15-request truncation test the RESIDENTIAL pool produced one HTTP 403 from a flagged exit IP while automatic produced none. Residential (country FR) also works if you prefer it.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}