{
  "openapi": "3.0.1",
  "info": {
    "title": "Phillips Auction Scraper",
    "description": "Phillips auction results and upcoming lots for art, design, watch and jewelry buyers: 100k+ lots since 2013 with price realized, estimates in USD, artist, sale, bids and status. Filter by artist, department, city, date and price. Provenance, condition report and photos as an add-on.",
    "version": "1.0",
    "x-build-id": "V8RNDT0p5ivRsoita"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~phillips-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-phillips-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~phillips-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-phillips-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~phillips-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-phillips-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 Phillips sale since 2013 (906 sales, over 100,000 lots) with prices realized. Live and upcoming are the sales open for bidding now or published for the coming weeks, with estimates, starting bids and current bids."
          },
          "results": {
            "title": "Results (past auctions)",
            "enum": [
              "sold",
              "unsold",
              "all"
            ],
            "type": "string",
            "description": "Sold lots only, unsold lots only (bought in or returned to owner), or every lot of the sale."
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Artist, maker, brand, model or title words, e.g. \"warhol\", \"patek philippe 5711\", \"rolex daytona\", \"basquiat untitled\". 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"
            }
          },
          "makers": {
            "title": "Artist / maker",
            "type": "array",
            "description": "Keep only lots by ANY of these artists, designers or brands (part of the name is enough), e.g. \"Picasso\", \"Jean Prouvé\", \"Rolex\".",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "...or paste phillips.com links",
            "type": "array",
            "description": "Sale pages (phillips.com/auction/NY010125: every lot of the sale) or lot pages (phillips.com/detail/...). The filters are ignored with links.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "departments": {
            "title": "Department",
            "type": "array",
            "description": "Keep only sales of ANY of these Phillips departments.",
            "items": {
              "type": "string",
              "enum": [
                "Contemporary",
                "Design",
                "Editions",
                "Watches",
                "Jewelry",
                "Photographs"
              ],
              "enumTitles": [
                "Modern & Contemporary Art (382 sales)",
                "Design (181 sales)",
                "Editions (121 sales)",
                "Watches (108 sales)",
                "Jewels (89 sales)",
                "Photographs (87 sales)"
              ]
            }
          },
          "locations": {
            "title": "Location",
            "type": "array",
            "description": "Keep only sales held in ANY of these cities.",
            "items": {
              "type": "string",
              "enum": [
                "New York",
                "London",
                "Hong Kong",
                "Geneva",
                "Paris",
                "Singapore"
              ],
              "enumTitles": [
                "New York (384 sales)",
                "London (266 sales)",
                "Hong Kong (150 sales)",
                "Geneva (53 sales)",
                "Paris (1 sales)",
                "Singapore (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 starting on or after this date. A date like \"2024-01-01\", or a period like \"6 months\" or \"2 years\"."
          },
          "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 realized with 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": "Keep only lots with at least this many bids placed online at phillips.com (room and phone bids are not counted by Phillips)."
          },
          "noReserveOnly": {
            "title": "No reserve only",
            "type": "boolean",
            "description": "Upcoming lots: keep only lots offered without reserve."
          },
          "titleExcludes": {
            "title": "Must not contain",
            "type": "array",
            "description": "Drop lots whose maker, title or model contains any of these words, e.g. \"after\", \"attributed\", \"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."
          },
          "includeDetails": {
            "title": "Full lot details",
            "type": "boolean",
            "description": "Add the lot page to every lot: medium, dimensions, date (circa), signature and inscriptions, provenance, exhibition history, literature, the catalogue essay, condition report, artist nationality and life dates, watch case and movement numbers, material, calibre, bracelet, clasp and accessories, and every photo. 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}