{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews API: Ratings & Company Data",
    "description": "Trustpilot reviews scraper and API with no 200-review cap: get all reviews for any company with rating, text, dates, reviewer, verification and company replies, plus TrustScore, contacts and AI summary on every row. All languages, filters, business search. No login.",
    "version": "0.1",
    "x-build-id": "zOvdp3UjgG5CZYt9f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/deepmine~trustpilot-reviews/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-deepmine-trustpilot-reviews",
        "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/deepmine~trustpilot-reviews/runs": {
      "post": {
        "operationId": "runs-sync-deepmine-trustpilot-reviews",
        "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/deepmine~trustpilot-reviews/run-sync": {
      "post": {
        "operationId": "run-sync-deepmine-trustpilot-reviews",
        "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 (pages, domains or names)",
            "type": "array",
            "description": "A Trustpilot page (<code>https://www.trustpilot.com/review/apple.com</code>, any country site), a website (<code>amazon.com</code>) or a name (<code>Booking.com</code>, best match used). One per line.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            }
          },
          "maxReviewsPerCompany": {
            "title": "📊 Max reviews per company",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Up to 200 the run reads the listing as Trustpilot shows it; above 200 it splits the listing into smaller parts, so big companies give thousands. 0 = company details only.",
            "default": 100
          },
          "stars": {
            "title": "⭐ Star ratings",
            "type": "array",
            "description": "Only reviews with these ratings, e.g. 1 and 2 stars for complaints. Empty = all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            },
            "default": []
          },
          "sort": {
            "title": "🔃 Sort",
            "enum": [
              "newest",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first, or Trustpilot's most relevant first.",
            "default": "newest"
          },
          "dateRange": {
            "title": "📅 Posted in the last",
            "enum": [
              "",
              "last30days",
              "last3months",
              "last6months",
              "last12months"
            ],
            "type": "string",
            "description": "Only reviews posted in this period. For an exact date, use Posted after under Filters.",
            "default": ""
          },
          "languages": {
            "title": "🌐 Review language",
            "type": "string",
            "description": "One language's reviews, as an ISO code, e.g. <code>en</code>, <code>de</code>, <code>fr</code>. <code>all</code> = every language.",
            "default": "all"
          },
          "publishedAfter": {
            "title": "📅 Posted after",
            "type": "string",
            "description": "Only reviews posted after this date, or a period like <code>2 weeks</code>. With Newest first, reading stops at older reviews: good for daily tracking. Empty = any date."
          },
          "onlyNewReviews": {
            "title": "Only new reviews since the last run",
            "type": "boolean",
            "description": "Only reviews newer than the last run with the same companies and filters: a scheduled run never pays twice for a review. Reads newest first; a run cut short leaves the rest to the next.",
            "default": false
          },
          "verifiedOnly": {
            "title": "Verified reviews only",
            "type": "boolean",
            "description": "Only reviews Trustpilot marks as verified.",
            "default": false
          },
          "withRepliesOnly": {
            "title": "Reviews with a company reply only",
            "type": "boolean",
            "description": "Only reviews the company replied to.",
            "default": false
          },
          "keyword": {
            "title": "🔍 Reviews mentioning",
            "type": "string",
            "description": "Only reviews containing this word (Trustpilot's own review search), e.g. <code>refund</code>. Empty = all reviews."
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Only reviews Trustpilot files under these topics, e.g. <code>customer_service</code>, <code>delivery_service</code>, <code>refund</code>, <code>product</code>. Empty = all topics.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "reviewerCountries": {
            "title": "Reviewer countries",
            "type": "array",
            "description": "Only reviews by people from these countries, as ISO codes, e.g. <code>US</code>, <code>GB</code>. Empty = all countries.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "🔎 Categories",
            "type": "array",
            "description": "Trustpilot categories: an id (<code>electronics_store</code>) or its page URL. Each business found is one row with its website, email, phone and address when listed.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            },
            "default": []
          },
          "searchTerms": {
            "title": "🔍 Business search",
            "type": "array",
            "description": "Find businesses by name or keyword with Trustpilot's own search, e.g. <code>vpn</code>. One row per business.",
            "items": {
              "type": "string",
              "pattern": "\\S"
            },
            "default": []
          },
          "maxBusinesses": {
            "title": "📊 Max businesses per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most businesses saved per category or search term.",
            "default": 100
          },
          "country": {
            "title": "📍 Business country (categories)",
            "type": "string",
            "description": "Categories only: businesses from this country, as an ISO code, e.g. <code>US</code>, <code>DE</code>. Empty = Trustpilot's default for the category."
          },
          "minTrustScore": {
            "title": "Minimum TrustScore",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only businesses with at least this TrustScore, e.g. 4. Empty = any score."
          },
          "scrapeReviewsOfFoundBusinesses": {
            "title": "Also get their reviews ($)",
            "type": "boolean",
            "description": "Reads the reviews of every business found (📊 Max reviews per company applies). You pay per review saved.",
            "default": false
          },
          "includeBrandPages": {
            "title": "Read the brand's other pages",
            "type": "boolean",
            "description": "Brands often have several Trustpilot pages (Apple: www.apple.com, www.apple.dk, appletv.com...). On: when the main page runs out, the run reads them too, up to the limit. companyDomain says which page.",
            "default": true
          },
          "includeCompanyRows": {
            "title": "Add a company row ($)",
            "type": "boolean",
            "description": "One extra row per company with its profile only, charged like a review. Review rows already carry the company columns.",
            "default": false
          },
          "includeTransparency": {
            "title": "Add transparency statistics",
            "type": "boolean",
            "description": "Adds Trustpilot's transparency report to the company columns: organic vs invited reviews, reports, reviews removed, monthly counts. No extra charge.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}