{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Merchant Scraper: Verified Contacts & Lead Rating",
    "description": "Shopify Merchant Scraper finds Shopify store owners and merchants, extracting verified business contacts, emails, store details, social profiles, and lead ratings. Build targeted ecommerce lead lists for sales, outreach, prospecting, and market research.",
    "version": "0.1",
    "x-build-id": "bDqVSHTuDyLObR5qx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/api-empire~shopify-merchant-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-api-empire-shopify-merchant-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/api-empire~shopify-merchant-scraper/runs": {
      "post": {
        "operationId": "runs-sync-api-empire-shopify-merchant-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/api-empire~shopify-merchant-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-api-empire-shopify-merchant-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": {
          "prospectUrls": {
            "title": "🏬 Storefront URLs to qualify",
            "type": "array",
            "description": "One or more Shopify storefront URLs (e.g. `https://kyliecosmetics.com/`). Bulk paste, upload a list, or pipe from another actor.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔁 Store URLs (legacy field)",
            "type": "array",
            "description": "Kept so input files built for the base Shopify Merchant Scraper keep working unchanged. Used only when 'prospectUrls' above is empty.",
            "items": {
              "type": "string"
            }
          },
          "maxLeads": {
            "title": "📈 Max leads to qualify",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on how many of the provided store URLs will be processed. Use this to keep small test runs cheap."
          },
          "maxItems": {
            "title": "🔁 Max stores (legacy field)",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Legacy alias of 'maxLeads', kept for input files built for the base actor. Used only when 'maxLeads' above is not set.",
            "default": 100
          },
          "concurrency": {
            "title": "⚙️ Parallel stores in flight",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many storefronts are scraped at the same time. Higher = faster, but more likely to trigger a store's own rate limiting.",
            "default": 10
          },
          "requestDelay": {
            "title": "⏱️ Delay between requests (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "A small polite pause between requests to the same storefront.",
            "default": 0.5
          },
          "includeVerifiedIdentity": {
            "title": "🏬 Include verified merchant-identity block",
            "type": "boolean",
            "description": "Adds myshopifyDomain, merchantName, merchantDescription, merchantCity/Province, publishedProductsCount/publishedCollectionsCount, shipsToCountries, acceptedCardBrands, theme identity and a basic installed-app inventory — all read from the same request the actor already makes for currency, at zero extra cost.",
            "default": true
          },
          "includeLeadRating": {
            "title": "⭐ Compute lead-quality score",
            "type": "boolean",
            "description": "Adds a non-AI, non-fabricated 0-100 leadQualityScore and a cold/warm/hot leadQualityLabel, derived only from confirmed-real signals already on the row: published email, published phone, number of social platforms linked, and whether the storefront is open.",
            "default": true
          },
          "minLeadQuality": {
            "title": "🎚️ Minimum lead quality to keep",
            "enum": [
              "any",
              "warm",
              "hot"
            ],
            "type": "string",
            "description": "Drop rows below this quality tier from the dataset. Only takes effect when the score above is on.",
            "default": "any"
          },
          "requireContactInfo": {
            "title": "📇 Only keep contactable leads",
            "type": "boolean",
            "description": "When on, a row is only kept in the dataset if the store published a usable email or phone number.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Use Apify Proxy, custom proxy URLs, or no proxy.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}