{
  "openapi": "3.0.1",
  "info": {
    "title": "Shopify Store Emails - Leads & Contacts from Domains",
    "description": "Shopify store emails from a domain list: public business email, phone, socials and tech stack per store; WooCommerce stores too. Non-Shopify or no-contact domains are not charged.",
    "version": "0.1",
    "x-build-id": "U2xdol1FTa0X1QbY3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pennydata~shopify-store-leads-contacts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pennydata-shopify-store-leads-contacts",
        "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/pennydata~shopify-store-leads-contacts/runs": {
      "post": {
        "operationId": "runs-sync-pennydata-shopify-store-leads-contacts",
        "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/pennydata~shopify-store-leads-contacts/run-sync": {
      "post": {
        "operationId": "run-sync-pennydata-shopify-store-leads-contacts",
        "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": {
          "domains": {
            "title": "Store domains",
            "type": "array",
            "description": "Shopify store domains or URLs (bare domains like allbirds.com are accepted; scheme, www and trailing slash are normalised and duplicates removed). Sites that are neither Shopify nor WooCommerce are skipped and not charged. Alias fields stores, storeUrls, startUrls and urls are also accepted.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "skipDomains": {
            "title": "Skip domains",
            "type": "array",
            "description": "Domains to leave out (for example stores you already contacted). Same normalisation as the list above. Skipped domains are not processed and not charged.",
            "items": {
              "type": "string"
            }
          },
          "includeProductStats": {
            "title": "Product count and price range",
            "type": "boolean",
            "description": "Read the store's public /products.json to count products and get price range, top vendors.",
            "default": true
          },
          "maxProductPages": {
            "title": "Max product pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Pages of 250 products to read per store. Counts reaching the limit are flagged as a lower bound.",
            "default": 4
          },
          "includeTechnologies": {
            "title": "Detect technologies",
            "type": "boolean",
            "description": "List analytics, CDN and other technologies detected on the homepage.",
            "default": true
          },
          "includePersonalEmails": {
            "title": "Include non-role emails",
            "type": "boolean",
            "description": "By default only shared business mailboxes (info@, support@, hello@, sales@...) are returned. Enable to also return other addresses a store publishes.",
            "default": false
          },
          "maxEmailsPerSite": {
            "title": "Max emails per store",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Optional. Keep at most this many emails per store. Empty = all found."
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip pages disallowed for all bots in the store's robots.txt. Shopify's default robots.txt blocks /policies/, so contact details come from the homepage and /pages/contact.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Stores processed in parallel (1-20).",
            "default": 2
          },
          "timeoutSecs": {
            "title": "Request timeout (s)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "Per-request timeout in seconds (5-60).",
            "default": 20
          },
          "maxDomains": {
            "title": "Max domains",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Process at most this many domains from the list. Empty = 500. The aliases maxItems, MAX_ITEMS and maxResults (used by other Shopify actors) are also accepted."
          },
          "priceWatchMode": {
            "title": "Price watch mode (discounts)",
            "type": "boolean",
            "description": "Instead of contact leads, read each Shopify store's public /products.json and output one row per variant with price, compare_at_price and discount percent. Use it to track Black Friday / Cyber Monday discounts. One store-lead event ($0.0015) per store that returns rows.",
            "default": false
          },
          "onlyOnSale": {
            "title": "Only discounted variants",
            "type": "boolean",
            "description": "Price watch mode: keep only variants whose compare_at_price is higher than price.",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Minimum discount %",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Price watch mode: keep only variants discounted by at least this percent."
          },
          "minLeadScore": {
            "title": "Minimum lead score (0-100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Optional. Stores scoring below this leadScore are left out of the dataset and are not charged. Empty or 0 = keep every store."
          },
          "maxCostUsd": {
            "title": "Max cost (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Optional spend cap for this run's store-lead events ($0.0015 each). Empty = no cap beyond the run's Console max cost."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}