Website Technology Lookup – CMS, Hosting & Tech Stack Data
Pricing
from $0.75 / 1,000 technology results
Website Technology Lookup – CMS, Hosting & Tech Stack Data
Look up published CMS, hosting and tech-stack data for any domain. Get categorized technologies in bulk for SEO research, competitor analysis and lead enrichment.
Pricing
from $0.75 / 1,000 technology results
Rating
0.0
(0)
Developer
DataScraperES
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Look up published CMS, hosting, server and technology-stack data for one or many domains. Submit a simple domain list and receive categorized technology records with clear current-versus-recent status in the default Dataset.
What this Actor does
Website Technology Lookup turns a domain list into structured public website-technology data. Each valid unique domain produces a Dataset item that includes its lookup status, available title and site background, and technologies grouped by category. Technology records preserve whether the published source lists a technology as currently detected or only recently used.
Use it when you need technology context for SEO research, competitor analysis, lead enrichment, or recurring snapshots. It returns an item for completed lookups even when a domain is unavailable or has not yet been crawled, so you can review the outcome for every domain.
Use cases
- Compare the CMS, hosting, server-side language, analytics, and frontend technologies used by competitor domains.
- Enrich a prospect or company list with published technology-stack signals for SEO and sales research.
- Separate current technology detections from recently used technologies when qualifying leads or reviewing historical changes.
How to use
- Open the Actor in Apify Console.
- Add one or more values under Domains; a bare domain or a website URL is accepted.
- Click Start and open the Dataset when the run finishes.
For a first run, enter github.com.
Input
The Actor has one required field:
| Field | Type | Required | Description |
|---|---|---|---|
domains | string[] | Yes | Domains or website URLs to inspect. Up to 10,000 unique valid domains per run. |
URLs are reduced to their hostname. Whitespace, letter case, a trailing dot, and repeated equivalent hostnames are normalized before processing. For example, HTTPS://WWW.Example.com/path and www.example.com are processed once as www.example.com.
{"domains": ["github.com","https://www.example.org/products","shop.example.net"]}
Output
The default Dataset contains one item for each unique valid domain processed. Export it from Apify in JSON, CSV, Excel, JSONL, and other supported Dataset formats.
The following is the complete Dataset item returned by a real successful run with this input:
{"domains": ["github.com"]}
No output fields or technology records have been omitted:
{"domain": "github.com","status": "ok","technologies": [{"category": "Content Management System","name": "GitHub Pages","version": null,"description": "GitHub Pages is a web page creation and hosting service by GitHub.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Server-side Programming Language","name": "JavaScript","version": null,"description": "JavaScript is a lightweight, object-oriented, cross-platform scripting language. This includes TypeScript.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Client-side Programming Language","name": "JavaScript","version": null,"description": "JavaScript is a lightweight, object-oriented, cross-platform scripting language, often used within web pages.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "JavaScript Library","name": "Next.js","version": null,"description": "Next.js is an open source JavaScript framework based on React and Node.js.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Web Server","name": "Node.js","version": null,"description": "Node.js is a server-side JavaScript environment for writing network programs such as web servers, originally developed by Ryan Dahl.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Web Hosting Provider","name": "GitHub","version": null,"description": "GitHub offers project repository hosting and also site hosting services.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Data Center Provider","name": "GitHub","version": null,"description": "GitHub offers project repository hosting and also site hosting services.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Reverse Proxy Service","name": "Fastly","version": null,"description": "Fastly is a content delivery network.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "DNS Server Providers","name": "Amazon","version": null,"description": "Amazon is a US-based e-commerce and cloud computing provider.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "DNS Server Providers","name": "NS1","version": null,"description": "NS1 provides managed and private DNS services, owned by IBM.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Email Server Providers","name": "Microsoft","version": null,"description": "Microsoft is a multinational technology company headquartered in USA, also offering email services.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Email Server Providers","name": "Gmail","version": null,"description": "Gmail is the email service provided by Google.","hints": ["used until recently"],"detectionStatus": "recently_used","isCurrentlyDetected": false},{"category": "SSL Certificate Authorities","name": "Sectigo","version": null,"description": "Sectigo (formerly Comodo CA) is a US-based SSL certificate authority.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "SSL Certificate Authorities","name": "Let’s Encrypt","version": null,"description": "Let’s Encrypt is a free, automated, and open certificate authority provided by the Internet Security Research Group.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "External CSS","version": null,"description": "External Cascading Style Sheets define style rules in a separate CSS file.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Embedded CSS","version": null,"description": "Embedded Cascading Style Sheets define a set of style rules in a <style> element within a web page.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Inline CSS","version": null,"description": "Inline Cascading Style Sheets define style rules directly within an (X)HTML element using the style attribute.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Session Cookies","version": null,"description": "Session cookies are temporary cookies, which are deleted when the user closes the browser.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Cookies expiring in months","version": null,"description": "Persistent cookies with an expiration time between 1 month and 1 year.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "HttpOnly Cookies","version": null,"description": "HttpOnly cookies are used only in the HTTP protocol and not in client side scripts, which may increase security.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Non-HttpOnly Cookies","version": null,"description": "Non-HttpOnly cookies are used in the HTTP protocol and also in client side scripts, which may be a security threat.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Secure Cookies","version": null,"description": "Secure cookies are used only via an encrypted connections, which may increase security.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Gzip Compression","version": null,"description": "Gzip (GNU zip) is a file compression algorithm.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Brotli Compression","version": null,"description": "Brotli is a lossless compression algorithm developed by Google.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Weak ETag","version": null,"description": "A weak ETag is an HTTP header field for validation of cached web pages, that indicates a semantically equivalent page in the cache.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "IPv6","version": null,"description": "The Internet Protocol version 6 (IPv6) provides amongst others a vastly larger address space than the preceding version 4. We consider a website to support IPv6 if a 128-bit address is assigned to it, regardless of the content delivered at that address.","hints": ["used on a subdomain"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "HTTP Strict Transport Security","version": null,"description": "HTTP Strict Transport Security (HSTS) defines a mechanism enabling web sites to declare themselves accessible only via secure connections.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Site Elements","name": "Default protocol https","version": null,"description": "The websites redirects visitors to use SSL encryption, e.g. from http://example.com/ to https://example.com/.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "Open Graph","version": null,"description": "The Open Graph protocol, originally developed by Facebook, is an RDFa-based format that enables any web page to become a rich object in a social graph.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "Twitter/X Cards","version": null,"description": "Twitter/X Cards enable automatic attachment of photos, videos and media elements to tweets.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "Generic RDFa","version": null,"description": "Generic RDFa (Resource Description Framework in attributes) is RDFa without further specialization.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "JSON-LD","version": null,"description": "JSON-LD (JavaScript Object Notation for Linked Data) is a method of encoding Linked Data using JSON.","hints": ["used on inner pages"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "Microdata","version": null,"description": "Microdata is a specification to integrate metadata within existing content on web pages.","hints": ["used on inner pages"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Structured Data Formats","name": "Microformats","version": null,"description": "Microformats is a approach to semantic markup which uses (X)HTML tags to convey additional metadata.","hints": ["used on inner pages"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Markup Language","name": "HTML5","version": null,"description": "HTML5 is the fifth revision of the HTML standard.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Character Encoding","name": "UTF-8","version": null,"description": "UTF-8 (8-bit Unicode Transformation Format) is a variable-length character encoding for Unicode, which is backwards compatible with ASCII.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Image File Formats","name": "PNG","version": null,"description": "PNG (Portable Network Graphics) is a lossless compression image format, suitable to store graphics with uniformly colored areas, and originally introduced as a free, open-source successor of GIF.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Image File Formats","name": "SVG","version": null,"description": "Scalable Vector Graphics (SVG) is an XML-based vector image format.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Image File Formats","name": "WebP","version": null,"description": "WebP is an image format that provides lossless and lossy compression, developed by Google.","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Image File Formats","name": "JPEG","version": null,"description": "JPEG (Joint Photographic Experts Group) is a lossy compression method suitable to store photographic images.","hints": ["used on inner pages"],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Image File Formats","name": "GIF","version": null,"description": "GIF (Graphics Interchange Format) is a lossless compression image format, originally introduced by CompuServe and suitable to store graphics, logos and simple animations.","hints": ["used until recently"],"detectionStatus": "recently_used","isCurrentlyDetected": false},{"category": "Top Level Domain","name": ".com","version": null,"description": "Commercial entities","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Server Locations","name": "United States","version": null,"description": "Commercial entities","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Server Locations","name": "Germany","version": null,"description": "Commercial entities","hints": [],"detectionStatus": "current","isCurrentlyDetected": true},{"category": "Content Language","name": "English","version": null,"description": "Commercial entities","hints": [],"detectionStatus": "current","isCurrentlyDetected": true}],"websiteBackground": null,"title": "Github.com","error": null,"attempts": 1,"httpStatusCode": 200}
| Field | Meaning |
|---|---|
domain | Normalized hostname that was looked up. |
status | Final result: ok, not_found, not_crawled, or error. |
title | Published site title when available; otherwise null. |
websiteBackground | Published site background details when available; otherwise null. |
technologies | Categorized technology records. It can be empty. |
httpStatusCode | Response status when one was received. |
attempts | Lookup attempts made for the domain. |
error | Explanation for a non-ok result; otherwise null. |
For each technology, detectionStatus is either current or recently_used. isCurrentlyDetected is true only for current; treat recently_used as recent historical evidence rather than a confirmed active detection.
Pricing
One domain with status: "ok" triggers one technology-result event. Apify selects the tier from your account plan automatically.
| Apify plan tier | Price per result | Price per 1,000 results |
|---|---|---|
| Free | $0.001 | $1.00 |
| Bronze | $0.0009 | $0.90 |
| Silver | $0.0008 | $0.80 |
| Gold | $0.00075 | $0.75 |
| Platinum | $0.00075 | $0.75 |
| Diamond | $0.00075 | $0.75 |
Results with not_found, not_crawled, or error do not trigger a charge. There is no separate start charge. You can set a maximum total charge in Apify before starting a run.
API and integrations
Use the Dataset with Apify integrations, webhooks, Tasks, and Schedules. Save a domain list as a Task and attach a Schedule when you want periodic technology snapshots. For automated workflows, use the Dataset output supplied by Apify after the run completes.
Related Actors
| Actor | Best for |
|---|---|
| Bulk Domain Rating Checker | Adding a domain-authority metric to the same SEO or prospecting list. |
| Similarweb Website Traffic & SEO Analytics Scraper | Adding estimated traffic, rankings, and audience context after technology lookup. |
| Favicon Extractor | Enriching the same domain list with visual brand identifiers for directories or CRMs. |
Limits and data quality
- A run accepts up to 10,000 unique valid domains.
- Duplicate normalized domains are processed once.
- Results are snapshots of publicly available technology information, so a later run can differ for the same domain.
- A domain can return
not_crawledwhen public technology data is not available yet, ornot_foundwhen no Site Info page is returned. - An
errorresult means a temporary access, network, or response-validation issue prevented completion; reviewerrorand retry later when appropriate. - The Actor does not request a crawl or modify target websites.
Frequently asked questions
Can I submit full website URLs?
Yes. The Actor uses the hostname from each URL. For example, https://www.example.org/products is processed as www.example.org.
Are duplicate domains charged twice?
No. Equivalent normalized domains are processed once. A successful unique domain creates one result charge.
Why is a technology marked as recently used?
The published source indicates that it was used until recently. This can be useful for historical research, but it is not a current confirmed detection.
Can I process large lists or run them regularly?
Yes. Submit up to 10,000 unique domains per run. For recurring lookups, save the input as an Apify Task and attach a Schedule.
Responsible use
Use the Actor only for lawful purposes and in accordance with applicable laws, privacy obligations, third-party rights, and the terms governing the public data you use. Do not use results for unauthorized access, deception, harassment, discrimination, or other unlawful activity.
Support
If a run does not behave as expected, open an issue in the Actor's Issues tab. Include the run ID, the affected domain, a reproducible input without secrets, and the expected versus actual result.