Website Tech Stack Detector: BuiltWith Alternative
Pricing
from $3.00 / 1,000 site analyzeds
Website Tech Stack Detector: BuiltWith Alternative
Find the technologies behind a list of websites: CMS, ecommerce platform, JavaScript frameworks, analytics and ad tags, CDN, hosting and email provider. Each technology comes with a confidence score and the evidence it was found from. Failed and blocked sites are free.
Pricing
from $3.00 / 1,000 site analyzeds
Rating
0.0
(0)
Developer
Plainsource
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Website Tech Stack Detector is a BuiltWith alternative and Wappalyzer alternative that answers "what CMS is this site using?" for a whole list of websites at once. It fetches each homepage and reports the technologies behind it: CMS or site builder, ecommerce platform, JavaScript frameworks, analytics and ad tags, CDN, hosting and web server. It also reads the domain's DNS records to find the email provider, the DNS host and the SaaS tools the domain has verified.
Each technology comes with a category, a version when the site exposes one, a confidence score from 0 to 100 and the evidence it was found from. Sites that fail or show no technologies are not charged.
What data can Website Tech Stack Detector extract?
One row per website.
| Field | Meaning |
|---|---|
input, url, domain | The entry as you typed it, the URL that was requested, and the registered domain used for the DNS lookups. |
status | ok, failed, site_blocked, not_allowed, invalid_input or skipped. |
finalUrl, httpStatus | Where redirects ended, and the HTTP status of that page. |
title, description, language | From the page's <title>, meta description and <html lang>. |
cms, ecommercePlatform | The CMS, site builder or ecommerce platform found on the page with the highest confidence, or null. |
hostingProvider, cdnProvider | Hosting and CDN names, from headers, CNAMEs and published IP ranges. |
emailProvider | From the MX records, for example Google Workspace or Microsoft 365. |
technologyCount, technologyNames | How many technologies were found, and their names (handy for CSV and spreadsheets). |
technologies | One object per technology: name, category, version, confidence, evidence (up to 3 strings) and source (page or dns). |
checkedAt, error | When the site was checked, and why it could not be analysed, or a note such as "No technologies were detected". |
A row with site_blocked, failed or not_allowed can still list technologies found in DNS.
What it detects
The Actor has 312 page fingerprints in 63 categories, plus DNS rules for 41 mail providers, 40 DNS hosts and 66 services that leave a TXT verification record. Some examples:
| Category | Examples |
|---|---|
| CMS and site builders | WordPress, Drupal, Joomla, Ghost, Webflow, Wix, Squarespace, Framer, HubSpot CMS, Adobe Experience Manager, Contentful, Sanity |
| Ecommerce and payments | Shopify, WooCommerce, BigCommerce, Magento, PrestaShop, Salesforce Commerce Cloud, Stripe, PayPal, Klarna, Afterpay |
| Frameworks | Next.js, Nuxt, React, Vue.js, Angular, SvelteKit, Astro, Gatsby, Remix, Hugo, Docusaurus, Laravel, Django, Ruby on Rails |
| Analytics and ads | Google Analytics, Google Tag Manager, Meta Pixel, LinkedIn Insight Tag, Hotjar, Microsoft Clarity, Mixpanel, Segment, PostHog |
| Marketing and chat | HubSpot, Marketo, Klaviyo, Mailchimp, Intercom, Drift, Zendesk, Crisp |
| Infrastructure | Cloudflare, Fastly, Akamai, Amazon CloudFront, Vercel, Netlify, WP Engine, Nginx, Apache, LiteSpeed |
| From DNS | Google Workspace, Microsoft 365, Proofpoint, Mimecast, Amazon Route 53, SendGrid, Mailgun, Atlassian, DocuSign, Zoom |
How to use Website Tech Stack Detector
- Open the Actor on Apify and paste your websites into Websites. Use bare domains (
example.com, opened ashttps://example.com/) or full URLs (https://shop.example.com/). Up to 5,000 per run. - Leave Also detect from DNS records on to add the email provider, DNS host and verified SaaS tools. Turn it off if you only want what the page shows.
- Optional: change Minimum confidence (default 50). Lower it to 0 to see weaker matches.
- Click Start.
- Open the Output tab, or download the dataset as JSON, CSV or Excel. The run's key-value store also has an
OUTPUTrecord with counts per status and the 50 most common technologies in the run.
How much does it cost?
The Actor uses pay-per-event pricing.
| Event | Price |
|---|---|
| Run start | $0.002 per GB of memory, charged once per run (the Actor runs on 256 MB, so one event, $0.002) |
| Website analysed | $0.003 per website |
You are charged for a website only when its homepage was fetched and at least one technology was found. Sites that fail, block automated visitors, answer with a bot-check page, are disallowed by robots.txt, or show no technologies are free.
Worked examples: 1,000 websites cost $0.002 + 1,000 x $0.003 = $3.002. If 80 of them block the request, you pay for 920: $2.762. If a run reaches the maximum cost you set, the remaining websites are returned with status skipped.
Input example
{"urls": ["vercel.com", "wordpress.org", "www.python.org"]}
| Field | Default | What it does |
|---|---|---|
urls | Domains or full URLs. Up to 5,000 per run. | |
detectFromDns | on | Adds the email provider, DNS host, email-sending services and verified SaaS tools from DNS. |
minConfidence | 50 | Leaves out technologies scored below this. |
respectRobotsTxt | on | Skips sites whose robots.txt disallows the homepage. |
maxConcurrency | 5 | 1 to 20 websites at once. Requests to the same host are always at least 1 second apart. |
timeoutSecs | 20 | 5 to 60 seconds. A failed page is retried once. |
Output example
This is the row for vercel.com from a real run on 2026-10-28 with the input above. The technologies list is cut to six of its 20 entries; technologyNames still lists all 20, and every value shown is as returned.
{"input": "vercel.com","url": "https://vercel.com/","domain": "vercel.com","status": "ok","finalUrl": "https://vercel.com/","httpStatus": 200,"title": "Agentic Infrastructure - Vercel","description": "The autonomous stack for every app and agent.","language": "en","cms": null,"ecommercePlatform": null,"hostingProvider": "Vercel","cdnProvider": null,"emailProvider": "Google Workspace","technologyCount": 20,"technologyNames": ["Next.js", "React", "Anthropic", "OpenAI", "Mixpanel", "Zoom", "Vercel DNS", "DocuSign", "Amazon SES", "Marketo", "Postmark", "Salesforce", "SendGrid", "Google Workspace", "Vercel", "Stripe", "Apple Business", "Microsoft 365", "Ahrefs", "Google Search Console"],"technologies": [{ "name": "Next.js", "category": "Web framework", "version": null, "confidence": 100, "evidence": ["header x-powered-by: Next.js, Payload", "header x-nextjs-prerender: 1", "header x-nextjs-stale-time: 300"], "source": "page" },{ "name": "React", "category": "JavaScript framework", "version": null, "confidence": 100, "evidence": ["implied by Next.js"], "source": "page" },{ "name": "Vercel DNS", "category": "DNS hosting", "version": null, "confidence": 100, "evidence": ["NS ns1.vercel-dns.com", "NS ns2.vercel-dns.com"], "source": "dns" },{ "name": "Amazon SES", "category": "Email delivery", "version": null, "confidence": 100, "evidence": ["SPF include:amazonses.com"], "source": "dns" },{ "name": "Google Workspace", "category": "Email hosting", "version": null, "confidence": 100, "evidence": ["MX aspmx.l.google.com", "MX alt1.aspmx.l.google.com", "MX alt2.aspmx.l.google.com"], "source": "dns" },{ "name": "Vercel", "category": "Hosting", "version": null, "confidence": 100, "evidence": ["header server: Vercel", "header x-vercel-id: iad1::wp6qd-1793225382384-584fc0aecf99", "header x-vercel-cache: HIT"], "source": "page" }],"checkedAt": "2026-10-28T22:09:42.314Z","error": null}
In the same run wordpress.org was reported with cms set to WordPress and 7 technologies, and python.org with Fastly as cdnProvider and 15 technologies. All three rows had the status ok.
Use cases
- Add "uses Shopify, WordPress or HubSpot" to a lead list.
- Find which competitors use a given analytics, chat or ecommerce tool.
- Check what a prospect's website is built with before a sales call.
- Audit your own sites for old jQuery versions or forgotten tags.
- Build a list of every site on a given CMS or framework from a list of domains you already have.
- Find out which email provider and DNS host a company uses.
FAQ
How does it compare with BuiltWith and Wappalyzer?
It answers the same question, "what is this website built with?", for a list you provide. It reads one page per site as the server sends it, so it will not match the depth of a full crawl or of a browser extension that runs the page's JavaScript. Each technology comes with the evidence it was found from, so you can judge a result yourself. The fingerprints were written for this Actor from what each product publicly exposes: the headers it sets, its cookie names, its <meta generator> value and the hosts its scripts load from. They are not copied from Wappalyzer's data.
Why is a tool I know the site uses missing?
The page is read as the server sends it, without running JavaScript in a browser. Tags added later by Google Tag Manager, and content built only in the browser, are not visible this way. Lowering Minimum confidence to 0 also shows weaker matches.
What does the confidence score mean?
A response header, cookie name, meta tag or script URL scores 90 to 100. A generic HTML pattern scores 40 to 70; distinctive markup, such as the __NEXT_DATA__ script of Next.js, scores higher. Several weak signals for the same technology add up, capped at 100. Implied technologies (PHP for WordPress, React for Next.js) take the score of the one that implied them.
Why does a row say site_blocked?
The site answered with HTTP 401, 403, 429 or 503, or with a bot-check page. This Actor does not try to get around that, and the row is free. There are no proxies, logins or bot-check workarounds.
What are the limits?
Only the homepage (or the URL you give) and robots.txt are fetched, with one plain HTTP request per site. Pages larger than 3 MB are read up to 3 MB. Up to 5,000 websites per run. Robots.txt is respected by default, and requests to the same host are at least 1 second apart, or further if the site sets a Crawl-delay. The Actor identifies itself as PlainsourceTechDetector. LinkedIn, Facebook, Instagram, X and TikTok are not supported, because their terms forbid automated access. localhost, private IP addresses and hostnames that resolve to them are not fetched, including through redirects.
How fast is it?
The 3-site run above finished in about 3 seconds from start to finish, including the DNS lookups.
Can I use the API, Make, Zapier, n8n, a schedule or an AI agent?
Yes. Every Apify Actor has an API, and the Make, Zapier and n8n integrations can start it and read the dataset. You can run it on a schedule with Apify's Schedules to track changes in a competitor's stack. AI agents can call it through the Apify MCP server with the same input. With the API client: client.actor("fernandosord/website-tech-stack-detector").call({ urls: ["example.com"] }).
Do you also have registration, DNS and email security data?
The Domain Profile Actor by the same developer uses the same detection engine and adds RDAP registration data, domain age, an email authentication audit and the TLS certificate.
Something is detected wrongly. Where do I report it?
Open an issue on this Actor's Issues tab with the website and the technology.
Other Actors by this developer
- Domain Profile, WHOIS and DNS: registration, domain age, DNS and email security for a domain.
- Website Screenshot & URL to PDF: full-page screenshots and PDFs of a list of URLs.
- Website Change Monitor: watch pages and get the exact lines or links that were added or removed.
- Open Places Leads: business lists by city or country from Overture Maps open data.
- Career Site Jobs: open jobs from Greenhouse, Lever, Ashby and other career sites.