{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Ultimate Scraper Pro",
    "description": "Extract 30+ review data fields including consumer alerts, warning flags, verification status & user profiles. Perfect for brand monitoring, fraud detection & competitor analysis. Filter by stars/date/topics. Export to JSON/CSV/Excel. PROMO: $0.25/1K reviews!",
    "version": "0.1",
    "x-build-id": "w0hm3cTHCL2kIiP2j"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/netdesignr~trustpilot-reviews-scraper-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-netdesignr-trustpilot-reviews-scraper-pro",
        "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/netdesignr~trustpilot-reviews-scraper-pro/runs": {
      "post": {
        "operationId": "runs-sync-netdesignr-trustpilot-reviews-scraper-pro",
        "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/netdesignr~trustpilot-reviews-scraper-pro/run-sync": {
      "post": {
        "operationId": "run-sync-netdesignr-trustpilot-reviews-scraper-pro",
        "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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Company URLs or Domains",
            "type": "array",
            "description": "Add one or more Trustpilot targets. Accepts any format:\n- Trustpilot URL: https://www.trustpilot.com/review/amazon.co.uk\n- Domain name: amazon.co.uk\n- User profile: https://www.trustpilot.com/users/12345abc\n\nThe scraper auto-detects the input type.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxReviews": {
            "title": "Max Reviews Per Target",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of reviews to extract per company or user profile. Set to 0 to scrape ALL available reviews.",
            "default": 10
          },
          "stars": {
            "title": "Star Rating Filter",
            "uniqueItems": true,
            "type": "array",
            "description": "Only extract reviews with the selected star ratings. Leave empty to include all ratings (1-5).",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 Star",
                "2 Stars",
                "3 Stars",
                "4 Stars",
                "5 Stars"
              ]
            }
          },
          "dateFilter": {
            "title": "Date Range",
            "enum": [
              "",
              "last30days",
              "last3months",
              "last6months",
              "last12months"
            ],
            "type": "string",
            "description": "Filter reviews by a preset time period. For a custom start date, use the 'Custom Start Date' field instead.",
            "default": ""
          },
          "customDateFrom": {
            "title": "Custom Start Date",
            "type": "string",
            "description": "Only scrape reviews published after this date. Overrides the Date Range filter."
          },
          "languages": {
            "title": "Language Filter",
            "type": "array",
            "description": "Only extract reviews written in these languages. Use ISO language codes. Leave empty for all languages.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topic Filters",
            "uniqueItems": true,
            "type": "array",
            "description": "Filter reviews by Trustpilot topic categories. Select one or more topics to narrow results.",
            "items": {
              "type": "string",
              "enum": [
                "service",
                "customer_service",
                "price",
                "product",
                "value_for_money",
                "user_experience",
                "website",
                "technology",
                "subscription",
                "cancellation",
                "contact",
                "location",
                "recommendation",
                "social_media",
                "solution",
                "ethics",
                "competition"
              ],
              "enumTitles": [
                "Service",
                "Customer Service",
                "Price",
                "Product",
                "Value for Money",
                "User Experience",
                "Website",
                "Technology",
                "Subscription",
                "Cancellation",
                "Contact",
                "Location",
                "Recommendation",
                "Social Media",
                "Solution",
                "Ethics",
                "Competition"
              ]
            }
          },
          "searchKeyword": {
            "title": "Search Keywords",
            "type": "string",
            "description": "Only extract reviews containing this keyword or phrase in the review text."
          },
          "sort": {
            "title": "Sort Order",
            "enum": [
              "",
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "Control the order in which reviews are extracted. 'Most recent' gets the newest reviews first.",
            "default": ""
          },
          "verifiedOnly": {
            "title": "Verified Reviews Only",
            "type": "boolean",
            "description": "When enabled, only extracts reviews that have been verified by Trustpilot (e.g., reviews from invited customers with proof of purchase).",
            "default": false
          },
          "withRepliesOnly": {
            "title": "Only Reviews With Company Reply",
            "type": "boolean",
            "description": "When enabled, only extracts reviews where the company has posted a response. Useful for analyzing company engagement.",
            "default": false
          },
          "includeCompanyDetails": {
            "title": "Include Company Details",
            "type": "boolean",
            "description": "Add company profile data to every review: company name, trust score, star rating, total reviews, business categories, website URL, email, phone, address, and consumer alerts (breach of guidelines, fake reviews warnings).",
            "default": false
          },
          "includeStatistics": {
            "title": "Include Review Statistics",
            "type": "boolean",
            "description": "Add a star rating breakdown to every review: total count and number of 1-star through 5-star reviews.",
            "default": false
          },
          "emptyRunPolicy": {
            "title": "Empty Run Policy",
            "enum": [
              "retry_then_succeed",
              "retry_then_warn",
              "retry_then_fail"
            ],
            "type": "string",
            "description": "Behavior when all targets finish but no reviews are scraped.",
            "default": "retry_then_succeed"
          },
          "googleSheets": {
            "title": "Google Sheets Export",
            "type": "object",
            "description": "Optional direct Google Sheets export. Provide a target spreadsheet ID, optional sheet name, and Google service-account credentials JSON. Share the sheet with the service-account email before running."
          },
          "browserFallbackMode": {
            "title": "Browser Fallback Mode",
            "enum": [
              "off",
              "http"
            ],
            "type": "string",
            "description": "Controls the emergency browser fallback used when direct Trustpilot requests are blocked. Keep this off for the lowest platform cost. HTTP browser mode can improve recovery but uses more compute. Automatic residential proxy fallback is disabled.",
            "default": "off"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Optional proxy settings supplied by the user as JSON. Not required for standard use. Automatic residential proxy fallback is disabled."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}