{
  "openapi": "3.0.1",
  "info": {
    "title": "Tripadvisor Reviews Scraper with Place Data",
    "description": "Collect Tripadvisor reviews from public place URLs or a completed Tripadvisor Places Dataset. Save a Dataset row per unique review with ratings, text, dates, owner responses, review photos, and place context. Filter by rating or date, prioritize a language, and optionally include reviewer details.",
    "version": "0.2",
    "x-build-id": "tbVyT2PhNFLVx2yyH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datascraperes~tripadvisor-reviews-data-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datascraperes-tripadvisor-reviews-data-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/datascraperes~tripadvisor-reviews-data-scraper/runs": {
      "post": {
        "operationId": "runs-sync-datascraperes-tripadvisor-reviews-data-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/datascraperes~tripadvisor-reviews-data-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-datascraperes-tripadvisor-reviews-data-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": {
          "startUrls": {
            "title": "Tripadvisor place URLs",
            "maxItems": 20,
            "uniqueItems": true,
            "type": "array",
            "description": "Public Tripadvisor place or review URLs. The location ID is read from the d<location_id> segment; the web page itself is not loaded.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "Tripadvisor URL",
                  "description": "A public Tripadvisor place URL or a public review URL for that place.",
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "sourceDatasetId": {
            "title": "Tripadvisor places Dataset ID (optional)",
            "maxLength": 128,
            "type": "string",
            "description": "ID of a completed Tripadvisor places Dataset with at most 50,000 items. Finish source collection first. The Dataset must remain unchanged while read, and every item must identify a place through a numeric id/locationId or public webUrl/sourceUrl."
          },
          "maxItemsPerQuery": {
            "title": "Maximum reviews per place",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum unique matching reviews returned for each place. Collection follows the available pages until this limit, source exhaustion, or the complete-run safety cap.",
            "default": 50
          },
          "maxTotalItemsPerRun": {
            "title": "Maximum reviews for the complete run",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Safety cap across all submitted places. It prevents a multi-place run from collecting without a bound.",
            "default": 10000
          },
          "scrapeReviewerInfo": {
            "title": "Include reviewer information",
            "type": "boolean",
            "description": "Include the public reviewer object returned by Tripadvisor, such as username, location, contribution counts, and profile URL. Disabled by default to minimize personal data in the Dataset.",
            "default": false
          },
          "lastReviewDate": {
            "title": "Only reviews since this date (optional)",
            "pattern": "^(?:|(?:(?!0000)[0-9]{4}-(?:(?:01|03|05|07|08|10|12)-(?:0[1-9]|[12][0-9]|3[01])|(?:04|06|09|11)-(?:0[1-9]|[12][0-9]|30)|02-(?:0[1-9]|1[0-9]|2[0-8]))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29))(?![\\s\\S])",
            "type": "string",
            "description": "Select a calendar date or enter a real date in YYYY-MM-DD format, for example 2026-10-21. Leave empty for no date filter. This inclusive cutoff is sent to Tripadvisor and also checked per row when an absolute date is exposed. Reviews reported only as relative text (for example '3 weeks ago') are dated approximately. An unreadable absolute review date makes the place incomplete.",
            "default": ""
          },
          "disableMachineTranslations": {
            "title": "Translation preference (compatibility)",
            "type": "boolean",
            "description": "Accepted for input compatibility. The current mobile review route has no equivalent toggle, so this does not guarantee original-language text. Check the returned translation flags and originalLanguage in the output.",
            "default": false
          },
          "reviewRatings": {
            "title": "Review ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter reviews upstream by one or more star ratings. ALL_REVIEW_RATINGS returns every rating.",
            "items": {
              "type": "string",
              "enum": [
                "ALL_REVIEW_RATINGS",
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "All ratings",
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": [
              "ALL_REVIEW_RATINGS"
            ]
          },
          "reviewsLanguages": {
            "title": "Review language (optional)",
            "maxItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Select at most one language code, for example es or fr. Tripadvisor prioritizes the selected language and may fill the page with fallback reviews in another language.",
            "items": {
              "type": "string",
              "enum": [
                "ALL_REVIEW_LANGUAGES",
                "en",
                "es",
                "fr",
                "de",
                "it",
                "pt",
                "ja",
                "ko",
                "zh",
                "ar"
              ],
              "enumTitles": [
                "All languages",
                "English",
                "Spanish",
                "French",
                "German",
                "Italian",
                "Portuguese",
                "Japanese",
                "Korean",
                "Chinese",
                "Arabic"
              ]
            },
            "default": [
              "ALL_REVIEW_LANGUAGES"
            ]
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}