# Tech Stack Detector — Wappalyzer Alternative for Any Website (`intelscrape/tech-stack-detector`) Actor

Tech Stack Detector: find the CMS, ecommerce platform, analytics, ad pixels, frameworks, CDN, hosting, payment and marketing tools of any website in bulk, with versions and categories, using 3,000+ open-source fingerprints. Plus emails, phones and socials. No API key. Pay per site.

- **URL**: https://apify.com/intelscrape/tech-stack-detector.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Lead generation, SEO tools, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Tech Stack Detector — Wappalyzer Alternative for Any Website

![Tech Stack Detector — Wappalyzer Alternative for Any Website](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/tech-stack-detector-banner.png)

🇨🇳 **网站技术栈检测器**：批量识别任意网站使用的 CMS、电商平台、统计分析、广告像素、前端框架、CDN、主机、支付和营销工具，附带版本和分类，基于 3000 多条开源指纹。还会提取邮箱、电话和社交账号。无需 API 密钥，按网站付费。

🇸🇬 **Pengesan Tech Stack**: kenal pasti CMS, platform e-dagang, analitik, piksel iklan, rangka kerja, CDN dan hos bagi senarai laman web, dengan versi, serta e-mel dan media sosial. Tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%242%20per%201K%20sites-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20site-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![fingerprints](https://img.shields.io/badge/fingerprints-3%2C000%2B-orange)

**Bulk website technology lookup: CMS, ecommerce, analytics, ad pixels, frameworks, CDN, hosting and payments with versions, plus emails and socials for outreach.**

> **Honest coverage & billing:** No JavaScript execution: technologies only visible at runtime may be missed. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is Tech Stack Detector?

Knowing what a website is built with tells you who to sell to and how. Agencies hunt WordPress sites on old versions, app makers want every Shopify store, ad-tech sellers look for sites without a Meta Pixel, and security teams need to know which servers run outdated software. **Tech Stack Detector** is a Wappalyzer and BuiltWith alternative that scans any list of websites with 3,000+ open-source fingerprints and returns a clean technology profile per site, with the contact details to act on it.

### What does it do?

- **3,000+ technologies** from the maintained open-source Wappalyzer fingerprint set, refreshed every run
- **Versions & confidence** where the site exposes them (e.g. WordPress 6.6, jQuery 3.7)
- **Grouped fields**: cms, ecommerce, analytics, tagManagers, advertising, frameworks, cdn, hosting, webServers, marketingAutomation, liveChat, payment, security
- **Full detail**: every technology with categories, website, SaaS flag and pricing model
- **Contact details (on by default)**: emails, phone links and social profiles (Facebook, Instagram, LinkedIn, X, YouTube, TikTok, GitHub)
- **Bulk & fast**: plain HTTP, no browser, 6 sites in parallel

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **Agencies & freelancers**: find sites on a platform you specialise in and pitch them
- **SaaS & app sales**: build lists of Shopify, WooCommerce, HubSpot or Webflow users
- **Ad-tech & analytics sellers**: find sites missing GA4, a tag manager or a Meta Pixel
- **Competitive intelligence**: see what tools competitors use
- **Security & IT**: inventory web servers, CMS versions and CDNs across a portfolio
- **Investors & market research**: measure technology adoption across a market

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~tech-stack-detector/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["shopify.com", "wordpress.org", "apify.com"], "contactDetails": true}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/tech-stack-detector").call(run_input={"domains": ["shopify.com", "wordpress.org", "apify.com"], "contactDetails": true})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/tech-stack-detector with the default input and summarise the results."*

### Input examples

**Three sites with contacts (default)**

```json
{
  "domains": ["shopify.com", "wordpress.org", "apify.com"],
  "contactDetails": true
}
```

**Bulk technology-only scan**

```json
{
  "domains": ["example-store1.com", "example-store2.com", "https://www.example.org/shop"],
  "contactDetails": false
}
```

### Output fields

| Field | Description |
|---|---|
| `domain / inputUrl / finalUrl / httpStatus / title` | Site identity |
| `technologyCount` | Number of technologies found |
| `cms / ecommerce / analytics / tagManagers / advertising / frameworks` | Grouped technology names |
| `cdn / hosting / webServers / marketingAutomation / liveChat / payment / security` | More groups |
| `technologies[]` | name, version, confidence, implied, categories, website, saas, pricing |
| `byCategory` | Every category with its technologies |
| `emails / phones / socials` | Contact details (when on) |
| `scannedAt` | Scan time |

#### Sample output

```json
{
  "domain": "wordpress.org",
  "httpStatus": 200,
  "technologyCount": 9,
  "cms": ["WordPress"],
  "webServers": ["Nginx"],
  "frameworks": [],
  "technologies": [
    { "name": "WordPress", "version": null, "confidence": 100, "categories": ["CMS", "Blogs"] },
    { "name": "PHP", "implied": true, "categories": ["Programming languages"] }
  ],
  "socials": { "x": "https://x.com/WordPress" }
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Site scanned** | per website profiled | $0.002 |
| **Contact details** | per website with emails/phones/socials (on by default; turn off to skip) | $0.001 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 3 sites with contacts | $0.014 |
| 1,000 sites with contacts | $3.005 |
| 10,000 sites, technology only | $20.005 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Input the homepage; it carries most technology signals.
- Filter by the cms or ecommerce field to build platform lead lists.
- Turn off contact details for the cheapest pure technology scan.
- Pair with our Website Contact Scraper for deeper multi-page email collection.

### FAQ

#### How does it compare with Wappalyzer or BuiltWith?

It uses the same open-source fingerprint format as Wappalyzer (the maintained community fork), reading HTML, headers, cookies, meta tags and scripts. It does not run JavaScript, so a few JS-only signals are missed, but it is much cheaper and faster in bulk.

#### Does it detect versions?

Yes, where the site exposes them in code, headers or file names.

#### What is "implied"?

A technology inferred from another (e.g. WordPress implies PHP and MySQL).

#### Are unreachable sites charged?

No. They are listed with the error and not charged.

#### Do I need an API key?

No.

#### How fresh are the fingerprints?

They are downloaded from the open-source project at the start of every run.

### Honest limits

- No JavaScript execution: technologies only visible at runtime may be missed.
- Only the given page is scanned (usually the homepage).
- Sites that block cloud servers may need a proxy (switches automatically).
- Version numbers are reported only when exposed by the site.

### Related IntelScrape bots

- [WordPress Theme & Plugin Detector](https://apify.com/intelscrape/wordpress-detector): themes, plugins & versions
- [Open Graph Scraper](https://apify.com/intelscrape/open-graph-scraper): link previews & meta tags
- [SPF DMARC Checker](https://apify.com/intelscrape/dns-email-security-checker): email security records per domain
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Shopify Store Leads](https://apify.com/intelscrape/shopify-owner-email): Shopify store owner emails
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `domains` (type: `array`):

Domains or URLs, one per line (up to 20,000).

## `contactDetails` (type: `boolean`):

Also collect emails, phone links and social profiles from the scanned page, so each row is a ready lead. Charged per site.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "domains": [
    "shopify.com",
    "wordpress.org",
    "apify.com"
  ],
  "contactDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "domains": [
        "shopify.com",
        "wordpress.org",
        "apify.com"
    ],
    "contactDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/tech-stack-detector").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "domains": [
        "shopify.com",
        "wordpress.org",
        "apify.com",
    ],
    "contactDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/tech-stack-detector").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "domains": [
    "shopify.com",
    "wordpress.org",
    "apify.com"
  ],
  "contactDetails": true
}' |
apify call intelscrape/tech-stack-detector --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/tech-stack-detector"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/oKLQWpieDA2Lcp0nR/builds/RDOl8w2qoBC1Qn5v2/openapi.json
