{
  "openapi": "3.0.1",
  "info": {
    "title": "Trendyol Scraper: Products, Prices, Sellers & Barcodes",
    "description": "Unofficial Trendyol (Turkey) scraper for category, brand and product URLs. Prices, discounts, ratings, barcode (GTIN), every seller's offer and a review sample. No login, no keyword search.",
    "version": "0.1",
    "x-build-id": "ZJQ20KN18ch5Y959f"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kyungminlee~trendyol-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kyungminlee-trendyol-products-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/kyungminlee~trendyol-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kyungminlee-trendyol-products-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/kyungminlee~trendyol-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kyungminlee-trendyol-products-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": {
          "listingUrls": {
            "title": "Category or brand URLs",
            "type": "array",
            "description": "Trendyol (Turkey) category or brand listing pages, e.g. https://www.trendyol.com/cep-telefonu-x-c103498 (category), https://www.trendyol.com/samsung-x-b794 (brand), https://www.trendyol.com/erkek-spor-ayakkabi-x-g2-c109 (gender + category) or https://www.trendyol.com/samsung-android-cep-telefonu-x-b794-c164461 (brand + category). The part after trendyol.com/ also works on its own (cep-telefonu-x-c103498). Add ?pi=3 to start at page 3. Products are read in Trendyol's default order. Keyword search URLs (/sr?q=), sorting (sst=) and price/attribute filter URLs are not accepted because Trendyol's robots.txt disallows them: open a category in your browser and paste its plain URL instead. A few brand pages (for example apple-x-b107) redirect to the search page, which robots.txt also disallows; they are skipped with a message.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs or IDs",
            "type": "array",
            "description": "Trendyol product pages (https://www.trendyol.com/samsung/galaxy-a16-128-gb-4-gb-ram-siyah-cep-telefonu-samsung-turkiye-garantili-p-881465224) or the numeric product ID after -p- (881465224). Each product is saved once per run.",
            "items": {
              "type": "string"
            }
          },
          "maxProductsPerListing": {
            "title": "Max products per category/brand URL",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many products to save from each category or brand URL, in Trendyol's default order (36 per page). Products already saved from an earlier URL in the same run are skipped and not charged. Sponsored placements that Trendyol shows inside the listing are included and flagged with sponsored = true.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include product details and all sellers' offers",
            "type": "boolean",
            "description": "Open each product page to add the barcode (GTIN), product code, full category path, exact favorite count, review count, stock, shipping fee and delivery time, attributes, size/colour variants with their barcodes, the buy-box seller (with company details for incorporated sellers) and every other seller's offer (price, free shipping, fast delivery, seller score). A product with details is charged as one product-detail event instead of a product event. Turn off for a fast listing-only scrape. A small share of product pages is served from a /pd/ address that robots.txt disallows; those products keep their listing data and are charged as a basic product.",
            "default": true
          },
          "includeReviews": {
            "title": "Include a review sample",
            "type": "boolean",
            "description": "Save a sample of each product's reviews as separate dataset items (type = review): the up to 20 top reviews shown on the product page plus the photo reviews shown on its review page (usually 15-22). This is a sample, not the full review history: Trendyol loads the rest from an API host that its robots.txt disallows. Reviewer names and IDs are never collected; e-mail addresses and phone numbers in review text are masked.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Upper limit of review items per product when the review sample is on. Each review is a separate review event. When the product page already provides enough top reviews, the review page is not requested.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy (datacenter) is on by default. Trendyol limits how many pages one IP may open per minute (it answers HTTP 429 after about 30), so the Actor keeps every IP below that limit and moves to a new proxy session when an IP's share is used up. That keeps runs fast and free of errors. If you turn the proxy off, the run uses its own IP at about 24 pages per minute (slower, same results); if Trendyol still refuses it, the Actor switches to Apify Proxy by itself. Residential proxies are not needed.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}