{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper - $0.40/1K + Fake Review Signals",
    "description": "Scrape Trustpilot reviews for $0.40/1K-no login. Get ratings, review text, replies, sentiment, company profiles and search discovery. Flag suspicious patterns using verification, one-review accounts, duplicate wording and volume spikes. Track reply rate, response time and reputation changes.",
    "version": "0.1",
    "x-build-id": "VmKfTKPrx9BurdlXU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trakk~trustpilot-review-intelligence-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trakk-trustpilot-review-intelligence-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/trakk~trustpilot-review-intelligence-scraper/runs": {
      "post": {
        "operationId": "runs-sync-trakk-trustpilot-review-intelligence-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/trakk~trustpilot-review-intelligence-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-trakk-trustpilot-review-intelligence-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": {
          "mode": {
            "title": "Run mode",
            "enum": [
              "AUTO",
              "REVIEWS",
              "SEARCH"
            ],
            "type": "string",
            "description": "AUTO chooses the right flow. REVIEWS scrapes review pages for known companies. SEARCH discovers companies from Trustpilot search and can also scrape their reviews.",
            "default": "AUTO"
          },
          "companyDomains": {
            "title": "Company domain(s)",
            "type": "array",
            "description": "Business domains to scrape on Trustpilot, for example trustpilot.com, amazon.com, apple.com, or shopify.com.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "startUrls": {
            "title": "Trustpilot URL(s)",
            "type": "array",
            "description": "Trustpilot review URLs or search URLs. Use this when you already have exact Trustpilot links.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "businessUnitIds": {
            "title": "Business Unit IDs",
            "type": "array",
            "description": "Optional Trustpilot business unit IDs. Use plain IDs or id:domain pairs.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "searchQueries": {
            "title": "Search query(s)",
            "type": "array",
            "description": "Company names or keywords to search on Trustpilot.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "maxResults": {
            "title": "Maximum output items",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Safety cap for total items in the default dataset. Increase this when scraping many companies or many reviews per company.",
            "default": 100
          },
          "maxReviewsPerCompany": {
            "title": "Reviews per company",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of reviews to collect for each company.",
            "default": 25
          },
          "maxPagesPerCompany": {
            "title": "Max pages per company",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Pagination safety limit for each company. Increase it when you need more reviews than one page can contain.",
            "default": 3
          },
          "sort": {
            "title": "Sort reviews",
            "enum": [
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "Trustpilot review sort order.",
            "default": "recency"
          },
          "stars": {
            "title": "Rating filter",
            "type": "array",
            "description": "Trustpilot star ratings to keep. Leave empty for all ratings. Example: 1 and 2 for negative reviews.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "verified": {
            "title": "Verified reviews",
            "enum": [
              "",
              "true",
              "false"
            ],
            "type": "string",
            "description": "Filter reviews by Trustpilot verification state when supported.",
            "default": ""
          },
          "scrapeReviews": {
            "title": "Scrape reviews",
            "type": "boolean",
            "description": "Collect individual review rows. Turn this off for a fast company-only search or company profile output.",
            "default": true
          },
          "includeCompanyProfile": {
            "title": "Add company profile",
            "type": "boolean",
            "description": "Attach company profile, category hierarchy, rating and language distributions, Trustpilot AI summary, subscription flags, and reply behavior to every review where available.",
            "default": true
          },
          "includeTransparency": {
            "title": "Add Trustpilot transparency metrics",
            "type": "boolean",
            "description": "Fetch public transparency metrics when available: review collection methods, reports, removals, reactivations, reply statistics, and the 12-month star distribution. This adds one public-page request per company.",
            "default": false
          },
          "rawOutput": {
            "title": "Include raw/debug fields",
            "type": "boolean",
            "description": "Keep empty optional fields and selected parser fields. Usually leave this off for cleaner tables.",
            "default": false
          },
          "analyzeAuthenticity": {
            "title": "🔬 Analyze review authenticity ($)",
            "type": "boolean",
            "description": "Add an authenticity block to every company: how many reviews come from one-review accounts, how many are unverified, whether ratings skip the middle, whether reviews were published long after the experience, reviewer-country mismatch, near-duplicate wording, and volume spikes. Also adds reply rate and median response time. Computed from the reviews already collected, so it needs no extra requests. These are statistical patterns, not proof of manipulation. Needs at least 50 reviews per company for a score.",
            "default": false
          },
          "htmlReport": {
            "title": "🖼️ Visual intelligence report",
            "type": "boolean",
            "description": "Build a shareable HTML report (TrustScore, sentiment, rating distribution, top topics, top complaints vs praises, plus a brand comparison for multiple companies) and save it to the key-value store as 'report'.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Maximum parallel HTTP fetches. Keep the default for broad runs; increase after a successful small test.",
            "default": 4
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retry budget for temporary HTTP errors and parse misses.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy settings. Leave disabled for small tests; enable your preferred proxy setup only when your targets require it.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}