Website Tech Stack Detector (Wappalyzer, BuiltWith alternative) avatar

Website Tech Stack Detector (Wappalyzer, BuiltWith alternative)

Pricing

from $4.00 / 1,000 website scanneds

Go to Apify Store
Website Tech Stack Detector (Wappalyzer, BuiltWith alternative)

Website Tech Stack Detector (Wappalyzer, BuiltWith alternative)

Detect 7,000+ technologies on any website: CMS, ecommerce platform, analytics, ad pixels, payment, live chat, CDN, hosting, email provider (DNS) and more. Bulk domains, clean JSON with version, confidence and evidence. No API key, no browser, no personal data.

Pricing

from $4.00 / 1,000 website scanneds

Rating

0.0

(0)

Developer

Datakiln

Datakiln

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Website Tech Stack Detector (Wappalyzer and BuiltWith alternative)

Paste a list of websites or domains and get back the technologies each one uses: CMS, ecommerce platform, analytics, ad pixels, payment tools, live chat, CDN, hosting, JavaScript frameworks and, through DNS, the email provider. Each technology comes with its category, a version when the site shows one, a confidence score and the signal that revealed it.

It makes one HTTP request per website, reads the response and, if you leave the option on, looks up the domain's DNS records. It opens no browser, needs no login and no API key, and collects no personal data.

Who uses it

UseHow
Sales prospecting (B2B)Scan a list of leads and keep the ones running Shopify, WooCommerce, HubSpot or whatever you sell to or integrate with
SEO and agency auditsSee the CMS, analytics, tag managers, CDN and consent tools of a client or a competitor in one row
Market researchScan a few hundred sites in a niche and count which platforms and tools they use, with technologiesByCategory
Migration and lead listsFind sites still on an old platform or an old library version
Email and DNS checksSee whether a domain's mail runs on Google Workspace or Microsoft 365, and which DNS host it uses
Feeding a workflow or AI agentCall it through the API or MCP and read the JSON rows

How it works

For every site the Actor:

  1. Normalizes the input (example.com becomes https://example.com) and removes duplicates.
  2. Requests the page once and follows redirects. Only that page is fetched, no links are followed.
  3. Reads the final URL, response headers, cookies, the HTML, meta tags, script URLs, inline scripts, inline CSS and page structure.
  4. Optionally reads the domain's MX, TXT, NS, SOA and CNAME records.
  5. Matches all of that against 7,628 technology fingerprints from the open-source webappanalyzer project (GPL-3.0), fetched on 2026-10-05, and adds technologies those fingerprints imply (for example, WooCommerce implies WordPress).

Detection is pattern matching on what the server sends. No JavaScript is executed.

How to use it

  1. Paste websites or domains, one per line. A missing https:// is added for you.
  2. Leave the defaults or narrow the result with categoryFilter and minConfidence.
  3. Start the run and open the dataset. The "Overview" view lists each domain with its technologies, split into what the website shows and what only DNS shows. The "By category" view groups them.

Example input:

{
"urls": ["mailchimp.com", "https://www.wikipedia.org", "example.com"],
"checkDns": true,
"minConfidence": 50,
"categoryFilter": ["CDN", "Analytics", "Email"]
}

Input

FieldTypeDefaultWhat it does
urlsarray of stringsrequiredWebsites or domains, one per line. example.com, www.example.com and https://example.com/page all work. Duplicates are removed
checkDnsbooleantrueAlso look up MX, TXT, NS, SOA and CNAME. Finds email providers, DNS hosts and SaaS domain verifications that the page does not show
categoryFilterarray of stringsemptyKeep only technologies in these categories, such as Ecommerce, CMS, Analytics, Payment processors, Live chat. Case does not matter. Empty returns everything
minConfidenceinteger 0 to 1000Hide detections below this score. 100 keeps only certain matches
includeEvidencebooleantrueAdd the detectedBy list to each technology
respectRobotsTxtbooleantrueSkip websites whose robots.txt disallows the page. Skipped sites are listed and not charged
maxConcurrencyinteger 1 to 10020Websites scanned in parallel
requestTimeoutSecsinteger 5 to 12030How long to wait for a site before retrying
maxRetriesinteger 0 to 52Retries before a site is reported as failed. Domains that do not exist are not retried
proxyConfigurationobjectno proxyOptional. Use Apify Proxy if some sites block the requests

Output

One row per website. This is a real row from a scan of mailchimp.com, shortened (the full row lists 19 technologies):

{
"inputUrl": "mailchimp.com",
"url": "https://mailchimp.com/",
"domain": "mailchimp.com",
"status": "ok",
"httpStatus": 200,
"title": "Email & SMS Marketing Platform | Mailchimp",
"language": "en",
"technologyCount": 19,
"technologyNames": ["Akamai", "Microsoft 365", "Optimizely", "React"],
"websiteTechnologyNames": ["Akamai", "Optimizely", "React"],
"dnsServiceNames": ["Microsoft 365", "Zapier"],
"technologiesByCategory": {
"CDN": ["Akamai"],
"A/B Testing": ["Optimizely"],
"JavaScript frameworks": ["React"]
},
"technologies": [
{
"name": "Optimizely",
"slug": "optimizely",
"categories": ["A/B Testing", "Personalisation"],
"version": null,
"confidence": 100,
"detectedBy": ["scriptSrc"],
"website": "https://www.optimizely.com",
"saas": true,
"openSource": null,
"pricing": ["poa", "high"],
"cpe": null
}
],
"mxRecords": ["mx1.intuit.iphmx.com", "mx2.intuit.iphmx.com"],
"nameservers": ["a7-66.akam.net", "a6-66.akam.net"],
"error": null,
"scannedAt": "2026-10-05T02:54:06.439Z"
}

Fields in plain words:

FieldMeaning
statusok, failed, skipped or invalid-input. Only ok is charged
technologyNamesFlat list of everything found
websiteTechnologyNamesTechnologies seen on the website itself: headers, HTML, scripts, cookies
dnsServiceNamesServices seen only in DNS records, such as the email provider or a SaaS domain verification. Being in DNS means the domain uses or once verified the service, not that the page loads it
technologiesByCategoryCategory name mapped to the technologies in it
technologies[].confidence0 to 100. Lower scores come from weaker patterns
technologies[].detectedBySignals behind the match: headers, html, scriptSrc, meta, cookies, dom, dns, url, or implied by <technology>
technologies[].versionOnly when the site exposes it. Many hide it
errorWhy a site could not be scanned, for failed and skipped rows

Rows for failed, skipped and invalid sites keep the same fields with zero technologies, so a filter on status is enough to separate them. A run summary (scanned, failed, invalid, fingerprint source) is stored under SUMMARY in the key-value store.

How much does it cost?

You pay per website read successfully, with the website-scanned event. It is charged once per site, when the row has status: ok.

PlanPrice per 1,000 websites
FreeUS$ 6.00
Starter (Bronze)US$ 5.00
Scale (Silver)US$ 4.50
Business (Gold)US$ 4.00

There is also an Actor Start fee of US$ 0.00005 per run.

Not charged: websites that fail (DNS error, timeout, connection refused, blocked with 403), websites skipped by robots.txt, lines that are not a valid domain, and duplicates in the list.

You can set a maximum cost per run in the run options. The Actor reads that limit before starting. If your list is longer than the limit allows, it scans only the first sites that fit and writes a warning to the log. If the limit is reached during the run, it stops by itself and keeps the results already saved.

Limits, read before you run

  • Detection uses what the server sends. A site that builds its page with JavaScript after loading can show less than it really runs. The Actor does not execute scripts.
  • Only the page you give is read (usually the home page). Tools used only on inner pages, such as a checkout, are not seen.
  • Some sites block anything that is not a browser. They come back as failed with a 403 message, and you are not charged. The Actor does not try to get around that. In our test of 25 sites, one (nytimes.com) was blocked this way.
  • Fingerprints are community patterns. They can miss a technology, and a few can match something that is not there. Use confidence and detectedBy to judge a result, and minConfidence to cut weak ones. Scripts, headers and cookies are strong signals. A match from HTML text alone is weaker.
  • Versions appear only when the site exposes them. A missing version does not mean the software is current.
  • DNS results depend on the records the owner published. A TXT verification can remain after the company stopped using that service.
  • Pages are read up to about 600,000 characters of HTML. Larger pages are cut.
  • The fingerprint base is a snapshot (2026-10-05). New tools appear after that date and will not be detected until the base is updated.
  • Rows come out in the order scans finish, not in input order.

Responsible use

The Actor reads public pages and public DNS records. It does not log in, fill forms or solve captchas, and it does not send cookies from one site to another. It stores no personal data: the output describes technologies, not people. With respectRobotsTxt on (the default), it skips pages that robots.txt disallows. You are responsible for how you use the results, including contacting businesses you find with them, under the rules that apply to you (for example GDPR, CAN-SPAM, LGPD) and each site's terms.

FAQ

Does it run a browser? No. It makes a plain HTTP request and reads the response, which keeps it fast and cheap. The trade-off is in Limits: it cannot see what a script adds after the page loads.

Why did a site come back as failed and what do I pay? The domain may not exist, may time out, or may block bots. Failed rows are in the dataset with the reason in error, and cost nothing.

Can I scan a specific page and not the home page? Yes. Give the full URL, such as https://example.com/pricing. That one page is read. DNS is always checked on the domain.

What is the difference between websiteTechnologyNames and dnsServiceNames? The first list is what the page, headers and cookies show. The second is what only DNS records show, mostly the email provider and SaaS domain verifications. Both are in technologyNames.

Can I find only sites using a given platform? Run the list, then filter the dataset on technologyNames or technologiesByCategory in your tool or with the API. The Actor does not discover sites for you, it scans the ones you give it.

Is the data live? Each run fetches the sites at that moment. Nothing is cached between runs. Schedule the Actor if you want to track changes over time.

How many sites can I scan in one run? There is no fixed cap in the Actor. Your limit is your maximum cost per run and your plan's memory. Raise maxConcurrency for large lists, and lower it if many sites fail.

Feedback and feature requests

Found a technology that is missed or wrongly detected, or want a new field or option? Open an issue in the Issues tab of this Actor. Include the website and what you expected to see, and I will check it against the fingerprints.