# Tech Stack Detector Pro - BuiltWith Alternative (`zhorex/tech-stack-detector`) Actor

Detect 440+ technologies on any website for $0.005/URL: CMS, JS frameworks, analytics, hosting, CDN, security, payments and more. No proxy needed. The affordable BuiltWith alternative.

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

## Pricing

from $5.00 / 1,000 results

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 Pro - BuiltWith Alternative

Detect **440+ technologies across 54 categories** on any website for **$0.005/URL**. BuiltWith starts at $295/month. You do the math.

Identify CMS platforms, JavaScript frameworks, analytics tools, hosting providers, CDN services, security solutions, payment processors, marketing tools, and much more -- all from a single HTTP request per URL. No browser needed. No proxy required.

### Why This Actor?

| Feature | This Actor | BuiltWith | Wappalyzer |
|---------|-----------|-----------|------------|
| **Price** | $5/1,000 URLs | $295-995/mo | $250-850+/mo |
| **Technologies** | 440+ (the ones that matter for sales and audits) | 126,000+ | not published |
| **Proxy needed** | No | N/A | N/A |
| **Browser needed** | No | N/A | Extension |
| **Bulk scanning** | 10,000 URLs/run | Limited | Limited |
| **API access** | Yes (Apify API) | Extra cost | Extra cost |
| **Pay-per-use** | Yes | Monthly sub | Monthly sub |

### Technology Categories Detected

- **CMS**: WordPress, Drupal, Joomla, Ghost, Squarespace, Webflow, Wix, Contentful, Prismic, Sanity, Strapi, and 20+ more
- **JavaScript Frameworks**: React, Angular, Vue.js, Next.js, Nuxt.js, Svelte, Gatsby, Remix, Astro, Alpine.js, HTMX, Solid.js, Qwik, and 20+ more
- **JavaScript Libraries**: jQuery, Lodash, D3.js, Chart.js, Three.js, GSAP, Socket.io, and 40+ more
- **CSS Frameworks**: Bootstrap, Tailwind CSS, Bulma, Materialize, Foundation, Ant Design, Chakra UI, and 15+ more
- **E-commerce**: Shopify, WooCommerce, Magento, BigCommerce, PrestaShop, Snipcart, Paddle, Lemon Squeezy, and more
- **Analytics**: Google Analytics (GA4/Universal), Facebook Pixel, TikTok Pixel, Hotjar, Segment, Amplitude, Mixpanel, PostHog, Plausible, Microsoft Clarity, and 25+ more
- **Marketing**: HubSpot, Marketo, Mailchimp, Klaviyo, ActiveCampaign, ConvertKit, Brevo, and 15+ more
- **Chat/Support**: Intercom, Drift, Crisp, Zendesk, Tawk.to, LiveChat, Freshdesk, Help Scout, and more
- **Payments**: Stripe, PayPal, Razorpay, Braintree, Square, Klarna, Afterpay, Adyen, and more
- **Hosting**: Vercel, Netlify, Heroku, AWS, Azure, Google Cloud, Cloudflare Pages, Railway, Fly.io, and more
- **CDN**: Cloudflare, AWS CloudFront, Fastly, Akamai, BunnyCDN, jsDelivr, and more
- **Security**: Cloudflare WAF, DataDome, PerimeterX, Imperva, hCaptcha, reCAPTCHA, and more
- **Web Servers**: Nginx, Apache, LiteSpeed, IIS, Caddy, and more
- **A/B Testing**: Optimizely, VWO, AB Tasty, LaunchDarkly, Split, and more
- **Cookie Consent**: Cookiebot, OneTrust, Iubenda, Osano, TrustArc, and more
- **Error Tracking**: Sentry, Bugsnag, Rollbar, LogRocket, and more
- **SEO**: Schema.org, Yoast SEO, Rank Math, Hreflang Tags
- **Ads**: Google AdSense, Google Ads, Taboola, Outbrain, Criteo, and more
- **Fonts**: Google Fonts, Adobe Fonts, Bunny Fonts
- **Video**: YouTube, Vimeo, Wistia, JW Player, Brightcove
- **Forms**: Typeform, JotForm, Tally, Formspree
- **Search**: Algolia, Elasticsearch, Typesense, Meilisearch
- **Authentication**: Auth0, Clerk, Okta, Firebase Auth
- **Reviews**: Trustpilot, Yotpo, Judge.me, Bazaarvoice
- **Static Site Generators**: Hugo, Jekyll, Eleventy, Docusaurus, and more

### Use Cases

- **B2B Sales Prospecting**: Find companies using specific technologies (e.g., all Shopify stores using Stripe + Klaviyo)
- **Competitive Tech Analysis**: See what your competitors are running under the hood
- **SEO Audits**: Check analytics setup, tag managers, schema markup, and performance tools
- **VC Due Diligence**: Understand a startup's tech maturity and infrastructure choices
- **Web Dev Agency Prospecting**: Find WordPress sites without proper analytics for outreach
- **Market Research**: Map technology adoption across industries

### Input

```json
{
    "urls": [
        "https://shopify.com",
        "https://stripe.com",
        "https://vercel.com"
    ],
    "maxUrls": 100,
    "includeHeaders": false,
    "includeEvidence": true,
    "timeout": 30,
    "followRedirects": true
}
```

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `urls` | array | required | List of URLs to scan |
| `maxUrls` | integer | 100 | Max URLs to process (up to 10,000) |
| `includeHeaders` | boolean | false | Include raw HTTP headers in output |
| `includeEvidence` | boolean | true | Show what pattern triggered each detection |
| `timeout` | integer | 30 | Request timeout per URL in seconds |
| `followRedirects` | boolean | true | Follow HTTP redirects |

### Output

Each URL produces a result object:

```json
{
    "url": "https://shopify.com",
    "finalUrl": "https://www.shopify.com",
    "statusCode": 200,
    "technologies": [
        {
            "name": "Cloudflare",
            "category": "CDN",
            "confidence": 100,
            "version": null,
            "detectedBy": "headers:Server=cloudflare"
        },
        {
            "name": "React",
            "category": "JavaScript Framework",
            "confidence": 90,
            "version": "18.2",
            "detectedBy": "html:react.production"
        },
        {
            "name": "Next.js",
            "category": "JavaScript Framework",
            "confidence": 100,
            "version": null,
            "detectedBy": "html:__NEXT_DATA__"
        },
        {
            "name": "Google Analytics",
            "category": "Analytics",
            "confidence": 90,
            "version": "GA4",
            "detectedBy": "html:gtag("
        }
    ],
    "summary": {
        "totalTechnologies": 12,
        "categories": ["Analytics", "CDN", "JavaScript Framework"],
        "hosting": "Cloudflare",
        "cms": null,
        "ecommerce": "Shopify",
        "jsFramework": "React, Next.js",
        "analytics": ["Google Analytics", "Segment"],
        "security": ["Cloudflare WAF"]
    },
    "responseTimeMs": 1200,
    "scrapedAt": "2026-04-09T15:00:00+00:00"
}
```

### How Detection Works

The actor uses **4 detection layers** for maximum coverage:

1. **HTTP Response Headers** -- Server headers, X-Powered-By, platform-specific headers (X-Shopify-Stage, X-Drupal-Cache, CF-RAY, etc.)
2. **HTML Content Analysis** -- Pattern matching on HTML source for framework signatures, script URLs, CSS references, and unique DOM attributes
3. **Cookie Analysis** -- Cookie names reveal analytics tools, CMS platforms, and security solutions
4. **Version Extraction** -- Regex patterns extract version numbers from script URLs, meta tags, and inline code

Each detection includes a **confidence score** (80-100%) based on signal strength.

### Pricing

This actor uses **pay-per-event** pricing:

- **$0.005 per URL scanned** (only charged for successful scans)
- No monthly subscription
- 1,000 URLs = $5
- 10,000 URLs = $50

### Performance

- **Speed**: ~1-3 seconds per URL (HTTP-only, no browser overhead)
- **Memory**: 256MB RAM (lightweight HTTP requests)
- **Concurrency**: 5 parallel requests with 0.5s delay
- **No proxy needed**: Direct HTTP requests to public websites

### FAQ

**Does this need a proxy?**
No. The actor sends standard HTTP requests directly to public websites.

**Does this need a browser?**
No. This is HTTP-only analysis, which makes it faster and cheaper than browser-based alternatives. The tradeoff is that some client-side-only technologies may not be detected.

**How accurate is it?**
High confidence (100%) for server-side signals like HTTP headers, cookies, and meta tags. Moderate confidence (80-90%) for HTML pattern matching. Version detection works when the version is included in URLs or meta tags.

**Can I scan 10,000 URLs?**
Yes. Set `maxUrls` to 10000. The actor processes URLs concurrently with rate limiting to avoid overwhelming target servers.

**What about JavaScript-only frameworks?**
Some frameworks that only render client-side (like SPAs that load everything via JS) may show fewer detections. For maximum coverage of client-side tech, consider pairing this with a browser-based detector.

**Does it detect programming languages?**
It detects languages and frameworks when they expose signals (PHP via PHPSESSID cookie, ASP.NET via session cookie, Java via JSESSIONID, etc.).

### Other Tools by Zhorex

- [Telegram Channel Scraper](https://apify.com/zhorex/telegram-channel-scraper) -- Extract messages, media, and metadata from Telegram channels
- [G2 Reviews Scraper](https://apify.com/zhorex/g2-reviews-scraper) -- Scrape G2 product reviews and ratings
- [Kick.com Analytics](https://apify.com/zhorex/kick-analytics) -- Stream analytics for Kick.com channels
- [Letterboxd Scraper](https://apify.com/zhorex/letterboxd-scraper) -- Scrape movie reviews and lists from Letterboxd
- [Booking.com Reviews](https://apify.com/zhorex/booking-reviews) -- Extract hotel reviews from Booking.com
- [RedNote Xiaohongshu Scraper](https://apify.com/zhorex/rednote-scraper) -- Scrape posts from Xiaohongshu/RedNote
- [Domain Authority Checker](https://apify.com/zhorex/domain-authority-checker) -- Check DA/PA for any domain
- [Phone Number Validator](https://apify.com/zhorex/phone-number-validator) -- Validate and format phone numbers

### Legal

This actor only sends standard HTTP requests to publicly accessible websites. It does not bypass any authentication, access restricted content, or violate robots.txt. The technology detection is based solely on publicly visible response headers, HTML source, and cookies -- the same information available in any web browser's developer tools.

# Actor input Schema

## `urls` (type: `array`):

URLs to analyze (e.g., https://shopify.com). Add https:// if missing.

## `maxUrls` (type: `integer`):

Maximum number of URLs to process in a single run.

## `includeHeaders` (type: `boolean`):

When enabled, the raw HTTP response headers will be included in the output for each URL.

## `includeEvidence` (type: `boolean`):

When enabled, each detected technology includes a 'detectedBy' field showing what pattern matched.

## `timeout` (type: `integer`):

Maximum time to wait for a response from each URL.

## `followRedirects` (type: `boolean`):

Follow HTTP redirects to reach the final URL.

## Actor input object example

```json
{
  "urls": [
    "https://shopify.com",
    "https://stripe.com",
    "https://vercel.com"
  ],
  "maxUrls": 100,
  "includeHeaders": false,
  "includeEvidence": true,
  "timeout": 30,
  "followRedirects": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset with all rows this run produced

# 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 = {
    "urls": [
        "https://shopify.com",
        "https://stripe.com",
        "https://vercel.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zhorex/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 = { "urls": [
        "https://shopify.com",
        "https://stripe.com",
        "https://vercel.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("zhorex/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 '{
  "urls": [
    "https://shopify.com",
    "https://stripe.com",
    "https://vercel.com"
  ]
}' |
apify call zhorex/tech-stack-detector --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zhorex/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/GrKgbPbZqupOnAyO7/builds/y0NfZQMlrgKLrgvvt/openapi.json
