{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper - All Reviews, Ratings & Replies",
    "description": "Extract Trustpilot reviews with ratings, replies, reviewer info and company data for any company URL or domain. Served in seconds from a continuously refreshed dataset, with a live crawl for anything not collected yet. Filter by stars, language, verified, date or keyword. Export JSON, CSV, Excel.",
    "version": "0.1",
    "x-build-id": "1kyjg9QY6O6jAFyaE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/convertfleetdotonline~trustpilot-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-convertfleetdotonline-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/convertfleetdotonline~trustpilot-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-convertfleetdotonline-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/convertfleetdotonline~trustpilot-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-convertfleetdotonline-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",
        "required": [
          "companyUrls"
        ],
        "properties": {
          "companyUrls": {
            "title": "Company URLs or domains",
            "type": "array",
            "description": "Trustpilot review page URLs (e.g. <code>https://www.trustpilot.com/review/www.ebay.com</code>) or bare company domains (e.g. <code>www.ebay.com</code>).",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Max reviews per company",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of reviews to return per company.",
            "default": 100
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "Order in which reviews are returned.",
            "default": "recency"
          },
          "starsFilter": {
            "title": "Filter by star rating",
            "type": "array",
            "description": "Only return reviews with these star ratings. Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "languages": {
            "title": "Review language",
            "type": "string",
            "description": "Language filter: <code>all</code> for every language, or a two-letter code such as <code>en</code>, <code>de</code>, <code>es</code>, <code>fr</code>.",
            "default": "all"
          },
          "verifiedOnly": {
            "title": "Verified reviews only",
            "type": "boolean",
            "description": "Only return reviews with a verified order/invitation label.",
            "default": false
          },
          "filterByDatePeriod": {
            "title": "Filter by date posted",
            "enum": [
              "all",
              "last30days",
              "last3months",
              "last6months",
              "last12months"
            ],
            "type": "string",
            "description": "Only return reviews posted within this period.",
            "default": "all"
          },
          "filterByCountryOfReviewers": {
            "title": "Filter by reviewer country",
            "type": "string",
            "description": "Two-letter country code (e.g. <code>US</code>, <code>GB</code>, <code>DE</code>). Only reviews written by reviewers from that country are kept, so fewer than <code>maxReviews</code> results may be returned."
          },
          "searchKeyword": {
            "title": "Search within reviews",
            "type": "string",
            "description": "Only return reviews whose title or text contains this keyword."
          },
          "startFromPageNumber": {
            "title": "Start at page",
            "minimum": 1,
            "type": "integer",
            "description": "Page number to start from (20 reviews per page).",
            "default": 1
          },
          "endAtPageNumber": {
            "title": "Stop after page",
            "minimum": 0,
            "type": "integer",
            "description": "Last page number to return. Leave at <code>0</code> to continue until <b>Max reviews</b> or the last page.",
            "default": 0
          },
          "includeCompanyDetails": {
            "title": "Include company details on each review",
            "type": "boolean",
            "description": "Attach company name, domain, TrustScore, star average, total review count, website, and categories to every review record.",
            "default": true
          },
          "liveFallback": {
            "title": "Crawl Trustpilot live when the prepared dataset has less than requested",
            "type": "boolean",
            "description": "Reviews are served instantly from a continuously refreshed dataset. When that holds fewer reviews than you asked for (or the company is not collected yet), the actor crawls Trustpilot live for the rest and saves what it finds. Turn off to only ever read the prepared dataset (anything missing is queued for collection instead).",
            "default": true
          },
          "refreshAfterHours": {
            "title": "Refresh stored copies older than (hours)",
            "minimum": 1,
            "maximum": 720,
            "type": "integer",
            "description": "A company whose stored reviews were collected more than this many hours ago is queued for a fresh collection after the run, so your next run returns up-to-date reviews.",
            "default": 24
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used only by the live crawl. Apify datacenter proxy works for Trustpilot; the actor also retries through its own connection if a proxy exit cannot reach the site.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}