{
  "openapi": "3.0.1",
  "info": {
    "title": "Trustpilot Reviews & Company Data Scraper API",
    "description": "Scrape Trustpilot reviews and company data by company URL, domain, or search. Returns review text, rating, date, reviewer, language, verification, and full company profile (TrustScore, star histogram, category, contact info).",
    "version": "0.0",
    "x-build-id": "jfPlUTjTOY6NlDnxm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lurkapi~trustpilot-reviews-and-company-data-scraper-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lurkapi-trustpilot-reviews-and-company-data-scraper-api",
        "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/lurkapi~trustpilot-reviews-and-company-data-scraper-api/runs": {
      "post": {
        "operationId": "runs-sync-lurkapi-trustpilot-reviews-and-company-data-scraper-api",
        "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/lurkapi~trustpilot-reviews-and-company-data-scraper-api/run-sync": {
      "post": {
        "operationId": "run-sync-lurkapi-trustpilot-reviews-and-company-data-scraper-api",
        "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": {
          "startUrls": {
            "title": "Start URLs, domains, or search links",
            "type": "array",
            "description": "Trustpilot targets to scrape. Accepts several shapes and auto-detects each: full company URL ('https://www.trustpilot.com/review/eneba.com'), bare domain ('apple.com'), regional company URL ('https://de.trustpilot.com/review/apple.com'), user profile URL ('https://www.trustpilot.com/users/<userId>'), single review URL ('https://www.trustpilot.com/reviews/<reviewId>'), or search URL ('https://www.trustpilot.com/search?query=apple'). Mix any combination in one run; targets are deduplicated.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum reviews across all inputs",
            "minimum": 1,
            "type": "integer",
            "description": "Total cap on the number of review rows produced across every input. Prefill of 20 keeps the default demo run cheap and fast; raise via API or the Console for a full sweep.",
            "default": 500
          },
          "filterStars": {
            "title": "Star ratings",
            "uniqueItems": true,
            "type": "array",
            "description": "Star ratings to include. Empty = all. When set, the scraper performs a fair-share sweep across the selected star buckets so results aren't dominated by one bucket.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "filterCountries": {
            "title": "Reviewer countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include reviews written by consumers from these countries. Multi-select. Empty = all countries.",
            "items": {
              "type": "string",
              "enum": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "Germany",
                "France",
                "Spain",
                "Italy",
                "Netherlands",
                "Belgium",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Ireland",
                "Poland",
                "Portugal",
                "Austria",
                "Switzerland",
                "Czech Republic",
                "Slovakia",
                "Hungary",
                "Romania",
                "Greece",
                "Turkey",
                "Russia",
                "Ukraine",
                "Bulgaria",
                "Croatia",
                "Slovenia",
                "Lithuania",
                "Latvia",
                "Estonia",
                "Iceland",
                "Luxembourg",
                "Japan",
                "South Korea",
                "China",
                "India",
                "Singapore",
                "Hong Kong",
                "Malaysia",
                "Thailand",
                "Indonesia",
                "Philippines",
                "Vietnam",
                "Brazil",
                "Mexico",
                "Argentina",
                "Chile",
                "Colombia",
                "South Africa",
                "New Zealand",
                "United Arab Emirates",
                "Saudi Arabia",
                "Israel"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "Australia",
                "Germany",
                "France",
                "Spain",
                "Italy",
                "Netherlands",
                "Belgium",
                "Sweden",
                "Norway",
                "Denmark",
                "Finland",
                "Ireland",
                "Poland",
                "Portugal",
                "Austria",
                "Switzerland",
                "Czech Republic",
                "Slovakia",
                "Hungary",
                "Romania",
                "Greece",
                "Turkey",
                "Russia",
                "Ukraine",
                "Bulgaria",
                "Croatia",
                "Slovenia",
                "Lithuania",
                "Latvia",
                "Estonia",
                "Iceland",
                "Luxembourg",
                "Japan",
                "South Korea",
                "China",
                "India",
                "Singapore",
                "Hong Kong",
                "Malaysia",
                "Thailand",
                "Indonesia",
                "Philippines",
                "Vietnam",
                "Brazil",
                "Mexico",
                "Argentina",
                "Chile",
                "Colombia",
                "South Africa",
                "New Zealand",
                "United Arab Emirates",
                "Saudi Arabia",
                "Israel"
              ]
            }
          },
          "filterLanguages": {
            "title": "Review languages",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include reviews written in these languages. Multi-select of common Trustpilot review languages. Empty = all languages.",
            "items": {
              "type": "string",
              "enum": [
                "en",
                "de",
                "fr",
                "es",
                "it",
                "nl",
                "pt",
                "pl",
                "da",
                "sv",
                "no",
                "fi",
                "ja"
              ],
              "enumTitles": [
                "English (en)",
                "German (de)",
                "French (fr)",
                "Spanish (es)",
                "Italian (it)",
                "Dutch (nl)",
                "Portuguese (pt)",
                "Polish (pl)",
                "Danish (da)",
                "Swedish (sv)",
                "Norwegian (no)",
                "Finnish (fi)",
                "Japanese (ja)"
              ]
            }
          },
          "filterVerifiedOnly": {
            "title": "Only verified reviews",
            "type": "boolean",
            "description": "Return only reviews Trustpilot has marked as verified (invitation-based or otherwise verified).",
            "default": false
          },
          "filterRepliesOnly": {
            "title": "Only reviews with a company reply",
            "type": "boolean",
            "description": "Return only reviews where the company has posted a reply.",
            "default": false
          },
          "sort": {
            "title": "Sort reviews by",
            "enum": [
              "recency",
              "relevance"
            ],
            "type": "string",
            "description": "How to order the reviews returned. 'recency' returns newest first; 'relevance' uses Trustpilot's relevance ranking.",
            "default": "recency"
          },
          "filterStartDate": {
            "title": "Start date (YYYY-MM-DD) ($)",
            "type": "string",
            "description": "Only include reviews on or after this date (YYYY-MM-DD)."
          },
          "filterEndDate": {
            "title": "End date (YYYY-MM-DD) ($)",
            "type": "string",
            "description": "Only include reviews on or before this date (YYYY-MM-DD). Reviews older than this stop pagination early."
          },
          "filterKeywordInclude": {
            "title": "Include keywords or regex ($)",
            "type": "string",
            "description": "Only keep reviews that mention these words. Paste comma-separated words (e.g. 'scam, refund') or a regex pattern (e.g. 'scam|refund'). Matches against review title, text, and product names."
          },
          "filterKeywordExclude": {
            "title": "Exclude keywords or regex ($)",
            "type": "string",
            "description": "Only keep reviews that DO NOT mention these words. Paste comma-separated words (e.g. 'scam, refund') or a regex pattern (e.g. 'scam|refund'). Matches against review title, text, and product names."
          },
          "includeCompanyDetails": {
            "title": "Include summary row per input",
            "type": "boolean",
            "description": "Emit one summary row per input target. For company URLs / domains / search-resolved businesses: TrustScore, star histogram, category, contact info, verification badges, response rate. For user profile URLs: reviewer display name, country, verified badge, total reviews written, reads count, likes count.",
            "default": false
          },
          "includeTransparencyStats": {
            "title": "Include Trustpilot transparency data ($)",
            "type": "boolean",
            "description": "Fetch Trustpilot's public transparency page for each company (collection-method mix, basic link rate, reactivated reviews count).",
            "default": false
          },
          "enrichEmails": {
            "title": "Extract email(s) from company website ($)",
            "type": "boolean",
            "description": "Fetch the company's linked website and extract contact emails.",
            "default": false
          },
          "enrichPayments": {
            "title": "Detect payment processors on company website ($)",
            "type": "boolean",
            "description": "Detect payment processors on the company's website (Stripe, Shopify, PayPal, Adyen, Klarna, Braintree, etc.). Free when paired with Email extraction (the website fetch is shared).",
            "default": false
          },
          "outputTitle": {
            "title": "Review title",
            "type": "boolean",
            "description": "Include the review title.",
            "default": true
          },
          "outputText": {
            "title": "Review text",
            "type": "boolean",
            "description": "Include the review body text.",
            "default": true
          },
          "outputRating": {
            "title": "Rating",
            "type": "boolean",
            "description": "Include the 1-5 star rating.",
            "default": true
          },
          "outputLikes": {
            "title": "Likes count",
            "type": "boolean",
            "description": "Include the review's helpful/like count.",
            "default": true
          },
          "outputLanguage": {
            "title": "Review language",
            "type": "boolean",
            "description": "Include the review's language ISO code.",
            "default": true
          },
          "outputSource": {
            "title": "Review source",
            "type": "boolean",
            "description": "Include the review-collection source (InvitationApi, Organic, etc.).",
            "default": true
          },
          "outputExperiencedDate": {
            "title": "Date of experience",
            "type": "boolean",
            "description": "Include the date the reviewer says they had their experience.",
            "default": true
          },
          "outputPublishedDate": {
            "title": "Published date",
            "type": "boolean",
            "description": "Include the date the review was published on Trustpilot.",
            "default": true
          },
          "outputUpdatedDate": {
            "title": "Updated date",
            "type": "boolean",
            "description": "Include the date the review was last edited (null if never edited).",
            "default": true
          },
          "outputConsumer": {
            "title": "Reviewer profile",
            "type": "boolean",
            "description": "Include the reviewer's display name, avatar, profile ID, and total review count.",
            "default": true
          },
          "outputConsumerCountry": {
            "title": "Reviewer country",
            "type": "boolean",
            "description": "Include the reviewer's country code.",
            "default": true
          },
          "outputReply": {
            "title": "Company reply",
            "type": "boolean",
            "description": "Include the company's reply message and dates (null when no reply).",
            "default": true
          },
          "outputVerification": {
            "title": "Verification metadata",
            "type": "boolean",
            "description": "Include verification metadata (isVerified, verification source, verification level).",
            "default": true
          },
          "outputLocation": {
            "title": "Reviewer location",
            "type": "boolean",
            "description": "Include the reviewer's location object when Trustpilot exposes one.",
            "default": true
          },
          "outputProductReviews": {
            "title": "Product reviews",
            "type": "boolean",
            "description": "Include per-product review breakdown for reviews that reference specific products.",
            "default": true
          },
          "outputInputUrl": {
            "title": "Source input URL",
            "type": "boolean",
            "description": "Include the URL/domain from the input list that led to this row.",
            "default": true
          },
          "outputSourceBusinessDomain": {
            "title": "Source business domain",
            "type": "boolean",
            "description": "Include the Trustpilot business identifier (the domain segment used in the review URL).",
            "default": true
          },
          "outputScrapedAt": {
            "title": "Scraped-at timestamp",
            "type": "boolean",
            "description": "Include the ISO timestamp for when the row was scraped.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}