{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Tech Stack Detector - CMS, Analytics, Frameworks, CDN",
    "description": "Detect the technology stack of websites (Wappalyzer/BuiltWith alternative). Input: URLs or domains; optional category filter. Returns per site: CMS, ecommerce, analytics, frameworks, CDN, server and payment processors with versions and confidence, from 7,600+ fingerprints. No API key.",
    "version": "1.0",
    "x-build-id": "2des0T6CMccReplus"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kadi_bence~tech-stack-detector/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kadi_bence-tech-stack-detector",
        "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/kadi_bence~tech-stack-detector/runs": {
      "post": {
        "operationId": "runs-sync-kadi_bence-tech-stack-detector",
        "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/kadi_bence~tech-stack-detector/run-sync": {
      "post": {
        "operationId": "run-sync-kadi_bence-tech-stack-detector",
        "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": {
          "urls": {
            "title": "Websites (URLs or domains)",
            "description": "Websites to analyse: a JSON list like [\"example.com\", \"https://example.com/shop\"], or one string (\"example.com\", or several separated by commas or new lines). https:// is added when missing (with fallbacks to www. and http://). Duplicates are skipped. Max 100,000 per run. Also accepted under the aliases url, startUrls (strings or {\"url\": ...} objects), domains, domain, websites, website."
          },
          "onlyCategories": {
            "title": "Only these categories",
            "type": "array",
            "description": "Return only technologies in these categories, e.g. CMS, Ecommerce, Analytics. Leave empty for all 100+ categories. Sites with nothing found in your categories are not charged.",
            "items": {
              "type": "string",
              "enum": [
                "A/B Testing",
                "Accessibility",
                "Accounting",
                "Advertising",
                "Affiliate programs",
                "Analytics",
                "Appointment scheduling",
                "Artificial Intelligence",
                "Augmented reality",
                "Authentication",
                "Blogs",
                "Browser fingerprinting",
                "Buy now pay later",
                "Caching",
                "Cart abandonment",
                "CDN",
                "CI",
                "CMS",
                "Comment systems",
                "Containers",
                "Content curation",
                "Control systems",
                "Cookie compliance",
                "CRM",
                "Cross border ecommerce",
                "Cryptominers",
                "Customer data platform",
                "Database managers",
                "Databases",
                "Development",
                "Digital asset management",
                "DMS",
                "Documentation",
                "Domain parking",
                "Drupal themes",
                "Ecommerce",
                "Ecommerce frontends",
                "Editors",
                "Email",
                "Feature management",
                "Feed readers",
                "Font scripts",
                "Form builders",
                "Fulfilment",
                "Fundraising & donations",
                "Geolocation",
                "Hosting",
                "Hosting panels",
                "IaaS",
                "Issue trackers",
                "JavaScript frameworks",
                "JavaScript graphics",
                "JavaScript libraries",
                "Live chat",
                "Livestreaming",
                "LMS",
                "Load balancers",
                "Loyalty & rewards",
                "Maps",
                "Marketing automation",
                "Media servers",
                "Message boards",
                "Miscellaneous",
                "Mobile frameworks",
                "Network devices",
                "Network storage",
                "Operating systems",
                "PaaS",
                "Page builders",
                "Payment processors",
                "Performance",
                "Personalisation",
                "Photo galleries",
                "Programming languages",
                "Recruitment & staffing",
                "Referral marketing",
                "Remote access",
                "Reservations & delivery",
                "Retargeting",
                "Returns",
                "Reverse proxies",
                "Reviews",
                "Rich text editors",
                "RUM",
                "Search engines",
                "Security",
                "Segmentation",
                "SEO",
                "Shipping carriers",
                "Shopify apps",
                "Shopify themes",
                "SSL/TLS certificate authorities",
                "Static site generator",
                "Surveys",
                "Tag managers",
                "Ticket booking",
                "Translation",
                "UI frameworks",
                "User onboarding",
                "Video players",
                "Web frameworks",
                "Web server extensions",
                "Web servers",
                "Webcams",
                "Webmail",
                "Widgets",
                "Wikis",
                "WordPress plugins",
                "WordPress themes"
              ]
            }
          },
          "includeVersions": {
            "title": "Include versions",
            "type": "boolean",
            "description": "Add the version number when the site exposes it (e.g. WordPress 7.2, jQuery 3.6.0).",
            "default": true
          },
          "includeEvidence": {
            "title": "Include evidence",
            "type": "boolean",
            "description": "Add up to 5 \"evidence\" strings per technology showing what matched (header, script URL, meta tag, cookie...), e.g. scriptSrc: https://cdn.shopify.com/... Useful to audit detections; makes the dataset bigger.",
            "default": false
          },
          "minConfidence": {
            "title": "Minimum confidence (0-100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Hide technologies detected with a lower confidence score. Most detections are 100; weaker signals (e.g. a generic script name) score 25-75. Example: 75 for a stricter list.",
            "default": 0
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "1 = only the URL you give (usually the homepage), fastest. 2-10 = also analyse a few same-site pages linked from it (pricing, shop, blog...), which finds tools that are loaded only on inner pages. You still pay once per website. Example: 3",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Parallel websites",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many websites are analysed at the same time. Each website is still fetched politely (robots.txt, crawl-delay). Example: 20-50 for large lists.",
            "default": 10
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "Give up on a slow website after this many seconds (one retry on 429/5xx answers). Pages are read up to 3 MB.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually not needed. If some sites answer 403 \"blocked\", you can try Apify Proxy (datacenter). Residential proxies are not supported.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}