{
  "openapi": "3.0.1",
  "info": {
    "title": "Etsy Shop Scraper: Listings, Reviews & Sales",
    "description": "Scrape any Etsy shop: a profile with total sales, ratings, followers and seller contact details, every listing with live in-cart counts, tags and 24h sales, or all shop reviews. Paste shop URLs or names. No login. Export to JSON, CSV or Excel.",
    "version": "0.0",
    "x-build-id": "4WrH6vzyjRUeZDKCb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/epicscrapers~etsy-shop-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-epicscrapers-etsy-shop-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/epicscrapers~etsy-shop-scraper/runs": {
      "post": {
        "operationId": "runs-sync-epicscrapers-etsy-shop-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/epicscrapers~etsy-shop-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-epicscrapers-etsy-shop-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",
        "required": [
          "shops"
        ],
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "listings",
              "profiles",
              "reviews"
            ],
            "type": "string",
            "description": "Listings: one row per active listing. Profiles: one row per shop with sales, ratings, followers, policies and more. Reviews: one row per review received.",
            "default": "listings"
          },
          "maxResultsPerShop": {
            "title": "Max results per shop",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listings or reviews saved per shop. Set to 0 for no limit. Ignored in Profiles mode.",
            "default": 100
          },
          "shops": {
            "title": "Shops",
            "type": "array",
            "description": "Etsy shops to scrape. Each entry can be a shop URL (https://www.etsy.com/shop/CaitlynMinimalist), a shop name (CaitlynMinimalist) or a numeric shop ID (10204022).",
            "items": {
              "type": "string"
            }
          },
          "includeContactInfo": {
            "title": "Include seller contact details",
            "type": "boolean",
            "description": "Profiles mode only. Adds the trader contact details Etsy publishes for registered business sellers (name, email, phone, address, VAT number). Many shops have none. Charged as a separate event only for shops where contact details are returned. This is personal data: you are responsible for using it lawfully (e.g. GDPR, CAN-SPAM).",
            "default": false
          },
          "listingsSortOrder": {
            "title": "Sort listings by",
            "enum": [
              "relevance",
              "date_desc",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Listings mode only. Order in which listings are collected. Matters when Max results per shop is lower than the shop's listing count.",
            "default": "relevance"
          },
          "listingsSearchQuery": {
            "title": "Search within shop",
            "type": "string",
            "description": "Listings mode only. Only return listings in the shop that match this keyword."
          },
          "listingsSectionId": {
            "title": "Shop section ID",
            "type": "string",
            "description": "Listings mode only. Only return listings from this shop section. Section IDs are in the sections field of a shop profile, or in the section_id= parameter of a shop URL."
          },
          "includeListingDetails": {
            "title": "Include listing details",
            "type": "boolean",
            "description": "Listings mode only. Adds tags, materials, full description, all images, variations with prices, favorites, listing rating, category, shipping cost and \"bought in the last 24 hours\" count. Makes one extra request per listing, so runs are slower, and is charged as a separate event per listing.",
            "default": false
          },
          "reviewsSortOrder": {
            "title": "Sort reviews by",
            "enum": [
              "Recency",
              "Relevancy",
              "Highest",
              "Lowest"
            ],
            "type": "string",
            "description": "Reviews mode only.",
            "default": "Recency"
          },
          "reviewsRatings": {
            "title": "Star ratings",
            "type": "array",
            "description": "Reviews mode only. Only return reviews with these star ratings. Leave empty for all ratings.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "reviewsTopic": {
            "title": "Review topic",
            "enum": [
              "",
              "quality",
              "shipping",
              "customer_service"
            ],
            "type": "string",
            "description": "Reviews mode only. Only return reviews Etsy tags as mentioning this topic.",
            "default": ""
          },
          "reviewsWithPhotosOnly": {
            "title": "Only reviews with photos",
            "type": "boolean",
            "description": "Reviews mode only.",
            "default": false
          },
          "reviewsWithVideosOnly": {
            "title": "Only reviews with videos",
            "type": "boolean",
            "description": "Reviews mode only.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}