{
  "openapi": "3.0.1",
  "info": {
    "title": "Trendyol Scraper - Turkey Product Prices & Ratings",
    "description": "Scrape Trendyol.com products: name, brand, merchant, category, price, was-price, discount, lowest recent price, rating, review count, free-cargo and fast-delivery flags and badges. Independent tool, not affiliated with Trendyol.",
    "version": "0.1",
    "x-build-id": "ZegfQNM755eQWJMRw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~trendyol-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-trendyol-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/scrapesage~trendyol-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-trendyol-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/scrapesage~trendyol-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-trendyol-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": {
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Which Trendyol categories to scrape. Every value was requested live and returned products. Trendyol refuses keyword-search URLs (/sr?q=...), so browsing by category is the supported way in - paste your own category URL below if the one you want is not listed.",
            "items": {
              "type": "string",
              "enum": [
                "laptop",
                "mobile-phone",
                "electronics",
                "computer-tablet",
                "tablet",
                "headphones",
                "tv-audio",
                "white-goods",
                "womens-clothing",
                "shoes-bags",
                "watch-accessory",
                "cosmetics",
                "home-furniture",
                "mother-baby",
                "books-hobby"
              ],
              "enumTitles": [
                "Laptops (laptop)",
                "Mobile phones (mobile-phone)",
                "Electronics (electronics)",
                "Computers & tablets (computer-tablet)",
                "Tablets (tablet)",
                "Headphones (headphones)",
                "Televisions (tv-audio)",
                "White goods (white-goods)",
                "Womens clothing (womens-clothing)",
                "Shoes & bags (shoes-bags)",
                "Watches (watch-accessory)",
                "Cosmetics (cosmetics)",
                "Home & furniture (home-furniture)",
                "Mother, baby & child (mother-baby)",
                "Books (books-hobby)"
              ]
            }
          },
          "startUrls": {
            "title": "Trendyol URLs",
            "type": "array",
            "description": "Trendyol CATEGORY pages to scrape instead of (or as well as) the categories above - for example https://www.trendyol.com/laptop-x-c103108. Paste them, link a text file, or upload one. Keyword-search URLs (/sr?q=...) are refused by Trendyol and will return nothing.",
            "items": {
              "type": "object"
            }
          },
          "urlsFromFile": {
            "title": "Trendyol URLs from a file or pasted list",
            "type": "string",
            "description": "Paste a block of Trendyol URLs (one per line), or give ONE link to a .txt/.csv file, a Google Sheet, a Drive file or an Apify key-value-store record holding them."
          },
          "language": {
            "title": "Language",
            "enum": [
              "tr",
              "en",
              "ar"
            ],
            "type": "string",
            "description": "Which language Trendyol should render. Turkish is the native storefront and returns the most complete results."
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "default",
              "price_asc",
              "price_desc",
              "newest",
              "best_seller",
              "rating"
            ],
            "type": "string",
            "description": "How Trendyol should order the results."
          },
          "maxPagesPerQuery": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many result pages to walk for each search term or URL. Trendyol serves 36 products per page and paginates properly.",
            "default": 3
          },
          "maxResults": {
            "title": "Max products in total",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Overall cap across every search. 0 means no cap.",
            "default": 0
          },
          "minPrice": {
            "title": "Min price (TL)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep products at or above this price in Turkish lira. Filtered products are not charged."
          },
          "maxPrice": {
            "title": "Max price (TL)",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep products at or below this price in Turkish lira. Filtered products are not charged."
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Only keep products rated at or above this (1-5). Products with no rating yet are excluded. Filtered products are not charged."
          },
          "minRatingCount": {
            "title": "Min review count",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep products with at least this many reviews - useful for filtering out unproven listings. Filtered products are not charged."
          },
          "minDiscountPercent": {
            "title": "Min discount %",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only keep products discounted by at least this percentage against their was-price. Filtered products are not charged."
          },
          "onlyFreeCargo": {
            "title": "Only free cargo",
            "type": "boolean",
            "description": "Keep only products with free shipping. Filtered products are not charged.",
            "default": false
          },
          "onlyOnSale": {
            "title": "Only products on sale",
            "type": "boolean",
            "description": "Keep only products showing a was-price above the current price. Filtered products are not charged.",
            "default": false
          },
          "outputFields": {
            "title": "Output fields",
            "type": "array",
            "description": "Pick exactly the columns you want. Leave empty for every field. The list is generated from the Actor's own record builder.",
            "items": {
              "type": "string",
              "enum": [
                "type",
                "productId",
                "contentId",
                "itemNumber",
                "listingId",
                "url",
                "name",
                "brand",
                "brandId",
                "categoryName",
                "categoryId",
                "merchantId",
                "price",
                "priceText",
                "wasPrice",
                "discountPercent",
                "isOnSale",
                "suggestedPrice",
                "lowestRecentPrice",
                "lowestRecentPriceChange",
                "promotionPrice",
                "promotionDiscountPercent",
                "isPriceDiscounted",
                "currency",
                "rating",
                "ratingCount",
                "freeCargo",
                "rushDelivery",
                "sameDayShipping",
                "nextDayDelivery",
                "badges",
                "campaignTags",
                "promotions",
                "hasOfficialSellerBadge",
                "hasCollectableCoupon",
                "isSponsored",
                "images",
                "imageCount",
                "searchQuery",
                "sourceUrl",
                "page",
                "scrapedAt"
              ],
              "enumTitles": [
                "Record type (type)",
                "Product ID (productId)",
                "Content ID (contentId)",
                "Item number (itemNumber)",
                "Listing ID (listingId)",
                "Product URL (url)",
                "Product name (name)",
                "Brand (brand)",
                "Brand ID (brandId)",
                "Category (categoryName)",
                "Category ID (categoryId)",
                "Merchant ID (merchantId)",
                "Price (price)",
                "Price (as shown) (priceText)",
                "Was price (wasPrice)",
                "Discount % (discountPercent)",
                "On sale (isOnSale)",
                "Suggested retail price (suggestedPrice)",
                "Lowest recent price (lowestRecentPrice)",
                "Change vs lowest recent (lowestRecentPriceChange)",
                "Promotion price (promotionPrice)",
                "Promotion discount % (promotionDiscountPercent)",
                "Price is discounted (isPriceDiscounted)",
                "Currency (currency)",
                "Rating (rating)",
                "Review count (ratingCount)",
                "Free cargo (freeCargo)",
                "Rush delivery (rushDelivery)",
                "Same-day shipping (sameDayShipping)",
                "Next-day delivery (nextDayDelivery)",
                "Badges (badges)",
                "Campaign tags (campaignTags)",
                "Promotions (promotions)",
                "Official seller (hasOfficialSellerBadge)",
                "Collectable coupon (hasCollectableCoupon)",
                "Sponsored (isSponsored)",
                "Images (images)",
                "Image count (imageCount)",
                "Category (searchQuery)",
                "Source URL (sourceUrl)",
                "Result page (page)",
                "Scraped at (scrapedAt)"
              ]
            }
          },
          "monitorMode": {
            "title": "Monitor mode - only new products",
            "type": "boolean",
            "description": "Remember which products this Actor has already returned and emit only ones it has not seen before. Ideal on a schedule for new-arrival or price alerts. Already-seen products are skipped and never charged.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store that holds the monitor's memory. Use different names to track different searches independently.",
            "default": "trendyol-monitor"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}