{
  "openapi": "3.0.1",
  "info": {
    "title": "TripAdvisor Reviews Scraper API",
    "description": "Extract up to 1,000 TripAdvisor reviews per place for hotels, restaurants, attractions, tours, and rentals. Get one review per row with original and translated text, language and rating filters, newest-first sorting, plus optional photos, owner responses, and AI summaries.",
    "version": "0.0",
    "x-build-id": "5pKoucUtT9CFQ5qGm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lurkapi~tripadvisor-reviews-scraper-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lurkapi-tripadvisor-reviews-scraper-api",
        "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/lurkapi~tripadvisor-reviews-scraper-api/runs": {
      "post": {
        "operationId": "runs-sync-lurkapi-tripadvisor-reviews-scraper-api",
        "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/lurkapi~tripadvisor-reviews-scraper-api/run-sync": {
      "post": {
        "operationId": "run-sync-lurkapi-tripadvisor-reviews-scraper-api",
        "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 URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "TripAdvisor detail or review URLs for hotels, restaurants, attractions, tours, and vacation rentals. A place page returns that place's reviews; a review page returns that specific review. Bare numeric place IDs also work in the Location IDs field below.",
            "items": {
              "type": "string"
            }
          },
          "locationIds": {
            "title": "Location IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Bare TripAdvisor place IDs (the numeric `d...` token in a place URL), one per line. Each ID returns that place's reviews.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerPlace": {
            "title": "Max reviews per place",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap how many reviews are returned for each place or input (maximum 1,000 per place).",
            "default": 20
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "default",
              "newest"
            ],
            "type": "string",
            "description": "TripAdvisor's review list only offers its default order or newest-first. A date or review-ID cutoff below forces newest-first so the cutoff can stop early.",
            "default": "default"
          },
          "language": {
            "title": "Languages",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return reviews originally written in these languages. Leave empty for all languages.",
            "items": {
              "type": "string",
              "enum": [
                "ar",
                "bg",
                "ca",
                "zh-CN",
                "zh-TW",
                "hr",
                "cs",
                "da",
                "nl",
                "en",
                "et",
                "fi",
                "fr",
                "de",
                "el",
                "he",
                "hi",
                "hu",
                "id",
                "it",
                "ja",
                "ko",
                "lv",
                "lt",
                "ms",
                "no",
                "pl",
                "pt",
                "ro",
                "ru",
                "sr",
                "sk",
                "sl",
                "es",
                "sv",
                "th",
                "tr",
                "uk",
                "vi"
              ],
              "enumTitles": [
                "Arabic",
                "Bulgarian",
                "Catalan",
                "Chinese (Simplified)",
                "Chinese (Traditional)",
                "Croatian",
                "Czech",
                "Danish",
                "Dutch",
                "English",
                "Estonian",
                "Finnish",
                "French",
                "German",
                "Greek",
                "Hebrew",
                "Hindi",
                "Hungarian",
                "Indonesian",
                "Italian",
                "Japanese",
                "Korean",
                "Latvian",
                "Lithuanian",
                "Malay",
                "Norwegian",
                "Polish",
                "Portuguese",
                "Romanian",
                "Russian",
                "Serbian",
                "Slovak",
                "Slovenian",
                "Spanish",
                "Swedish",
                "Thai",
                "Turkish",
                "Ukrainian",
                "Vietnamese"
              ]
            },
            "default": []
          },
          "ratings": {
            "title": "Ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Only return reviews with these star ratings (1 to 5). Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ]
            },
            "default": []
          },
          "fromDate": {
            "title": "Reviews from date",
            "type": "string",
            "description": "Only return reviews published on or after this date (ISO YYYY-MM-DD). Filtered after fetch, newest-first.",
            "default": ""
          },
          "toDate": {
            "title": "Reviews to date",
            "type": "string",
            "description": "Only return reviews published on or before this date (ISO YYYY-MM-DD). Filtered after fetch, newest-first.",
            "default": ""
          },
          "fromReviewId": {
            "title": "Last collected review ID ($)",
            "type": "string",
            "description": "Use the review ID from your previous results, or the `r...` token in a TripAdvisor review URL. Adds $0.10 per 1,000 delivered reviews.",
            "default": ""
          },
          "includePhotos": {
            "title": "Review photos ($)",
            "type": "boolean",
            "description": "Return the photo URLs attached to each review. Paid add-on, charged only for reviews that have photos.",
            "default": false
          },
          "includeOwnerResponses": {
            "title": "Owner responses ($)",
            "type": "boolean",
            "description": "Return the management reply text attached to each review. Paid add-on, charged only for reviews that have a reply.",
            "default": false
          },
          "includeAiReviewSummary": {
            "title": "AI review summary (per place) ($)",
            "type": "boolean",
            "description": "Return TripAdvisor's own AI summary of the place's recent reviews, where TripAdvisor publishes one. Paid add-on, charged once per place.",
            "default": false
          },
          "outputReviewId": {
            "title": "Review ID",
            "type": "boolean",
            "description": "Include the review ID column.",
            "default": true
          },
          "outputReviewUrl": {
            "title": "Review URL",
            "type": "boolean",
            "description": "Include the review URL column.",
            "default": true
          },
          "outputRating": {
            "title": "Rating",
            "type": "boolean",
            "description": "Include the star rating column.",
            "default": true
          },
          "outputCreatedDate": {
            "title": "Created date",
            "type": "boolean",
            "description": "Include the review creation date column.",
            "default": true
          },
          "outputPublishedDate": {
            "title": "Published date",
            "type": "boolean",
            "description": "Include the review published date column.",
            "default": true
          },
          "outputTravelDate": {
            "title": "Travel date",
            "type": "boolean",
            "description": "Include the travel date column.",
            "default": true
          },
          "outputTripType": {
            "title": "Trip type",
            "type": "boolean",
            "description": "Include the trip type column.",
            "default": true
          },
          "outputHelpfulVotes": {
            "title": "Helpful votes",
            "type": "boolean",
            "description": "Include the helpful votes column.",
            "default": true
          },
          "outputOriginalTitle": {
            "title": "Original title",
            "type": "boolean",
            "description": "Include the review title in its original language.",
            "default": true
          },
          "outputTranslatedTitle": {
            "title": "Translated title",
            "type": "boolean",
            "description": "Include the machine-translated title, where TripAdvisor published one.",
            "default": true
          },
          "outputOriginalText": {
            "title": "Original text",
            "type": "boolean",
            "description": "Include the review text in its original language.",
            "default": true
          },
          "outputTranslatedText": {
            "title": "Translated text",
            "type": "boolean",
            "description": "Include the machine-translated review text, where TripAdvisor published one.",
            "default": true
          },
          "outputOriginalLanguage": {
            "title": "Original language",
            "type": "boolean",
            "description": "Include the review's original language code.",
            "default": true
          },
          "outputTranslatedLanguage": {
            "title": "Translated language",
            "type": "boolean",
            "description": "Include the language the text was translated into.",
            "default": true
          },
          "outputIsMachineTranslated": {
            "title": "Machine translated flag",
            "type": "boolean",
            "description": "Include whether the review was machine-translated.",
            "default": true
          },
          "outputTranslationType": {
            "title": "Translation type",
            "type": "boolean",
            "description": "Include the translation type (machine or human), where TripAdvisor published one.",
            "default": true
          },
          "outputAuthorId": {
            "title": "Author ID",
            "type": "boolean",
            "description": "Include the author's TripAdvisor user ID.",
            "default": true
          },
          "outputAuthorName": {
            "title": "Author name",
            "type": "boolean",
            "description": "Include the author's display name.",
            "default": true
          },
          "outputAuthorUsername": {
            "title": "Author username",
            "type": "boolean",
            "description": "Include the author's username.",
            "default": true
          },
          "outputAuthorLocation": {
            "title": "Author location",
            "type": "boolean",
            "description": "Include the author's stated location.",
            "default": true
          },
          "outputAuthorContributions": {
            "title": "Author contributions",
            "type": "boolean",
            "description": "Include the author's total TripAdvisor contributions.",
            "default": true
          },
          "outputAuthorProfileUrl": {
            "title": "Author profile URL",
            "type": "boolean",
            "description": "Include the author's TripAdvisor profile URL.",
            "default": true
          },
          "outputAuthorAvatarUrl": {
            "title": "Author avatar URL",
            "type": "boolean",
            "description": "Include the author's avatar URL.",
            "default": true
          },
          "outputSubratings": {
            "title": "Sub-ratings",
            "type": "boolean",
            "description": "Include the per-aspect sub-ratings (value, rooms, cleanliness, etc.).",
            "default": true
          },
          "outputPlaceWebUrl": {
            "title": "Place URL",
            "type": "boolean",
            "description": "Include the place's TripAdvisor page URL on every review row.",
            "default": true
          },
          "outputPlaceRating": {
            "title": "Place rating",
            "type": "boolean",
            "description": "Include the place's overall TripAdvisor rating on every review row.",
            "default": true
          },
          "outputPlaceReviewCount": {
            "title": "Place review count",
            "type": "boolean",
            "description": "Include the place's total review count on every review row.",
            "default": true
          },
          "outputScrapedAt": {
            "title": "Scraped at",
            "type": "boolean",
            "description": "Include the ISO timestamp when each review was scraped.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}