{
  "openapi": "3.0.1",
  "info": {
    "title": "Yelp Reviews Scraper & Monitor: Owner Replies, All Languages",
    "description": "Scrape Yelp reviews from business URLs, names or searches: full text, stars, date, owner replies, photos, Elite reviewer stats and the star breakdown. Get the full history in every language, or schedule it to get only new reviews. $0.25 per 1,000 reviews.",
    "version": "0.0",
    "x-build-id": "uGoepciWRZqLZXPif"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/epicscrapers~yelp-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-epicscrapers-yelp-reviews-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/epicscrapers~yelp-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-epicscrapers-yelp-reviews-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/epicscrapers~yelp-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-epicscrapers-yelp-reviews-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",
        "required": [
          "businesses"
        ],
        "properties": {
          "businesses": {
            "title": "Businesses",
            "type": "array",
            "description": "One business per line. Paste a Yelp business URL from any Yelp country site (e.g. https://www.yelp.com/biz/gary-danko-san-francisco), a business alias or ID, or a business name (add a Location below). A Yelp search URL such as https://www.yelp.com/search?find_desc=pizza&find_loc=Brooklyn collects reviews of the top results.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location (for business names)",
            "type": "string",
            "description": "City or area used to find businesses entered by name, e.g. San Francisco, CA. Not needed for URLs and IDs."
          },
          "maxReviewsPerBusiness": {
            "title": "Max reviews per business",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many reviews per business. Set to 0 to collect every review.",
            "default": 100
          },
          "onlyNewReviews": {
            "title": "Only new reviews (for repeat runs)",
            "type": "boolean",
            "description": "Remember which reviews earlier runs saved and return only reviews posted or edited since then. Turn it on in a saved task or schedule: the first run collects reviews as usual, every later run returns only what's new, and you pay only for those. Reviews are walked newest first.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "oldest",
              "highest",
              "lowest",
              "elite",
              "recommended"
            ],
            "type": "string",
            "description": "Order in which reviews are collected. With a review limit, this decides which reviews you get (e.g. the 100 newest or the 100 lowest-rated).",
            "default": "newest"
          },
          "ratings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only reviews with these star ratings. Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "newerThan": {
            "title": "Only reviews newer than",
            "pattern": "^(\\s*|\\d{4}-\\d{2}-\\d{2}.*|\\s*\\d+\\s*(day|week|month|year)s?(\\s+ago)?\\s*)$",
            "type": "string",
            "description": "A date (2026-01-31) or an age (7 days, 3 months, 1 year). Leave empty for all dates."
          },
          "languages": {
            "title": "Review languages",
            "type": "array",
            "description": "Two-letter language codes, e.g. en, es, fr, de, ja. Leave empty to collect reviews in every language the business has.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Only reviews mentioning",
            "type": "array",
            "description": "Keep only reviews whose text contains at least one of these words or phrases (not case-sensitive), e.g. parking, rude, wait time. Leave empty for all reviews.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxBusinessesPerSearch": {
            "title": "Max businesses per search URL",
            "minimum": 1,
            "maximum": 240,
            "type": "integer",
            "description": "For Yelp search URLs: how many of the top search results to collect reviews from.",
            "default": 10
          },
          "includeReviewerDetails": {
            "title": "Include reviewer details",
            "type": "boolean",
            "description": "Reviewer name, ID, profile link, location, photo, review and friend counts and Elite status. Turn off to leave these fields empty, e.g. if you have no lawful basis to process personal data.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}