{
  "openapi": "3.0.1",
  "info": {
    "title": "Etsy Scraper — Products, Prices, Shops & Reviews",
    "description": "Scrape Etsy products by keyword, category, shop or product URL. Price, sale price, discount, shop rating, Star Seller and ad flags; optional full details: description, images, stock, variations, shipping, returns, favorites, reviews. 22 marketplaces.",
    "version": "0.0",
    "x-build-id": "uaACesBr90VJo0iOs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~etsy-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-etsy-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/unfenced-group~etsy-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-etsy-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/unfenced-group~etsy-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-etsy-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search on Etsy, one per line, for example \"linen apron\" or \"ceramic mug\". Each keyword is read from Etsy's public keyword page for that term and returns up to Max products per source.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Etsy URLs",
            "type": "array",
            "description": "Etsy pages to scrape. Supported: category pages (https://www.etsy.com/c/jewelry), keyword pages (https://www.etsy.com/market/linen_apron), search pages (converted to the keyword page), shop pages (https://www.etsy.com/shop/ShopName) and product pages (https://www.etsy.com/listing/1042603482). Locale URLs such as /uk/ or /de-en/ keep their local currency.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "us",
              "uk",
              "ca",
              "au",
              "ie",
              "nz",
              "de",
              "fr",
              "nl",
              "it",
              "es",
              "be",
              "at",
              "ch",
              "se",
              "dk",
              "no",
              "fi",
              "pl",
              "pt",
              "in",
              "sg"
            ],
            "type": "string",
            "description": "Which Etsy country site to read for search keywords, which sets the currency of prices. Start URLs keep the country in their own path.",
            "default": "us"
          },
          "maxItems": {
            "title": "Max products per source",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of products to save for each search keyword and each start URL. Use 0 for no limit (a category holds up to about 16,000 products).",
            "default": 100
          },
          "fetchDetails": {
            "title": "Fetch full product details",
            "type": "boolean",
            "description": "Open every product page for the full description, all images and video, stock quantity, variations, materials, shipping cost, ships-from location, delivery estimate, returns policy, production partners, recent purchases, rating, recent reviews and shop sales. Slower (about 20 to 40 seconds per product, run in parallel) and charged at the product-with-details rate.",
            "default": false
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep products priced at or above this amount, in the marketplace currency."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep products priced at or below this amount, in the marketplace currency."
          },
          "onlyOnSale": {
            "title": "Only products on sale",
            "type": "boolean",
            "description": "Only keep products that show a discount against their original price.",
            "default": false
          },
          "freeShippingOnly": {
            "title": "Only free shipping",
            "type": "boolean",
            "description": "Only keep products that ship for free to the marketplace country.",
            "default": false
          },
          "starSellerOnly": {
            "title": "Only Star Sellers",
            "type": "boolean",
            "description": "Only keep products from shops with Etsy's Star Seller badge.",
            "default": false
          },
          "excludeAds": {
            "title": "Exclude sponsored products",
            "type": "boolean",
            "description": "Leave out products placed on the page as Etsy Ads. Keep them to see which shops advertise on a keyword.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only new and changed products",
            "type": "boolean",
            "description": "Only save products that are new since earlier runs or whose price changed. Use with scheduled runs for price and assortment monitoring.",
            "default": false
          },
          "detailCacheDays": {
            "title": "Reuse product pages up to (days)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "With full details on, a product page read by an earlier run in your account is reused if it is at most this many days old and the product's price has not changed. Rows from the cache carry detailCachedAt. Set 0 to always read product pages fresh.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}