{
  "openapi": "3.0.1",
  "info": {
    "title": "Wine-Searcher Scraper from List: popularity, scores & prices",
    "description": "Extract popularity, critic scores, prices (always per 75cl bottle) and winery info from Wine-Searcher.com. Input wine names, URLs or LWIN codes; get structured JSON. Success-only billing: $0.025 per wine actually extracted, errors and not-found are free.",
    "version": "0.1",
    "x-build-id": "ZiMksSWkufDV4cVot"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrbridge~wine-searcher-scraper-from-list/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrbridge-wine-searcher-scraper-from-list",
        "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/mrbridge~wine-searcher-scraper-from-list/runs": {
      "post": {
        "operationId": "runs-sync-mrbridge-wine-searcher-scraper-from-list",
        "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/mrbridge~wine-searcher-scraper-from-list/run-sync": {
      "post": {
        "operationId": "run-sync-mrbridge-wine-searcher-scraper-from-list",
        "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",
        "required": [
          "inputType"
        ],
        "properties": {
          "inputType": {
            "title": "Input Type",
            "enum": [
              "wineNames",
              "urls",
              "lwins"
            ],
            "type": "string",
            "description": "Select how you want to identify the wines to scrape. 'Wine Names' searches Wine-Searcher by name (best for quick lookups). 'Wine-Searcher URLs' uses direct links (most reliable, no ambiguity). 'LWIN Codes' uses industry-standard identifiers from Liv-ex (ideal for large databases and integrations).",
            "default": "wineNames"
          },
          "wineNames": {
            "title": "Wine Names",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "List of wine names to search on Wine-Searcher. Include the full producer name and vintage year for the most accurate match, e.g. 'Domaine Leflaive Puligny-Montrachet Les Pucelles 2020'. Generic names like 'Burgundy 2020' may return ambiguous results. One wine per line. Maximum 1000 wines per run. For larger catalogs, split your list across multiple runs.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Wine-Searcher URLs",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "Direct links to wine pages on Wine-Searcher.com. This is the most reliable input mode because it eliminates search ambiguity. Any URL matching wine-searcher.com/find/... works. One URL per line. Maximum 1000 wines per run. For larger catalogs, split your list across multiple runs.",
            "items": {
              "type": "string"
            }
          },
          "lwins": {
            "title": "LWIN Codes",
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "description": "LWIN (Liquid Wine Identifier Number) codes, the wine industry's universal identifiers managed by Liv-ex. Enter LWIN11 codes (10-11 digits including vintage, e.g. '11316442021') for a specific vintage, or LWIN7 codes (7 digits, e.g. '1131644') for a wine across all vintages. Longer codes (LWIN16, LWIN18) are automatically truncated to the first 11 digits. Find LWIN codes on Liv-ex, Wine-Searcher, or in your wine management software. One code per line. Maximum 1000 wines per run. For larger catalogs, split your list across multiple runs.",
            "items": {
              "type": "string"
            }
          },
          "proxyCountry": {
            "title": "Proxy Country",
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code (e.g. 'FR', 'US', 'GB') controlling which merchant offers and prices are displayed. Set this to your target market. For example, 'US' shows USD prices from American merchants. Default is 'FR' (France, EUR prices).",
            "default": "FR"
          },
          "timeoutSecs": {
            "title": "Run Timeout (seconds)",
            "minimum": 120,
            "maximum": 86400,
            "type": "integer",
            "description": "Maximum run duration. Default (14400s = 4h) is safe for all batches up to 1000 wines. Formula: max(120, ⌈batchSize ÷ concurrency⌉ × 30) seconds. Setting below 120s will almost always result in TIMED-OUT. This field is for guidance; the actual timeout is set via the Apify platform run options.",
            "default": 14400
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}