# Websites Using Any Technology — BuiltWith-Style Lead Lists (`aitorsm/websites-by-technology`) Actor

Find every website using a technology (Shopify, WooCommerce, HubSpot, Klaviyo, Stripe and 7,000+ more). Filter by country, language, domain rank and extra technologies. Get emails, social profiles and the full tech stack.

- **URL**: https://apify.com/aitorsm/websites-by-technology.md
- **Developed by:** [Aitor Sanchez-Mansilla](https://apify.com/aitorsm) (community)
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 1,000 websites

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Websites Using Any Technology — BuiltWith Alternative

Type a technology, such as **Shopify**, **WooCommerce**, **HubSpot**, **Klaviyo** or **Stripe**, and get the list of websites that use it. Filter by country, language, minimum domain rank and extra technologies. Each website comes with its title, description, country, language, domain rank, public emails, phones, social profiles and full tech stack.

> "All Shopify stores in Spain that also run Klaviyo, with an email address." That's one run.

### Why this Actor

Technology lead lists are how agencies and SaaS companies build outbound campaigns. A Klaviyo agency looks for Shopify stores without an email tool. A payments startup looks for WooCommerce shops in Germany. A Shopify app targets stores that already use a competitor. It is a BuiltWith and Wappalyzer alternative for lead lists: same kind of "every site using X" export, but you pay only per website, with no subscription.

- **9,000+ technologies**: e-commerce platforms, CMSs, CRMs, email marketing, payments, analytics, chat, CDNs, Shopify apps, WordPress plugins and more.
- **Combine technologies**: "WooCommerce **and** Klaviyo", "Shopify **and** Stripe **and** Gorgias".
- **Filter by market**: country, website language, minimum domain rank (skips tiny and parked sites).
- **Ready for outreach**: public emails, phones, social profiles (LinkedIn, Instagram, Facebook…), and the full tech stack for personalisation.
- **Sorted by domain rank**, so the biggest and most established websites come first.
- **Cost stays under your control**: you set `maxResults` and pay only for websites delivered. The run also respects your Max total charge.

### Who it is for

- **Agencies** (e-commerce, email marketing, CRO, SEO) building prospect lists by platform and market.
- **SaaS and app makers** finding websites that use a complementary or competing tool.
- **Sales and growth teams** sizing a market: the log tells you how many websites match (e.g. 3,124 Shopify stores in Spain) before you buy the whole list.
- **Investors and analysts** tracking technology adoption by country.

### What can I type in "Websites that use this software"?

The name of the platform or tool, as it is commonly known. 9,000+ are recognised: **[full list of names (plain text)](https://api.apify.com/v2/key-value-stores/ncyWRV8jdaOUN8iEM/records/technologies.txt)**. The most requested ones:

| Type | Examples you can type |
|---|---|
| Online store platforms | `Shopify`, `WooCommerce`, `Magento`, `PrestaShop`, `BigCommerce`, `Wix eCommerce`, `Squarespace Commerce`, `Shopware`, `Salesforce Commerce Cloud`, `OpenCart` |
| Website builders / CMS | `WordPress`, `Wix`, `Squarespace`, `Webflow`, `Drupal`, `Joomla`, `HubSpot CMS Hub`, `Ghost`, `Framer Sites` |
| Email marketing | `Klaviyo`, `MailChimp`, `Brevo`, `ActiveCampaign`, `Omnisend`, `Campaign Monitor`, `Constant Contact`, `MailerLite` |
| CRM / marketing automation | `HubSpot`, `Salesforce`, `Pipedrive`, `Zoho`, `Marketo`, `Intercom` |
| Payments | `Stripe`, `PayPal`, `Klarna Checkout`, `Adyen`, `Braintree`, `Afterpay`, `Square` |
| Live chat / support | `Intercom`, `Zendesk`, `Tidio`, `Drift`, `LiveChat`, `Gorgias`, `Freshchat`, `Crisp Live Chat` |
| Analytics / CRO | `Google Analytics`, `Hotjar`, `Microsoft Clarity`, `Mixpanel`, `Segment`, `Optimizely`, `VWO` |
| Reviews / loyalty (stores) | `Trustpilot`, `Yotpo Reviews`, `Judge.me`, `Okendo`, `Smile`, `LoyaltyLion`, `Stamped` |
| Booking | `Calendly`, `OpenTable`, `Resy`, `SevenRooms`, `MindBody`, `Booksy` |

Not sure about the exact name? Type it your way. If it is not recognised, the run stops **before charging anything** and suggests the closest names (`Shopifyy` → *Did you mean "Shopify"?*).

### Input

| Field | What it does |
|---|---|
| **Websites that use this software** (required) | The platform or tool the websites run, e.g. `Shopify` (online stores), `WordPress`, `HubSpot`. Case doesn't matter. If the name is unknown, the run stops before spending anything and suggests close matches (`"Shopifyy"` → *Did you mean "Shopify"?*). |
| **...and that also use** | Other software the website must **also** use (all of them), e.g. `["Klaviyo"]`. Up to 9. |
| **Country** | One of 40 main markets, or *Any country*. |
| **Language of the websites** | Pick from the list (English, Spanish, German…) or leave *Any language*. Via API: 2-letter code such as `es`. |
| **Skip small websites: minimum rank** | 0 (tiny) to 1000 (very large), based on links from other sites. 100–200 removes most tiny and parked sites. |
| **Only websites that show a public email** | Keep only websites that publish an email. |
| **How many websites (max)** | How many websites to return (and pay for). Default 100. |

Example input:

```json
{
    "technology": "WooCommerce",
    "alsoUsing": ["Klaviyo"],
    "country": "US",
    "minDomainRank": 200,
    "maxResults": 500
}
```

### Output

One row per website. A real row (Shopify, Spain, retrieved 26 September 2026):

```json
{
  "domain": "ferreteriadefrutos.com",
  "url": "https://ferreteriadefrutos.com",
  "title": "DE FRUTOS - Ferreterías – DE FRUTOS Ferreterías",
  "description": "T Suministro industrial de confianza Tiendas y Almacén en Madrid Envíos 24/48h",
  "country": "ES",
  "language": "es",
  "domainRank": 490,
  "emails": ["web@ferreteriadefrutos.com"],
  "phones": ["+34916580823", "+34618570207"],
  "hasPhone": true,
  "socialProfiles": [
    "https://www.facebook.com/DeFrutosFerreterias/",
    "https://www.instagram.com/defrutosferreterias/",
    "https://www.linkedin.com/company/de-frutos/?viewAsMember=true"
  ],
  "technologies": ["Cloudflare", "HTTP/3", "Shopify", "Smile", "Smile App"],
  "technologiesByCategory": {
    "cdn": ["Cloudflare"],
    "ecommerce": ["Shopify"],
    "loyalty_and_rewards": ["Smile"],
    "miscellaneous": ["HTTP/3"],
    "shopify_apps": ["Smile App"]
  },
  "lastVisited": "2026-09-18T12:42:36.000Z",
  "matchedTechnology": "Shopify",
  "checkedAt": "2026-09-26T11:28:34.798Z"
}
```

Download as CSV, Excel, JSON or XML from the Output tab, or pull it via the API. The key-value store also holds a `RUN_SUMMARY` with `totalMatching` (how many websites match your filters in total), `itemsDelivered` and `stopReason`.

### Pricing

**$0.008 per website** ($8 per 1,000; lower on higher Apify plans, down to $0.0075), charged per row delivered, plus **$0.015 per run** to start the search. Nothing else: no subscription. An unknown technology name fails before anything is bought. `maxResults` and your run's Max total charge are both hard ceilings.

### Real-time API and AI agents (Standby)

The Actor also runs as a real-time API:

```
GET https://<standby-url>/websites?technology=Shopify&country=ES&minDomainRank=100&limit=20
```

This returns `{ technologies, totalCount, offset, nextOffset, count, rows }` with up to 100 websites per call. Page through with `offset=nextOffset`. Errors come back as JSON: `400` for bad input (unknown technologies include `suggestions`), `402` when the run's Max total charge is used up.

For AI agents, use Apify's MCP integration to run this Actor with batch input and read the run's dataset for full results.

### FAQ

**Is this a BuiltWith or Wappalyzer alternative?**
Yes. Both are subscription tools for looking up which websites use a technology. This Actor gives you the same kind of list (sites, emails, social profiles, full tech stack) and charges per website returned, so a one-off list of 1,000 sites costs $8 instead of a monthly plan.

**How fresh is the data? How complete?**
Every row has `lastVisited`, the date the website's technologies were last checked. Top-ranked sites are usually re-checked within weeks. In our tests, 19 of the top 20 Shopify stores in Spain had been visited in the last 5 weeks. Smaller sites can be older (some 2022–2024). Coverage is broad but not every website on the internet: for example, there are 3,124 Shopify stores for Spain and 84,552 WooCommerce sites for the US. If freshness matters, filter your export on `lastVisited`.

**What about phone numbers?**
Phones are included when the website publishes them in full. Masked or partial numbers (e.g. `+349****3618`) are dropped, never passed off as usable. `hasPhone` tells you at a glance. To collect more emails and phones from each website's contact pages, feed the domains into [Email Extractor](https://apify.com/aitorsm/email-extractor).

**Why do some websites have no email?**
Only emails published on the site are included. About half of top-ranked stores publish one. Turn on *Only websites that show a public email* to keep just those. You still pay only for websites delivered. On markets where very few sites publish an email, the run stops after scanning 5× your `maxResults` and says so in the log.

**"Unknown technology": how do I find the right name?**
Use the usual product name (`HubSpot`, `Google Analytics`, `Mailchimp`, `PrestaShop`). The run suggests the closest names from the catalogue of 9,000+ technologies. Case and punctuation don't matter.

**Can I get more than 10,000 websites?**
Yes. `maxResults` goes up to 100,000, and the Actor pages through the results automatically.

**What does domain rank mean?**
A 0–1000 authority score based on the website's backlinks. Higher means bigger and better linked. Results are sorted by it, highest first.

### Related Actors

- [Email Extractor](https://apify.com/aitorsm/email-extractor): turn this list of domains into more emails and phone numbers from each site's contact pages.
- [Domain Intelligence](https://apify.com/aitorsm/domain-intelligence): enrich each domain in the list with more domain-level data.

### Disclaimer

Not affiliated with BuiltWith, Wappalyzer or any of the technologies listed. Product names are used only to describe what this Actor does.

# Actor input Schema

## `technology` (type: `string`):

The platform, tool or app the websites must run, e.g. <b>Shopify</b> (online stores), <b>WordPress</b> (sites/blogs), <b>WooCommerce</b>, <b>HubSpot</b>, <b>Klaviyo</b>, <b>Stripe</b>. 9,000+ are recognised — <a href="https://api.apify.com/v2/key-value-stores/ncyWRV8jdaOUN8iEM/records/technologies.txt" target="_blank">see the full list</a>; case does not matter. If the name is not recognised the run stops before charging anything and suggests the closest names.

## `alsoUsing` (type: `array`):

Narrow the list to websites that run these too. Example: Shopify + <b>Klaviyo</b> = Shopify stores that also use Klaviyo. Leave empty to skip. Up to 9.

## `country` (type: `string`):

Only websites that belong to this country.

## `language` (type: `string`):

Only websites written in this language. Useful in multilingual countries (e.g. Catalan vs Spanish, French vs Dutch in Belgium).

## `minDomainRank` (type: `integer`):

Rank goes from 0 (tiny or parked site) to 1000 (very large site), based on how many other sites link to it. Leave empty to get all sizes, use 100–200 to skip tiny sites. Results always come biggest first.

## `onlyWithEmail` (type: `boolean`):

Keep only websites where an email address was found. You are charged only for websites delivered.

## `maxResults` (type: `integer`):

Maximum websites to return. You pay per website delivered, so this also caps the cost.

## Actor input object example

```json
{
  "technology": "WooCommerce",
  "alsoUsing": [
    "Klaviyo"
  ],
  "country": "ES",
  "language": "any",
  "minDomainRank": 200,
  "onlyWithEmail": false,
  "maxResults": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "technology": "Shopify",
    "alsoUsing": [],
    "country": "ES",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("aitorsm/websites-by-technology").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "technology": "Shopify",
    "alsoUsing": [],
    "country": "ES",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("aitorsm/websites-by-technology").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "technology": "Shopify",
  "alsoUsing": [],
  "country": "ES",
  "maxResults": 50
}' |
apify call aitorsm/websites-by-technology --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aitorsm/websites-by-technology"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1hNAZKKHrSuJth6kW/builds/BUo4dq0ziftGLxhef/openapi.json
