{
  "openapi": "3.0.1",
  "info": {
    "title": "Resy Scraper",
    "description": "[💰 $4.0 / 1K] Extract restaurants from Resy by city, keyword, cuisine, or URL — full venue details plus optional real-time reservation availability.",
    "version": "1.0",
    "x-build-id": "wpNVgimAreGf3gu3v"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~resy-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-resy-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/solidcode~resy-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-resy-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/solidcode~resy-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-resy-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": {
          "city": {
            "title": "City",
            "type": "string",
            "description": "City to search on Resy. Enter a city name, Resy city code, or URL slug (e.g. 'New York', 'london', 'los-angeles-ca'). Leave the search fields empty if you are using Start URLs.",
            "default": "new-york-ny"
          },
          "query": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Free-text search by restaurant name, cuisine, or keyword (e.g. 'sushi', 'Carbone', 'rooftop'). Optional — leave empty to return all restaurants in the city."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Paste Resy restaurant or city page URLs to scrape directly. Optional — use this instead of, or alongside, the city/keyword search above.",
            "items": {
              "type": "string"
            }
          },
          "cuisine": {
            "title": "Cuisine",
            "uniqueItems": true,
            "type": "array",
            "description": "Narrow results to one or more common cuisines. Each selection runs a focused search for that cuisine in the city above. Leave empty to include all cuisines.",
            "items": {
              "type": "string",
              "enum": [
                "american",
                "chinese",
                "cocktail bar",
                "french",
                "indian",
                "italian",
                "japanese",
                "korean",
                "mediterranean",
                "mexican",
                "new american",
                "seafood",
                "steakhouse",
                "sushi",
                "thai",
                "American",
                "Chinese",
                "Cocktail Bar",
                "French",
                "Indian",
                "Italian",
                "Japanese",
                "Korean",
                "Mediterranean",
                "Mexican",
                "New American",
                "Seafood",
                "Steakhouse",
                "Sushi",
                "Thai"
              ],
              "enumTitles": [
                "American",
                "Chinese",
                "Cocktail Bar",
                "French",
                "Indian",
                "Italian",
                "Japanese",
                "Korean",
                "Mediterranean",
                "Mexican",
                "New American",
                "Seafood",
                "Steakhouse",
                "Sushi",
                "Thai",
                "American",
                "Chinese",
                "Cocktail Bar",
                "French",
                "Indian",
                "Italian",
                "Japanese",
                "Korean",
                "Mediterranean",
                "Mexican",
                "New American",
                "Seafood",
                "Steakhouse",
                "Sushi",
                "Thai"
              ]
            },
            "default": []
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of restaurants to return. Set to 0 for unlimited.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include Full Restaurant Details",
            "type": "boolean",
            "description": "Fetch each restaurant's full profile — ratings, street address, website, phone, social links, description, and photos. Turn off for faster, lighter results with just the core fields (name, neighborhood, cuisine, coordinates, price band).",
            "default": true
          },
          "includeAvailability": {
            "title": "Include Reservation Availability",
            "type": "boolean",
            "description": "Also fetch real-time reservation time-slots for each restaurant. Each restaurant stays a single result — the time-slots are attached as a list inside it.",
            "default": false
          },
          "reservationDate": {
            "title": "Reservation Date",
            "type": "string",
            "description": "Date to check availability, in YYYY-MM-DD format. Leave empty to use today. Only used when reservation availability is enabled."
          },
          "partySize": {
            "title": "Party Size",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Number of guests for the reservation. Only used when reservation availability is enabled.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}