{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper",
    "description": "Scrape Trustpilot reviews for any business, including ratings, titles, full text, reviewer country, verification status, published dates, company replies, and TrustScore. Filter by rating, language, date, or known review IDs for scheduled reputation monitoring.",
    "version": "0.1",
    "x-build-id": "3h6Wf0LFKcgrqApa3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/schnellscrapers~trustpilot-review-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-schnellscrapers-trustpilot-review-monitor",
        "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/schnellscrapers~trustpilot-review-monitor/runs": {
      "post": {
        "operationId": "runs-sync-schnellscrapers-trustpilot-review-monitor",
        "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/schnellscrapers~trustpilot-review-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-schnellscrapers-trustpilot-review-monitor",
        "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": [
          "businessUrls"
        ],
        "properties": {
          "businessUrls": {
            "title": "Business URLs",
            "type": "array",
            "description": "Add Trustpilot review URLs or company domains, one per row. Examples: `https://www.trustpilot.com/review/amazon.com` or `nike.com`.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "Trustpilot business URL",
                  "description": "A Trustpilot review page URL such as https://www.trustpilot.com/review/amazon.com, or a company domain such as nike.com."
                }
              }
            }
          },
          "maxReviewsPerBusiness": {
            "title": "Reviews per business",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum review rows to write for each business. The default 20 matches one Trustpilot review page and is suited to scheduled checks.",
            "default": 20
          },
          "maxPagesPerBusiness": {
            "title": "Pages per business",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum Trustpilot review pages to open for each business. Each page normally contains up to 20 reviews; keep this low for recent monitoring.",
            "default": 1
          },
          "maxTotalReviews": {
            "title": "Total review cap",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Hard cap on review rows matched across all businesses. Use 100 or less to stay within the free-tier run allowance.",
            "default": 100
          },
          "reviewRatings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Keep only these Trustpilot star ratings, for example `[1, 2]` for critical feedback. Leave empty for all ratings.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "language": {
            "title": "Review language",
            "pattern": "^$|^[a-zA-Z]{2}$",
            "type": "string",
            "description": "Keep one ISO language code such as `en`, `de`, or `fr`. Leave empty for all languages.",
            "default": ""
          },
          "reviewerCountries": {
            "title": "Reviewer countries",
            "type": "array",
            "description": "Keep reviewer profile country codes such as `US`, `GB`, or `DE`. Leave empty for every country.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "verifiedOnly": {
            "title": "Verified reviews only",
            "type": "boolean",
            "description": "Write only reviews marked verified by Trustpilot.",
            "default": false
          },
          "repliesOnly": {
            "title": "Reviews with replies",
            "type": "boolean",
            "description": "Write only reviews that include a public company reply.",
            "default": false
          },
          "startDate": {
            "title": "Published after",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep reviews published on or after this UTC date in `YYYY-MM-DD` format. Leave empty for the newest page.",
            "default": ""
          },
          "endDate": {
            "title": "Published before",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Keep reviews published on or before this UTC date in `YYYY-MM-DD` format. Leave empty for no upper date bound.",
            "default": ""
          },
          "knownReviewIds": {
            "title": "Known review IDs",
            "type": "array",
            "description": "Paste review IDs already stored by your monitoring workflow. Rows include `isNew`; enable New reviews only to exclude these IDs.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "newReviewsOnly": {
            "title": "New reviews only",
            "type": "boolean",
            "description": "Write only review IDs that are not present in Known review IDs.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential Apify Proxy is used by default because Trustpilot may show a browser challenge. Set `useApifyProxy` to false to try a direct session; proxy and platform usage are billed according to your Apify plan.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "dryRun": {
            "title": "Dry run",
            "type": "boolean",
            "description": "Fetch and filter reviews without writing dataset rows. Logs report matched and would-write counts.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}