Website Tech Stack Detector: Shopify, CMS, Pixels
Pricing
$20.00 / 1,000 page successfully analyseds
Website Tech Stack Detector: Shopify, CMS, Pixels
Website tech stack detector and lightweight BuiltWith / Wappalyzer alternative: detect ecommerce platform, CMS, analytics, ad pixel, CDN and payment signals on any list of public URLs. One page per URL, confidence scores, robots.txt respected.
Pricing
$20.00 / 1,000 page successfully analyseds
Rating
0.0
(0)
Developer
SmartMoney Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Website Tech Stack Detector
Scan public website URLs and return the tech stack: ecommerce, CMS, analytics, ad-pixel, CDN, and payment signals, each with a confidence score. This website technology detector also works as a Shopify store detector for lead lists and as a Wappalyzer alternative for partner checks. One page per URL you supply.
Use it to:
- Tag a prospect list with likely platform (Shopify, WooCommerce, and others) before outreach.
- See which homepages show a Meta, TikTok, or other ad-pixel signal.
- Check analytics and tag-manager signals on a set of brand sites.
- Compare CDN and payment signals across competitor homepages.
- Drop flat columns into a sheet or CRM (empty cells mean no signal on that page, not a proof of absence).
Detections are signals, not guarantees. Fingerprints are being tightened. Read confidence and spot-check important rows.
Quick start
- Leave the two sample URLs, or paste your own homepages (bare domains are fine;
https://is added if missing). - Leave Always render JavaScript off for the first run. Auto-render is also off in the sample so the run stays on plain HTTP.
- Click Start. You get one row per URL. Filter
ecommerce_platformortech_namesin the dataset.
Example input
This matches the form prefill. Two public SaaS homepages, HTTP only: 2 successful pages, $0.04.
{"urls": ["https://www.shopify.com", "https://stripe.com"],"renderJs": false,"autoRenderSpa": false,"concurrency": 5,"timeoutSecs": 20,"retries": 2,"respectRobotsTxt": true}
Turn renderJs on (and raise run memory to at least 1024 MB, concurrency 1-3) when you care about pixels or other scripts that load after the HTML.
Example output
One row per URL. Column values below are illustrations of the field shape, not a guaranteed read of those sites.
{"url": "https://www.shopify.com","final_url": "https://www.shopify.com","status": 200,"ecommerce_platform": "Shopify","cms": null,"analytics": ["Google Tag Manager", "Google Analytics"],"ad_pixels": [],"cdn": ["Cloudflare"],"payment": [],"tech_count": 8,"tech_names": ["Shopify", "Cloudflare", "Google Tag Manager"],"technologies": [{"name": "Shopify", "categories": ["Ecommerce"], "version": null, "confidence": 100},{"name": "Cloudflare", "categories": ["CDN", "Security"], "version": null, "confidence": 100},{"name": "Google Tag Manager", "categories": ["Tag Manager"], "version": null, "confidence": 90}],"rendered": false,"spa_fallback": false,"scan_time_ms": 600,"error": null}
error is null on a successful analysis. Otherwise it is a short reason such as http_error:403, http_error:429, fetch_error:…, robots_disallow, or invalid_url:…. Those rows are not charged.
Pricing
Pay per event. Apify platform usage is included in the event price. You don't pay for compute units separately.
| Event | When it is charged | Price | Per 1,000 |
|---|---|---|---|
url-detected | Once per URL whose page was successfully analysed | $0.02 | $20.00 |
Apify also adds a tiny automatic Actor-start fee of $0.00005 per run.
Charged only when the page loaded with a normal status and error is null. Not charged: 4xx/5xx (including 403 and 429), timeouts, DNS or connection failures, robots.txt skips, browser errors, and invalid URLs. You still get a row. A challenge page served as HTTP 200 can look like a real page; this Actor does not bypass bot protection, CAPTCHAs, or logins.
Worked examples: the prefill (2 pages) = $0.04. 100 successful pages = $2.00. 940 successful pages out of 1,000 = $18.80. You can set a maximum cost per run in Apify Console; finished rows are kept and later URLs are not started.
Input fields
| Field | Default | Notes |
|---|---|---|
urls | shopify.com, stripe.com | Required. One page per URL |
renderJs | false | Headless Chromium for every URL. Needs more memory |
autoRenderSpa | true (off in the sample) | Re-scan only if HTML looks like an empty app shell |
concurrency | 5 | Parallel URLs. Use 1-3 with the browser |
timeoutSecs | 20 | Per attempt |
retries | 2 | Extra HTTP tries on timeout or connection error |
respectRobotsTxt | true | Disallowed URLs get an error row and are free |
proxyUrl | — | Optional proxy you operate |
userAgent | polite bot UA | Identifies the scan and that it honors robots.txt |
maxUrls | — | Optional cap on how many input URLs run |
Tips, limits, FAQ
Coverage is a curated fingerprint set, deepest on ecommerce, WordPress/WooCommerce, payments, and marketing tags. A linked script can produce a false signal; use confidence and technologies. HTTP mode often misses pixels and payment widgets that load in the browser. Only the URL you pass is scanned, not the rest of the site. Blocked datacenter traffic returns little; an error status is free, a 200 challenge page may not be. Rows are saved as each URL finishes, in completion order.
Is it legal? It requests only the public URLs you supply, one page each, and respects robots.txt by default. It does not log in, submit forms, or crawl. Fingerprints are MIT-licensed and were written for this Actor. Output describes technologies, not people. You are responsible for downstream use (for example outreach) under the laws that apply to you, including GDPR or PDPA, and under each site's terms.
Do I need https://? No. stripe.com works.
Why is ecommerce_platform empty? No matching signal on that page: blocked, JavaScript-only, or outside the fingerprint set. Check status and error, and try renderJs on that URL.
Am I charged for 403 or 429? No. Only rows with error: null are charged.
Can it crawl a site? No. Add inner URLs yourself if you need them.
Integrations: run it via the Apify API, a schedule, Make, Zapier, n8n, or LangChain/MCP through Apify.