{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper & API: Export All Reviews to CSV",
    "description": "Trustpilot reviews of any company by link, website or name: rating, title, text, date, language, reviewer and country, verified and invited flags, company reply and reply time. Deep mode goes past the site's 200-review cap. Exact date windows, star and language filters, only new reviews.",
    "version": "0.1",
    "x-build-id": "xJF75uYGWolqc8jpJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~trustpilot-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-trustpilot-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/s_actors~trustpilot-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-trustpilot-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/s_actors~trustpilot-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-trustpilot-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",
        "properties": {
          "companies": {
            "title": "🏢 Companies",
            "type": "array",
            "description": "One per line: Trustpilot review links (trustpilot.com/review/www.amazon.com, any country site), websites or domains (amazon.com) or company names (the best Trustpilot search match is taken). Any number of companies.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerCompany": {
            "title": "🔢 Max reviews per company",
            "minimum": 0,
            "type": "integer",
            "description": "Limit for each company. 0 = every review that matches the filters (big companies have tens of thousands; see Deep mode).",
            "default": 100
          },
          "deepScrape": {
            "title": "🔓 Deep mode: past the 200-review cap",
            "type": "boolean",
            "description": "Trustpilot shows at most 200 reviews (10 pages) for one set of filters. When more match, the scraper splits them by stars, then languages, then topics and search words, each with its own 200, and stops when splitting brings almost nothing new. Off = at most 200 per company (per star / language you choose).",
            "default": true
          },
          "stars": {
            "title": "⭐ Stars",
            "type": "array",
            "description": "Only reviews with these ratings. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "languages": {
            "title": "🌐 Languages",
            "type": "array",
            "description": "Two-letter language codes (en, de, fr, es, it, nl, da, sv, pl, pt…). Empty = every language (the Trustpilot page itself shows English only by default).",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "📅 Reviews from",
            "type": "string",
            "description": "Only reviews published on or after this date: 2026-01-01, or relative: 30 days, 2 weeks, 6 months, 1 year. Exact, not just the site's \"last 30 days / 3 / 6 / 12 months\"."
          },
          "dateTo": {
            "title": "📅 Reviews until",
            "type": "string",
            "description": "Only reviews published on or before this date (the whole day counts): 2026-06-30, or relative: 30 days (ago)."
          },
          "sort": {
            "title": "↕️ Sort",
            "enum": [
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "Order of the reviews. Newest first is needed for date windows and only new reviews.",
            "default": "recency"
          },
          "verifiedOnly": {
            "title": "✅ Verified reviews only",
            "type": "boolean",
            "description": "Only reviews Trustpilot marks as verified.",
            "default": false
          },
          "withRepliesOnly": {
            "title": "💬 Only reviews with a company reply",
            "type": "boolean",
            "description": "Only reviews the company answered.",
            "default": false
          },
          "searchText": {
            "title": "🔍 Search in reviews",
            "type": "string",
            "description": "Only reviews containing this word or phrase (Trustpilot's own search box), for example refund or delivery."
          },
          "onlyNewReviews": {
            "title": "🆕 Only new reviews (for scheduled runs)",
            "type": "boolean",
            "description": "Return only reviews published after the newest one of the previous run with the same monitor name. The first run returns the usual result and remembers where it stopped. Uses newest-first order.",
            "default": false
          },
          "monitorName": {
            "title": "🏷️ Monitor name",
            "type": "string",
            "description": "Keeps separate \"only new\" memories for different lists of companies, for example competitors or our-brands. Empty = default."
          },
          "includeCompanyInfo": {
            "title": "🏷️ Company columns in every row",
            "type": "boolean",
            "description": "Adds TrustScore, total reviews, category and the company link to each review row. The full company profile (star counts, reply rate, claimed, AI summary, languages) is always in the COMPANIES record.",
            "default": true
          },
          "searchCountry": {
            "title": "🗺️ Country for company names",
            "type": "string",
            "description": "Two-letter country code used when a company is given by name (Trustpilot search ranks local companies first): US, GB, DE, FR, DK… Not used for links and domains.",
            "default": "US"
          },
          "maxConcurrency": {
            "title": "⚡ Parallel requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many Trustpilot pages are loaded at once.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy",
            "type": "object",
            "description": "Apify datacenter proxy (default) works: every request gets a new IP. Trustpilot answers only browsers, so the run starts a browser for a few seconds every few minutes to pass the check.",
            "default": {
              "useApifyProxy": true
            }
          },
          "debugLog": {
            "title": "🐞 Debug log",
            "type": "boolean",
            "description": "Log every retry and access token.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}