{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper - Companies, Replies & Sentiment",
    "description": "Scrape Trustpilot reviews by company domain, name or URL: rating, text, dates, verified flag, company reply and reviewer country, past the 1,000 review cap. Filter by stars, date, topic, language. Only-new mode, company profile and TrustScore. Company lists by category with email and phone.",
    "version": "0.1",
    "x-build-id": "J2n1DaP2UgMAnP7hQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~trustpilot-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-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/scrapewise~trustpilot-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-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/scrapewise~trustpilot-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-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 company per line: the domain as Trustpilot uses it (www.amazon.com, booking.com), a trustpilot.com/review/ link, or a brand name without a dot (dugood), which is looked up in Trustpilot's search and takes the first result. Each company gives its reviews plus one company row. A company with no Trustpilot page returns a free NOT_FOUND row.",
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerCompany": {
            "title": "Max reviews per company",
            "minimum": 1,
            "type": "integer",
            "description": "Reviews to deliver per company. Default 100. Trustpilot shows 200 reviews per filter to logged out visitors; above 200 the Actor splits the list by star rating, which reaches up to 1,000 per language. Turn on 'Full history' to go past 1,000. You pay US$ 0.60 per 1,000 reviews, so 500 reviews cost US$ 0.30.",
            "default": 100
          },
          "fullHistory": {
            "title": "Full history (past 1,000 reviews)",
            "type": "boolean",
            "description": "Off by default. On: goes past the 1,000 review ceiling and keeps each review once. In a test on a company with 37,634 English reviews it delivered 5,000 unique reviews back to 2022 in 28 minutes. The limit is split evenly across star ratings. Give the run enough timeout. Same price per review.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new reviews (for schedules)",
            "type": "boolean",
            "description": "Off by default. On: remembers the reviews already delivered for each company with these filters, in the key-value store 'trustpilot-reviews-scraper-only-new' of your own account, and returns only newer ones. Each run stops reading at the first review you already have, so daily runs are fast; skipped reviews are free and do not count toward the limit. The company row comes only when there are new reviews. Delete the store to start over.",
            "default": false
          },
          "language": {
            "title": "Review language",
            "type": "string",
            "description": "Default 'all' for every language at once, or one code: en, pt, de, fr, es, it, nl, da, sv, nb, pl, fi, ja. English reads www.trustpilot.com; other codes read the country site that shows those reviews.",
            "default": "all"
          },
          "stars": {
            "title": "Star ratings",
            "type": "array",
            "description": "Only these star ratings, one per line, as 1 to 5 (for example 1 and 2 for complaints). Empty (default) keeps all ratings. With a limit, the reviews are shared across the ratings you list.",
            "items": {
              "type": "string"
            }
          },
          "publishedAfter": {
            "title": "Published after",
            "type": "string",
            "description": "Only reviews published on or after this date, as YYYY-MM-DD (2026-09-01), or in the last N days as a number (30). Empty (default) means no date limit. Reviews outside the window are not charged."
          },
          "verifiedOnly": {
            "title": "Verified reviews only",
            "type": "boolean",
            "description": "Off by default. On: only reviews Trustpilot marks as verified.",
            "default": false
          },
          "withRepliesOnly": {
            "title": "Only reviews the company replied to",
            "type": "boolean",
            "description": "Off by default. On: only reviews the company replied to, useful for studying how a company answers complaints.",
            "default": false
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Only reviews Trustpilot tags with these topics, one per line, as ids (delivery_service, customer_service, product, order, refund, value_for_money) or display names (Customer service). The topics a company has are listed in 'topics' of its company row when 'Company insights' is on. Empty (default) means all topics.",
            "items": {
              "type": "string"
            }
          },
          "search": {
            "title": "Search in reviews",
            "type": "string",
            "description": "Only reviews that mention this word or phrase, for example refund or late delivery, as Trustpilot's own search inside a company's reviews matches it. Empty (default) means no text filter."
          },
          "reviewerCountries": {
            "title": "Reviewer countries",
            "type": "array",
            "description": "Only reviews written by people from these countries, one per line, as two letter codes (US, GB, DE, FR). Reviews from other countries are skipped and not charged. Empty (default) keeps all countries.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Order",
            "enum": [
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "Default 'recency': newest first, the order 'Only new reviews' and date filters rely on. 'relevance': Trustpilot's own ranking. Has no effect on price.",
            "default": "recency"
          },
          "includeCompanyProfile": {
            "title": "Company profile row",
            "type": "boolean",
            "description": "On by default. Adds one row with type 'company' per company: TrustScore, stars, total reviews, reviews in the last 12 months, categories, website and reviews per language. Charged as a company row (US$ 2.00 per 1,000); turn it off if you only want reviews.",
            "default": true
          },
          "companyInsights": {
            "title": "Company insights",
            "type": "boolean",
            "description": "Off by default. Adds to the company row: the 1 to 5 star breakdown, reply rate and average days to reply, negative reviews answered, Trustpilot's own AI summary overall and per topic, the company's topics, description, public business contact (email, phone, address), consumer alerts, verification flags and 8 similar companies with their TrustScore. Same company row, no extra charge. Small companies often have no AI summary or similar companies.",
            "default": false
          },
          "reviewInsights": {
            "title": "Review insights (sentiment and themes)",
            "type": "boolean",
            "description": "Off by default. Adds sentiment (positive, neutral, negative) and sentimentScore (-1 to 1) to every review, and one free row with type 'insights' per company: rating breakdown, month by month rating and positive or negative share, the most repeated complaint and praise themes with two short quotes each, and how often and how fast the company replies. Computed in the run from the reviews delivered with a keyword lexicon in 8 languages and the star rating, without an AI model. Reviews cost the same.",
            "default": false
          },
          "categories": {
            "title": "Categories (company lists)",
            "type": "array",
            "description": "Trustpilot category ids or links, one per line: electronics_technology, vpn_service or https://www.trustpilot.com/categories/pet_store (the id is the last part of the link). Each category returns its companies as rows with type 'listedCompany': TrustScore, review count, website, email, phone and address. An unknown id returns a free NOT_FOUND row. Empty by default.",
            "items": {
              "type": "string"
            }
          },
          "companySearch": {
            "title": "Company search keywords",
            "type": "array",
            "description": "Keywords to find companies, one per line, as typed in Trustpilot's search box (vpn, meal kit, car insurance). Each keyword returns the matching companies as 'listedCompany' rows, 10 per page. Feed their companyDomain back into 'Companies' to get reviews. Empty by default.",
            "items": {
              "type": "string"
            }
          },
          "maxCompaniesPerCategory": {
            "title": "Max companies per category or keyword",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Companies to list per category or keyword. Default 100, maximum 10,000, which is Trustpilot's own ceiling per category (20 per page). Each listed company is charged as a company row, so 1,000 companies cost US$ 2.00. For more, split by country, city or minimum TrustScore.",
            "default": 100
          },
          "categoryCountry": {
            "title": "Category country",
            "type": "string",
            "description": "Country of the category ranking, as a two letter code. Default US; GB, DE, AU, CA and others work. Trustpilot ranks each category per country, so the same category gives different companies in each.",
            "default": "US"
          },
          "minTrustScore": {
            "title": "Minimum TrustScore",
            "enum": [
              "",
              "3.0",
              "4.0",
              "4.5"
            ],
            "type": "string",
            "description": "Category lists only. Keep companies with at least this TrustScore: 3.0, 4.0 or 4.5. Default: any score.",
            "default": ""
          },
          "categorySort": {
            "title": "Category order",
            "enum": [
              "most_relevant",
              "latest_review",
              "reviews_count"
            ],
            "type": "string",
            "description": "Category lists only. Default 'most_relevant' (Trustpilot's order). 'latest_review' puts recently reviewed companies first; 'reviews_count' puts the companies with the most reviews first, which shows who leads a category.",
            "default": "most_relevant"
          },
          "claimedOnly": {
            "title": "Claimed profiles only",
            "type": "boolean",
            "description": "Category lists only. Off by default. On: only companies that claimed their Trustpilot profile, which are the ones most likely to publish contact details and answer reviews.",
            "default": false
          },
          "categoryLocation": {
            "title": "City (optional)",
            "type": "string",
            "description": "Category lists only. A city, as typed on Trustpilot (London, New York, Berlin), to keep only companies located there. Empty (default) means the whole country."
          },
          "trustpilotSite": {
            "title": "Trustpilot site (optional)",
            "type": "string",
            "description": "Optional. Forces a Trustpilot country site: www, uk, br, de, fr, es, it, nl, dk, se, no, pl, fi or jp. Empty (default) picks the site from 'Review language'. It changes the language of category names in the company row."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Default: Apify Proxy (datacenter), which works for Trustpilot. The Actor retries a blocked star rating on its own; anything still missing becomes a free INCOMPLETE row naming the ratings. Change it only if you see BLOCKED rows.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}