{
  "openapi": "3.0.1",
  "info": {
    "title": "Christie's Auction Scraper",
    "description": "Christie's auction results and upcoming lots: 13,000+ sales since 1998 with price realised, estimates in USD, artist, sale, status and online bids. Filter by artist, category, city, date and price. Provenance, literature, essay, specialist contact and all photos as an add-on.",
    "version": "1.0",
    "x-build-id": "fbQmunyVvNFRefvUw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~christies-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-christies-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/normdata~christies-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-christies-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/normdata~christies-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-christies-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": {
          "maxItems": {
            "title": "Maximum lots",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many lots in total. Leave empty for no limit (every matching lot). The Apify Free plan is always capped at 10."
          },
          "status": {
            "title": "What to scrape",
            "enum": [
              "past",
              "upcoming"
            ],
            "type": "string",
            "description": "Past auctions are every Christie's sale since 1998 (13,000+ sales) with prices realised. Live and upcoming are the sales open for bidding now or published for the coming months, with estimates, current bids and bid counts on online sales."
          },
          "results": {
            "title": "Results (past auctions)",
            "enum": [
              "sold",
              "unsold",
              "all"
            ],
            "type": "string",
            "description": "Sold lots only, unsold lots only (bought in or withdrawn), or every lot of the sale."
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Artist, maker, brand, title, description or consignor words, e.g. \"warhol\", \"patek philippe nautilus\", \"birkin\", \"ming vase\", \"property from the collection of\". A lot must contain every word of a term (accents and case don't matter). Several terms: a lot matching ANY of them is kept.",
            "items": {
              "type": "string"
            }
          },
          "artists": {
            "title": "Artist / maker",
            "type": "array",
            "description": "Keep only lots by ANY of these artists or makers (part of the name is enough), e.g. \"Picasso\", \"Gerhard Richter\", \"Hermès\". Matched against the artist, or the lot title when the lot has no artist.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "...or paste christies.com links",
            "type": "array",
            "description": "Sale pages (christies.com/en/auction/...: every lot of the sale, onlineonly.christies.com/s/.../lots/... too) or lot pages (christies.com/en/lot/lot-..., onlineonly.christies.com/s/...). The filters are ignored with links.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "Category",
            "type": "array",
            "description": "Keep only sales in ANY of these Christie's categories (a sale can be in several).",
            "items": {
              "type": "string",
              "enum": [
                "Fine Art",
                "Furniture & Decorative Arts",
                "Asian Art",
                "Jewellery, Watches & Handbags",
                "Photographs & Prints",
                "Wines & Spirits",
                "Books & Manuscripts",
                "Design",
                "Private Collections",
                "Islamic & Middle Eastern Art",
                "Antiquities",
                "Collectibles",
                "African, Oceanic & Pre-Columbian Art",
                "Science & Natural History"
              ],
              "enumTitles": [
                "Fine Art (2,827 sales)",
                "Furniture & Decorative Arts (1,583 sales)",
                "Asian Art (1,382 sales)",
                "Jewellery, Watches & Handbags (1,155 sales)",
                "Photographs & Prints (727 sales)",
                "Wines & Spirits (706 sales)",
                "Books & Manuscripts (470 sales)",
                "Design (423 sales)",
                "Private Collections (404 sales)",
                "Islamic & Middle Eastern Art (219 sales)",
                "Antiquities (163 sales)",
                "Collectibles (128 sales)",
                "African, Oceanic & Pre-Columbian Art (110 sales)",
                "Science & Natural History (80 sales)"
              ]
            }
          },
          "locations": {
            "title": "Location",
            "type": "array",
            "description": "Keep only sales held in ANY of these places.",
            "items": {
              "type": "string",
              "enum": [
                "London",
                "New York",
                "Paris",
                "Hong Kong",
                "Amsterdam",
                "Geneva",
                "New York, Christie's East",
                "Milan",
                "Los Angeles",
                "Spink London",
                "United Arab Emirates",
                "Melbourne",
                "Online",
                "Glasgow",
                "Shanghai",
                "Singapore",
                "Spink America",
                "Monaco",
                "Sydney",
                "Spink Hong Kong",
                "Spink Singapore",
                "Tel Aviv",
                "Zürich",
                "Madrid",
                "Mumbai",
                "Germany",
                "Taipei",
                "Spink Australia",
                "California",
                "Mallorca",
                "Florida"
              ],
              "enumTitles": [
                "London (6,309 sales)",
                "New York (3,252 sales)",
                "Paris (1,019 sales)",
                "Hong Kong (941 sales)",
                "Amsterdam (530 sales)",
                "Geneva (272 sales)",
                "New York, Christie's East (230 sales)",
                "Milan (201 sales)",
                "Los Angeles (145 sales)",
                "Spink London (67 sales)",
                "United Arab Emirates (63 sales)",
                "Melbourne (44 sales)",
                "Online (33 sales)",
                "Glasgow (32 sales)",
                "Shanghai (29 sales)",
                "Singapore (18 sales)",
                "Spink America (17 sales)",
                "Monaco (14 sales)",
                "Sydney (14 sales)",
                "Spink Hong Kong (9 sales)",
                "Spink Singapore (7 sales)",
                "Tel Aviv (7 sales)",
                "Zürich (7 sales)",
                "Madrid (5 sales)",
                "Mumbai (5 sales)",
                "Germany (3 sales)",
                "Taipei (3 sales)",
                "Spink Australia (3 sales)",
                "California (3 sales)",
                "Mallorca (1 sales)",
                "Florida (1 sales)"
              ]
            }
          },
          "saleType": {
            "title": "Sale type",
            "enum": [
              "live",
              "online"
            ],
            "type": "string",
            "description": "Live (saleroom) auctions or online-only auctions."
          },
          "dateFrom": {
            "title": "Sale date from",
            "type": "string",
            "description": "Keep sales ending on or after this date. A date like \"2024-01-01\", or a period like \"6 months\" or \"2 years\". Setting it makes past searches much faster (fewer years to read)."
          },
          "dateTo": {
            "title": "Sale date to",
            "type": "string",
            "description": "Same format as \"Sale date from\", e.g. \"2024-12-31\"."
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Past auctions: price realised (hammer plus buyer's premium), in USD."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Same price as \"Min price\"."
          },
          "minEstimate": {
            "title": "Min estimate (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Low estimate in USD at least this."
          },
          "maxEstimate": {
            "title": "Max estimate (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Low estimate in USD at most this."
          },
          "minBids": {
            "title": "Min online bids",
            "minimum": 0,
            "type": "integer",
            "description": "Online sales only: keep lots with at least this many bids. Live saleroom sales do not publish bid counts, so their lots are dropped when this is set."
          },
          "titleExcludes": {
            "title": "Must not contain",
            "type": "array",
            "description": "Drop lots whose artist, title, description or consignor contains any of these words, e.g. \"after\", \"attributed\", \"circle of\", \"print\".",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recent",
              "oldest",
              "price_high",
              "price_low",
              "estimate_high",
              "most_bids"
            ],
            "type": "string",
            "description": "Order of the results. Matters most when you set a Maximum. Price, estimate and bid sorts read every matching sale first, so set a date range with them."
          },
          "includeDetails": {
            "title": "Full lot details",
            "type": "boolean",
            "description": "Add the lot page to every lot: the full catalogue entry (medium, signature, dimensions), provenance, literature, exhibition history, further details, saleroom notice, the lot essay, the specialist in charge (name, title, email, phone), every photo and the zoom viewer link. Charged as an add-on per lot."
          },
          "onlyNew": {
            "title": "New lots only",
            "type": "boolean",
            "description": "For scheduled runs: save only lots this same search has not saved before. The first run saves everything; later runs save just what is new. Kept per search (terms, links and filters)."
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Give \"New lots only\" a fixed name to keep its memory even after you change the filters."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}