{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews Scraper (3-in-1)",
    "description": "Extract Trustpilot reviews with 3 search modes: browse categories, search keywords, or target companies. Filter by stars, language, date, and verified status. Get reviews, ratings, company responses, and TrustScores. Export to JSON, CSV, Excel for market research and competitor analysis.",
    "version": "0.0",
    "x-build-id": "nMJ1APH0yjU4aBWwD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mindseter~trustpilot-reviews-scraper-3-in-1/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mindseter-trustpilot-reviews-scraper-3-in-1",
        "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/mindseter~trustpilot-reviews-scraper-3-in-1/runs": {
      "post": {
        "operationId": "runs-sync-mindseter-trustpilot-reviews-scraper-3-in-1",
        "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/mindseter~trustpilot-reviews-scraper-3-in-1/run-sync": {
      "post": {
        "operationId": "run-sync-mindseter-trustpilot-reviews-scraper-3-in-1",
        "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": [
          "searchType"
        ],
        "properties": {
          "searchType": {
            "title": "Search type",
            "enum": [
              "category",
              "search",
              "detail"
            ],
            "type": "string",
            "description": "Select how you want to search Trustpilot",
            "default": "detail"
          },
          "urls": {
            "title": "Company URLs",
            "type": "array",
            "description": "List of Trustpilot company URLs or domains (e.g., apple.com). Required for 'detail' search type.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Trustpilot category to browse (e.g., bank, gaming, tech, music_instruments). Required for 'category' search type."
          },
          "subcategory": {
            "title": "Subcategory (optional)",
            "type": "string",
            "description": "Subcategory within the main category (e.g., 'music_instructor' for 'music_instruments'). Visit the category on Trustpilot and copy from URL ?subcategories=xxx"
          },
          "country": {
            "title": "Country code",
            "type": "string",
            "description": "Filter companies by country code (e.g., US, GB, FR, DE, IT)"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Filter by city or zip code (e.g., New York, NY)"
          },
          "verifiedCompanies": {
            "title": "Verified companies only",
            "type": "boolean",
            "description": "Only scrape verified companies on Trustpilot",
            "default": false
          },
          "sortByCategory": {
            "title": "Sort results by",
            "enum": [
              "recommended",
              "reviews_count",
              "latest_review"
            ],
            "type": "string",
            "description": "How to sort category results",
            "default": "recommended"
          },
          "searchKeyword": {
            "title": "Search keyword",
            "type": "string",
            "description": "Search for companies containing this keyword across Trustpilot. Required for 'search' search type."
          },
          "maxCompanies": {
            "title": "Maximum companies",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of companies to scrape. Only applies to 'category' and 'search' modes.",
            "default": 10
          },
          "lastReviews": {
            "title": "Fetch last reviews only",
            "type": "boolean",
            "description": "Fetch only the last ~20 reviews for each company (faster). Only applies to 'category' and 'search' modes.",
            "default": false
          },
          "maxReviews": {
            "title": "Maximum reviews per company",
            "minimum": 20,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of reviews to extract per company",
            "default": 1000
          },
          "filterByStars": {
            "title": "Filter by star rating",
            "type": "string",
            "description": "Filter by stars: empty for all, or specify: 1, 2, 3, 4, 5, or combinations like '1,2' or '4,5'"
          },
          "filterByLanguage": {
            "title": "Filter by language",
            "type": "string",
            "description": "Filter reviews by language code (en, fr, de, es, it). Leave empty for all."
          },
          "verifiedOnly": {
            "title": "Verified reviews only",
            "type": "boolean",
            "description": "Extract only verified reviews",
            "default": false
          },
          "dateRange": {
            "title": "Date range",
            "enum": [
              "all",
              "last30days",
              "last3months",
              "last6months",
              "last12months"
            ],
            "type": "string",
            "description": "Filter reviews by date range",
            "default": "all"
          },
          "includeCompanyInfo": {
            "title": "Include company information",
            "type": "boolean",
            "description": "Extract company data (name, TrustScore, total reviews, address, phone, email, website)",
            "default": true
          },
          "includeReviewerInfo": {
            "title": "Include reviewer information",
            "type": "boolean",
            "description": "Extract reviewer name and location",
            "default": true
          },
          "includeReplies": {
            "title": "Include company replies",
            "type": "boolean",
            "description": "Extract company responses to reviews",
            "default": true
          },
          "startPage": {
            "title": "Start from page",
            "minimum": 1,
            "type": "integer",
            "description": "Start scraping from this page number",
            "default": 1
          },
          "endPage": {
            "title": "End at page",
            "minimum": 1,
            "type": "integer",
            "description": "Stop scraping at this page number (optional)"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Number of companies to process in parallel (1-10)",
            "default": 1
          },
          "minDelay": {
            "title": "Minimum delay (ms)",
            "minimum": 500,
            "maximum": 5000,
            "type": "integer",
            "description": "Minimum delay between requests in milliseconds",
            "default": 800
          },
          "maxDelay": {
            "title": "Maximum delay (ms)",
            "minimum": 1000,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum delay between requests in milliseconds",
            "default": 1500
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Configure proxy settings for scraping"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}