Skip to main content

Detect the technology stack of any website — 5,000+ technologies, confidence scores

Project description

TechStackDetect Python SDK

Detect the technology stack of any website in one API call.

  • 5,000+ technology signatures across 48 categories
  • Confidence scores (0.0–1.0) for each detection
  • Zero dependencies — pure Python stdlib
  • Free tier available on RapidAPI

Installation

pip install techstackdetect

Quick Start

from techstackdetect import TechStackDetect

client = TechStackDetect(api_key="YOUR_RAPIDAPI_KEY")

result = client.detect("https://stripe.com")

for tech in result.technologies:
    print(f"{tech.name} ({tech.category}) — {tech.confidence:.0%}")
# AWS CloudFront (cdn) — 95%
# Fastly (cdn) — 95%
# HSTS (security) — 90%
# Varnish (cache) — 75%

Get your API key: RapidAPI → TechStackDetect

Usage Examples

Check if a site uses a specific technology

result = client.detect("https://shopify.com")

if result.has("Shopify"):
    print("This site uses Shopify!")

if result.has("React"):
    print("React detected!")

Filter by category

result = client.detect("https://notion.so")

analytics = result.by_category("analytics")
hosting = result.by_category("hosting")
frontend = result.by_category("frontend")

print("Analytics tools:", [t.name for t in analytics])
print("Hosting:", [t.name for t in hosting])

Batch processing for lead enrichment (native /batch endpoint)

leads = [
    "https://woocommerce.com",
    "https://shopify.com",
    "https://ghost.org",
    # ... up to any number of URLs; automatically chunked into 50/request
]

results = client.detect_batch(leads)

for url, result in results:
    if isinstance(result, Exception):
        print(f"{url}: ERROR - {result}")
    else:
        cms = result.by_category("cms")
        ecom = result.by_category("ecommerce")
        print(f"{url}: CMS={[t.name for t in cms]}, ecommerce={[t.name for t in ecom]}")

Browse all supported technologies

# List all ecommerce platforms we can detect
ecom = client.technologies(category="ecommerce")
print(f"Ecommerce platforms: {len(ecom)}")
print([t['name'] for t in ecom[:10]])
# ['BigCommerce', 'Magento', 'OpenCart', 'PrestaShop', 'Shopify', ...]

# List all 5,225 technologies
all_techs = client.technologies()
print(f"Total: {len(all_techs)}")

CRM enrichment workflow

def enrich_lead(website_url):
    result = client.detect(website_url)
    return {
        "url": result.url,
        "cms": next((t.name for t in result.by_category("cms")), None),
        "ecommerce": next((t.name for t in result.by_category("ecommerce")), None),
        "frontend": [t.name for t in result.by_category("frontend")],
        "analytics": [t.name for t in result.by_category("analytics")],
        "hosting": [t.name for t in result.by_category("hosting")],
        "tech_count": len(result.technologies),
    }

print(enrich_lead("https://stripe.com"))

API Reference

TechStackDetect(api_key, timeout=30)

Create a client instance.

client.detect(url, force_refresh=False) → DetectionResult

Detect technologies for a single URL.

client.detect_batch(urls, force_refresh=False, chunk_size=50) → list

Detect technologies for multiple URLs using the native /batch endpoint (parallel server-side processing). Automatically chunks large lists into batches of up to 50 URLs. Returns list of (url, DetectionResult | Exception) tuples.

client.technologies(category=None) → list

List all 5,000+ supported technologies, optionally filtered by category. Available categories: frontend, cms, ecommerce, analytics, cdn, hosting, backend, server, security, marketing, support, payment, ui, monitoring, etc.

Detect technologies for multiple URLs with optional rate limiting.

DetectionResult

Attribute Type Description
url str The analyzed URL
technologies List[Technology] Detected technologies, sorted by confidence
cached bool Whether result came from cache

Methods: .has(name), .by_category(cat), .names(), .top(n)

Technology

Attribute Type Description
name str Technology name
category str Category (e.g. "frontend", "cms", "hosting")
confidence float Detection confidence 0.0–1.0
version str|None Version number if detected

Categories

frontend · backend · cms · ecommerce · hosting · cdn · analytics · monitoring · marketing · security · database · cache · authentication · seo · server · javascript-frameworks · wordpress-plugins · and 30+ more

License

MIT — free to use in any project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

techstackdetect-1.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

techstackdetect-1.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file techstackdetect-1.1.0.tar.gz.

File metadata

  • Download URL: techstackdetect-1.1.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for techstackdetect-1.1.0.tar.gz
Algorithm Hash digest
SHA256 4b1c999e96263a17103ea482505778d8f129afa228842822904193008408446f
MD5 1f69ec587cf5c358b4ad80737138757c
BLAKE2b-256 4d3fd1e38223afdf827706a086f69d135bc8915281df24f0912811bcae89fc25

See more details on using hashes here.

File details

Details for the file techstackdetect-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for techstackdetect-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 475f211d0b1162317473dd76994f9267e12cf3aba45224ff6157b0260ec2848f
MD5 68b997ba0aa6805acd4f1febdc484294
BLAKE2b-256 201fc07d3daa13a0249bf1b37d470ec98e7fe6a5992e4d10f0acff6cda02c202

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page