{
  "openapi": "3.0.1",
  "info": {
    "title": "Etsy Listings Scraper — Bulk Search, Ads & Organic Rank",
    "description": "Scrape Etsy search results for up to 50 keywords and 30 pages each. Export 36 fields per listing, including prices, shop metrics, sponsored placement, organic rank, badges, color variants, video, and localized market data.",
    "version": "0.0",
    "x-build-id": "313XohJZHsMjvReGH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/astravalabs~etsy-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-astravalabs-etsy-listings-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/astravalabs~etsy-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-astravalabs-etsy-listings-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/astravalabs~etsy-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-astravalabs-etsy-listings-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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords",
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "description": "List of search keywords to scrape.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max pages per keyword",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Number of Etsy search result pages to scrape per keyword. The first page is smaller; later pages yield ~64 listings each.",
            "default": 5
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "NZ",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "IE",
              "BE",
              "AT",
              "PT",
              "SE",
              "NO",
              "DK",
              "PL",
              "CH",
              "CZ",
              "HU",
              "RO",
              "BG",
              "HR",
              "JP",
              "SG",
              "HK",
              "IN",
              "IL",
              "ZA",
              "BR",
              "MX"
            ],
            "type": "string",
            "description": "ISO-3166 country code for localized search results and currency.",
            "default": "US"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Filter listings to this minimum price (in the selected country's currency)."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Filter listings to this maximum price (in the selected country's currency)."
          },
          "maxResults": {
            "title": "Max results per keyword",
            "minimum": 1,
            "type": "integer",
            "description": "Stop collecting listings for a keyword once this many are gathered. Leave empty for no cap."
          },
          "maxTotalResults": {
            "title": "Max total results per run",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the entire run after this many listings have been saved across all keywords. Leave empty for no run-wide cap."
          },
          "sortOrder": {
            "title": "Sort order",
            "enum": [
              "most_relevant",
              "price_asc",
              "price_desc",
              "highest_reviews",
              "date_desc"
            ],
            "type": "string",
            "description": "How to sort the search results.",
            "default": "most_relevant"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "all",
              "digital",
              "physical"
            ],
            "type": "string",
            "description": "Filter by listing type.",
            "default": "all"
          },
          "onSale": {
            "title": "On sale only",
            "type": "boolean",
            "description": "Return only discounted / sale listings.",
            "default": false
          },
          "freeShipping": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Return only listings that offer free shipping.",
            "default": false
          },
          "starSeller": {
            "title": "Star sellers only",
            "type": "boolean",
            "description": "Return only listings from Star Seller shops.",
            "default": false
          },
          "customizable": {
            "title": "Customizable only",
            "type": "boolean",
            "description": "Return only listings that accept customization.",
            "default": false
          },
          "etsyPick": {
            "title": "Etsy's pick only",
            "type": "boolean",
            "description": "Return only listings curated by Etsy (merch library).",
            "default": false
          },
          "excludeSponsored": {
            "title": "Exclude sponsored listings",
            "type": "boolean",
            "description": "Strip ad/sponsored listings from results. Sponsored listings are still fetched but not saved.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}