{
  "openapi": "3.0.1",
  "info": {
    "title": "Trusted Shops Scraper: Shop Reviews, Ratings & Shop Leads",
    "description": "Scrape Trusted Shops reviews and the shop directory of trustedshops.de, .at, .ch, .co.uk, .fr, .es, .it, .nl, .pl, .be and .eu: rating, title, comment, date, verified purchase, shop reply; shop legal name, phone, email, address, register number. Export data to JSON, CSV or Excel, or via API.",
    "version": "1.0",
    "x-build-id": "4CTW6bo5f3gKQzQrf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~trusted-shops-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-trusted-shops-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/steadyscrape~trusted-shops-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-trusted-shops-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/steadyscrape~trusted-shops-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-trusted-shops-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",
        "properties": {
          "startUrls": {
            "title": "Trusted Shops links",
            "maxItems": 5000,
            "type": "array",
            "description": "Links copied from any Trusted Shops site (trustedshops.de, .at, .ch, .co.uk, .fr, .es, .it, .nl, .pl, .be, .eu, and the profiles of .dk, .se, .cz, .fi, .pt, .ro), one per line. A <b>shop profile</b> (<code>https://www.trustedshops.de/bewertung/info_X7BE3174BD112E62D46696024D6762AF7.html</code>, <code>https://www.trustedshops.es/evaluacion/brottdog-com-es</code>) gives its reviews (and its profile with <i>Shop details</i>). A <b>directory page</b> (a category <code>https://www.trustedshops.de/shops/tierbedarf/</code>, a keyword <code>…/shops/tierbedarf/hundefutter/</code> or a search <code>…/shops/?q=reifen</code>) gives its shops. Up to 5,000.",
            "items": {
              "type": "string"
            }
          },
          "searchTerms": {
            "title": "Search shops by name or website",
            "maxItems": 100,
            "type": "array",
            "description": "Shop names or websites to look up in the Trusted Shops directory of the site below, one per line: <code>zooplus</code>, <code>futterfreund.de</code>, <code>reifen</code>. Each search gives the shops it lists. Up to 100.",
            "items": {
              "type": "string"
            }
          },
          "site": {
            "title": "Site for searches",
            "enum": [
              "de",
              "at",
              "ch",
              "co.uk",
              "fr",
              "es",
              "it",
              "nl",
              "pl",
              "be",
              "eu"
            ],
            "type": "string",
            "description": "The country directory the searches above look in. Links carry their own site.",
            "default": "de"
          },
          "maxShopsPerList": {
            "title": "Max shops per directory list or search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop each directory link and each search after this many shops. The directory shows 20 a page, up to 200 pages for a category and 500 for a search.",
            "default": 100
          },
          "includeShopDetails": {
            "title": "Shop details: read each shop's profile (shop-with-details)",
            "type": "boolean",
            "description": "Read each shop's profile page for its legal name, postal address, phone, email, WhatsApp and contact form, commercial register court and number, responsible person, certification, buyer protection, rating breakdown, keywords, social links and Trusted Shops' review summary. Charged <code>shop-with-details</code> instead of <code>shop</code>; a profile that states none of these (most non-member profiles) stays a plain <code>shop</code>. For a profile link, this adds its shop row.",
            "default": false
          },
          "maxReviewsPerShop": {
            "title": "Max reviews per shop",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Reviews to scrape from each shop profile link (0 = none). A profile shows the reviews of about the last 12 months, and at most 10,000.",
            "default": 100
          },
          "includeReviewsOfListedShops": {
            "title": "Also scrape the reviews of shops found in directory lists and searches",
            "type": "boolean",
            "description": "Read the reviews of every shop a directory link or a search delivers too, up to the maximum above each.",
            "default": false
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "The order reviews are read in, as the profile page offers it.",
            "default": "date"
          },
          "reviewStars": {
            "title": "Only these star ratings",
            "maxItems": 5,
            "type": "array",
            "description": "Keep only reviews with these ratings, e.g. 1 and 2 stars for complaints. Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "reviewSearchTerm": {
            "title": "Only reviews mentioning",
            "maxLength": 100,
            "type": "string",
            "description": "A word the reviews must contain, searched by Trusted Shops as the profile's own review search does (e.g. <code>Lieferung</code>, <code>delivery</code>)."
          },
          "reviewsSince": {
            "title": "Only reviews since",
            "type": "string",
            "description": "Only reviews written on or after this date (UTC), as YYYY-MM-DD or a full ISO timestamp; reviews are then read newest first. Leave empty for no limit."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}