{
  "openapi": "3.0.1",
  "info": {
    "title": "BuiltWith Alternative — Tech Stack Leads & Lookup (60M)",
    "description": "BuiltWith alternative and tech stack lookup across 60M+ websites. Find Shopify and Klaviyo leads, stack gaps, lookalike companies and technology monitoring alerts. Export contacts, opportunity scores and migration signals for B2B sales.",
    "version": "0.13",
    "x-build-id": "NzvSDtaC42fIAPFms"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apivault_labs~tech-stack-lookup/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apivault_labs-tech-stack-lookup",
        "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/apivault_labs~tech-stack-lookup/runs": {
      "post": {
        "operationId": "runs-sync-apivault_labs-tech-stack-lookup",
        "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/apivault_labs~tech-stack-lookup/run-sync": {
      "post": {
        "operationId": "run-sync-apivault_labs-tech-stack-lookup",
        "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": {
          "mode": {
            "title": "🔀 Lookup mode",
            "enum": [
              "find",
              "detect",
              "lookalike",
              "monitor",
              "catalog"
            ],
            "type": "string",
            "description": "find requires technologies, technologyPreset or opportunityPreset; detect requires domains; lookalike requires seed domains; monitor requires domains and a stable monitorName; catalog needs no other input.",
            "default": "find"
          },
          "domains": {
            "title": "🌐 Domains to check",
            "uniqueItems": true,
            "type": "array",
            "description": "Required for detect, lookalike and monitor. Accepts hostnames or URLs. Unknown domains are skipped, so a successful run can return an empty dataset.",
            "items": {
              "type": "string"
            }
          },
          "monitorName": {
            "title": "🔔 Monitor name",
            "type": "string",
            "description": "Used in Monitor mode. Reuse the same name and domain list on scheduled runs to compare the current profile with the saved baseline.",
            "default": "my-tech-monitor"
          },
          "verifyLive": {
            "title": "🌐 Verify technologies live",
            "type": "boolean",
            "description": "Detect common technologies from the current public homepage and return confidence/evidence alongside the stored profile. Detect mode only; capped at 100 domains per run.",
            "default": false
          },
          "technologyPreset": {
            "title": "⚡ Popular technology preset",
            "enum": [
              "Shopify",
              "Shopify Plus",
              "WooCommerce",
              "WordPress",
              "Klaviyo",
              "HubSpot",
              "Stripe",
              "PayPal",
              "Mailchimp",
              "Salesforce",
              "Cloudflare",
              "Magento",
              "BigCommerce",
              "Yotpo",
              "Gorgias"
            ],
            "type": "string",
            "description": "Optional shortcut for a commonly requested technology. It is combined with custom Technologies below."
          },
          "opportunityPreset": {
            "title": "🎯 Sales opportunity preset",
            "enum": [
              "shopify_without_klaviyo",
              "klaviyo_without_yotpo",
              "mailchimp_replacement",
              "woocommerce_migration",
              "hubspot_without_klaviyo",
              "stripe_without_paypal"
            ],
            "type": "string",
            "description": "Optional ready-made stack-gap campaign. It automatically adds the required and missing technologies and produces an opportunity score plus suggested pitch."
          },
          "technologies": {
            "title": "✅ Technologies to include",
            "uniqueItems": true,
            "type": "array",
            "description": "Used in Find websites mode. Type each technology and press Enter. Examples: Klaviyo, Stripe, Shopify Plus, HubSpot, Cloudflare, PayPal, Mailchimp, Attentive, Yotpo, Gorgias. Use complete product names for precise results.",
            "items": {
              "type": "string"
            }
          },
          "matchMode": {
            "title": "🔗 Match logic",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "How to combine the technologies above. 'Any' = uses at least one of them (OR). 'All' = uses every one of them (AND, e.g. Shopify + Klaviyo).",
            "default": "any"
          },
          "excludeTechnologies": {
            "title": "🚫 Technologies to exclude",
            "uniqueItems": true,
            "type": "array",
            "description": "Sites using ANY of these are removed from the results. Example: find Klaviyo users that do NOT use Yotpo. Type each one and press Enter.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "🧩 Technology category",
            "enum": [
              "any",
              "ecommerce",
              "cms",
              "crm",
              "marketing",
              "payments",
              "hosting",
              "ai"
            ],
            "type": "string",
            "description": "Which part of the stack to search in. 'Any layer' searches all of them (recommended — a tool can appear in more than one, e.g. HubSpot as CRM and marketing).",
            "default": "any"
          },
          "country": {
            "title": "🌍 Countries (ISO-2)",
            "uniqueItems": true,
            "type": "array",
            "description": "One or more ISO-2 country codes, e.g. US, DE, GB. Type each code and press Enter. Empty — no country filter.",
            "items": {
              "type": "string"
            }
          },
          "vertical": {
            "title": "🏷️ Industry / vertical",
            "type": "string",
            "description": "Keep only sites in this industry, e.g. Fashion, Technology, Health, or Food. Leave empty to include every industry."
          },
          "hasEmail": {
            "title": "📧 Only websites with email",
            "type": "boolean",
            "description": "Keep only sites where the Emails field is not empty.",
            "default": false
          },
          "hasPhone": {
            "title": "📞 Only websites with phone",
            "type": "boolean",
            "description": "Keep only sites where the Telephones field is not empty.",
            "default": false
          },
          "newWithinDays": {
            "title": "🆕 First indexed within days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Return websites first added to the index within the last N days. Use 7 for a weekly new-lead feed. Set 0 to disable.",
            "default": 0
          },
          "lastIndexedWithinDays": {
            "title": "🔄 Re-indexed within days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep websites whose record was indexed within the last N days. Useful for recently refreshed data. Set 0 to disable.",
            "default": 0
          },
          "lastFoundWithinDays": {
            "title": "✅ Last confirmed within days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep websites last observed within the previous N days. Use this to prefer recently confirmed leads. Set 0 to disable.",
            "default": 0
          },
          "sortBy": {
            "title": "📊 Sort results by",
            "enum": [
              "Overall Score",
              "Tranco",
              "Page Rank",
              "Sales Revenue",
              "Employees",
              "Technology Spend",
              "SKU",
              "Performance",
              "SEO",
              "First Indexed",
              "Last Indexed",
              "Last Found"
            ],
            "type": "string",
            "description": "Order rows by this column before applying the limit, so you get the top leads instead of an arbitrary slice. Empty — no ordering."
          },
          "sortDesc": {
            "title": "⬇️ Highest values first",
            "type": "boolean",
            "description": "Highest values first (recommended for scores/traffic/revenue).",
            "default": true
          },
          "dedupeByDomain": {
            "title": "🧹 Remove duplicate domains",
            "type": "boolean",
            "description": "Return each normalized Root Domain only once across all data segments. Recommended for lead exports.",
            "default": true
          },
          "countOnly": {
            "title": "🔢 Preview audience size only",
            "type": "boolean",
            "description": "Preview stored in COUNT_SUMMARY without per-result charges. Actor start and platform usage may still apply. Counts matching segment rows; the same domain may occur in multiple segments, so this is an upper bound for unique websites.",
            "default": false
          },
          "maxItems": {
            "title": "📦 Maximum websites",
            "minimum": 1,
            "maximum": 250000,
            "type": "integer",
            "description": "Upper limit on returned rows per run (across all platforms combined). Max 250000. Need more than one run's worth? There is no total cap — use Offset to page through unlimited results across runs.",
            "default": 50
          },
          "offset": {
            "title": "➡️ Offset (skip first N)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip the first N matching rows, then return the next batch. Use it to export more than one run allows: run 1 with Offset 0, run 2 with Offset = the rows you already got, and so on. Set a Sort by column for stable pagination.",
            "default": 0
          },
          "columns": {
            "title": "🗂️ Output columns",
            "uniqueItems": true,
            "type": "array",
            "description": "Choose the fields to export. Leave empty for all 59 available fields. Each website is returned as one result row.",
            "items": {
              "type": "string",
              "enum": [
                "Root Domain",
                "Location on Site",
                "Primary Domain",
                "Technology Spend",
                "Sales Revenue",
                "Social",
                "Employees",
                "SKU",
                "Company",
                "Vertical",
                "Tranco",
                "Page Rank",
                "Majestic",
                "Umbrella",
                "Overall Score",
                "Performance",
                "Accessibility",
                "SEO",
                "Best Practices",
                "Telephones",
                "Emails",
                "X",
                "Twitter",
                "TikTok",
                "Weibo",
                "Threads",
                "Facebook",
                "LinkedIn",
                "Google",
                "Pinterest",
                "GitHub",
                "Instagram",
                "Vk",
                "Vimeo",
                "YouTube",
                "People",
                "Ticker",
                "Verified Profiles",
                "City",
                "State",
                "Zip",
                "Country",
                "First Detected",
                "Last Found",
                "First Indexed",
                "Last Indexed",
                "eCommerce Platform",
                "CMS Platform",
                "CRM Platform",
                "Marketing Automation Platform",
                "Payment Platforms",
                "CRuX Rank",
                "Cloudflare Rank",
                "Agency",
                "Has Ads",
                "Hosting Provider",
                "AI",
                "Exclusion",
                "Compliance",
                "Matched Technologies",
                "Matched Categories",
                "Technology Count",
                "Technology Fit Score",
                "Contactability Score",
                "Lead Tier",
                "Why This Lead",
                "Data Age Days",
                "Similarity Score",
                "Shared Technologies",
                "Opportunity Type",
                "Missing Technologies",
                "Opportunity Score",
                "Signal Strength",
                "Suggested Pitch",
                "Live Verification Status",
                "Live HTTP Status",
                "Live Technologies",
                "Live Technology Categories",
                "Live Confidence",
                "Live Evidence",
                "Live Final URL",
                "Live Checked At",
                "Live Added Technologies"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}