# BuiltWith Technology Profile Scraper (`parseforge/builtwith-scraper`) Actor

Scrape BuiltWith.com technology profiles for any list of domains: named technologies with first and last detected dates, full category breakdown, technology spend, AI Index, site age and top-site rank. No login, no API key. Export to CSV, JSON, Excel or XML.

- **URL**: https://apify.com/parseforge/builtwith-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Lead generation, Developer tools, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 domain profiles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🧱 BuiltWith Technology Profile Scraper

> 🚀 **Export the BuiltWith technology profile of any list of domains in seconds.** Paste domains, get one row per site with 27 fields: the named technologies with the month they were first and last detected, the full category breakdown of every detection (330 to 700 per big site), BuiltWith's technology spend estimate, AI Index, site age, top-site rank and the list of subdomains it has profiled. No login, no API key, no browser.

BuiltWith is the reference database of what runs the web. Its public detailed profile page lists every technology it has ever detected on a domain, grouped into 27 categories, each with a first and last detected date and a premium marker. This Actor reads that page for every domain you give it and turns it into one clean row per domain, ready for a spreadsheet, a CRM or an enrichment pipeline.

Every row carries **27 fields**. A single request per domain returns 121 to 699 detections across up to 27 categories, and a five-domain run finishes in about 8 seconds in the cloud. Dates come back as sortable `YYYY-MM` values, removed technologies carry the exact day they were last seen, and every count is computed over the complete detection list, including the ones BuiltWith keeps unnamed for anonymous visitors.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| B2B sales and SDR teams | Enrich account lists with technology spend, named analytics and marketing tools, and the date each one was adopted. |
| Martech and SaaS vendors | Spot accounts that dropped a competitor (removed technologies with the exact date) and time your outreach. |
| Investors and analysts | Compare technology spend, AI readiness and stack size across a portfolio or a sector, on a schedule. |
| Agencies and consultants | Audit a prospect's stack, its history and its subdomains before the first call. |

### 📋 What the BuiltWith Technology Profile Scraper does

> 💡 **Why it matters:** the interesting part of a BuiltWith profile is not the logo wall, it is the timeline. When did the site add Segment, when did it drop Google Universal Analytics, how much does its paid stack cost per month, how many of its 500 detections are premium tools. This Actor puts all of that on one row per domain and lets you pull it for hundreds of domains in one run.

- 🌐 **Domains in, rows out.** Paste plain domains, full URLs or subdomains. The Actor reduces each to the root domain BuiltWith profiles (`blog.hubspot.com` becomes `hubspot.com`) and reports both the input and the profiled domain.
- 🏷 **Named technologies with dates.** Every named detection comes with its category, BuiltWith's tag list (up to 20 tags per tool), the month it was first detected, the month it was last detected, whether it is live or removed, whether BuiltWith marks it premium, its trends page and its icon.
- 📊 **The full picture, honestly counted.** BuiltWith names the first 21 detections of a public profile and hides the rest behind its paid plan, but it still publishes their category, tags, dates and premium flag. The Actor keeps those rows as `Not Disclosed` with all the data BuiltWith does show, so `technologyCount`, `currentTechnologyCount`, `removedTechnologyCount` and `premiumTechnologyCount` describe the whole stack, not just the visible part.
- 💵 **Technology spend.** BuiltWith's monthly spend estimate for the paid stack as a number (`86553`), the same figure it shows on the profile.
- 🤖 **AI Index.** The overall AI Index score and level, the AI Maturity, AI Openness and AI Visibility sub-scores, and the signal list behind them with the technology each signal points to (llms.txt, Universal Commerce Protocol, Cloudflare access challenges and so on).
- 📅 **Site age and rank.** First registration date as ISO, age in years, and the BuiltWith Top Site Rank.
- 🗂 **Category breakdown.** One entry per category with total, live, removed and named counts, so you can see at a glance that a store runs 68 widgets and 15 payment integrations without reading 500 rows.
- 🧭 **Subdomains.** Every host BuiltWith has profiled under the domain, from `m.` and `eu.` storefronts to `api.` and `dev.` environments.
- 🚫 **Removed technologies with the exact day.** Historical detections keep the precise last-seen date BuiltWith records (`2025-03-20`), the churn signal a competitor's sales team pays for.
- 🔀 **Filters.** Drop unnamed detections or removed technologies from the technology list when you only want the live, named stack. Counts stay complete either way.
- 🛡 **Built for BuiltWith's limits.** BuiltWith drops an IP after a burst of lookups. The Actor gives each worker its own exit IP, rotates it every 12 domains, backs off on rate limits and retries with a fresh IP, so a 500-domain list finishes without babysitting.
- 📦 **One fixed schema.** Columns never move, so your spreadsheet or database mapping never breaks.

### 🎬 Full Demo (🚧 Coming soon)

A short walkthrough video is in production and will land here.

### 📊 Output

One row per domain, 27 fields, always in this order.

| Field | Type | Description |
|---|---|---|
| 🖼 `imageUrl` | string | Favicon of the domain. |
| 🌐 `domain` | string | Domain BuiltWith actually profiled. |
| 📥 `inputDomain` | string | Domain as you entered it, normalised (subdomains and URLs are reduced to a host). |
| 🔗 `url` | string | The BuiltWith detailed profile page. |
| 💵 `technologySpendMonthlyUsd` | number | BuiltWith's monthly technology spend estimate in US dollars. |
| 🏆 `topSiteRank` | number | Position in BuiltWith's top sites list. |
| 📅 `siteFirstRegistered` | string | First registration date, ISO `YYYY-MM-DD`. |
| ⏳ `siteAgeYears` | number | Years since first registration. |
| 🤖 `aiIndexScore` | number | BuiltWith AI Index, 0 to 100. |
| 📶 `aiIndexLevel` | string | `High`, `Medium` or `Low`. |
| 🧠 `aiMaturityScore` | number | Technical ability to implement AI, 0 to 100. |
| 🤝 `aiOpennessScore` | number | Willingness to participate in AI ecosystems, 0 to 100. |
| 👁 `aiVisibilityScore` | number | Evidence of AI tooling, 0 to 100. |
| 🧱 `technologyCount` | number | Every detection on the profile, named or not, live or removed. |
| ✅ `currentTechnologyCount` | number | Detections BuiltWith still sees on the site. |
| 🚫 `removedTechnologyCount` | number | Detections BuiltWith no longer sees. |
| 🏷 `namedTechnologyCount` | number | Detections whose name BuiltWith publishes to anonymous visitors (at most 21). |
| 🔒 `redactedTechnologyCount` | number | Detections whose name BuiltWith withholds. |
| 💲 `premiumTechnologyCount` | number | Detections BuiltWith marks as paid-for technologies. |
| 🗂 `categoryCount` | number | Number of technology categories present. |
| 🧰 `technologyNames` | string | Comma-separated list of the named, live technologies, for a quick CSV column. |
| 📚 `categories` | array | One entry per category: `category`, `total`, `current`, `removed`, `named`. |
| 🧩 `technologies` | array | One entry per detection: `name`, `category`, `tags`, `firstDetected`, `lastDetected`, `removedOn`, `isCurrent`, `isPremium`, `isFree`, `isRedacted`, `trendsUrl`, `iconUrl`. |
| 📡 `aiIndexSignals` | array | The reasons behind the AI Index: `pillar`, `signal`, `technology`, `path`, `points`. |
| 🧭 `subdomains` | array | Hosts BuiltWith has profiled under the domain. |
| 🕒 `scrapedAt` | string | ISO timestamp of the lookup. |
| ❌ `error` | string | `null` on success. A domain BuiltWith does not know produces a short error row instead. |

Values BuiltWith does not publish for a site come back as `Not Disclosed`. Structural non-values (a removal date on a live technology) come back as `N/A`.

#### Sample records

```json
{
  "imageUrl": "https://www.google.com/s2/favicons?domain=stripe.com&sz=128",
  "domain": "stripe.com",
  "inputDomain": "stripe.com",
  "url": "https://builtwith.com/detailed/stripe.com",
  "technologySpendMonthlyUsd": 86553,
  "topSiteRank": 4294,
  "siteFirstRegistered": "1995-09-12",
  "siteAgeYears": 30,
  "aiIndexScore": 95,
  "aiIndexLevel": "High",
  "aiMaturityScore": 100,
  "aiOpennessScore": 80,
  "aiVisibilityScore": 100,
  "technologyCount": 330,
  "currentTechnologyCount": 261,
  "removedTechnologyCount": 69,
  "namedTechnologyCount": 21,
  "redactedTechnologyCount": 309,
  "premiumTechnologyCount": 56,
  "categoryCount": 23,
  "technologyNames": "Marketo, Mixpanel, Salesforce, Clearbit, Google Optimize 360, Google Analytics, Google Universal Analytics, Google Analytics 4, Google Analytics Classic, Google Conversion Tracking, Google AdWords Conversion, Facebook Pixel, Facebook Conversion Tracking, Global Site Tag, Google Conversion Linker, Twitter Website Universal Tag, Twitter Conversion Tracking, ZoomInfo, Fastly, Reddit Conversion Tracking",
  "categories": [
    { "category": "Analytics and Tracking", "total": 31, "current": 20, "removed": 11, "named": 21 },
    { "category": "Widgets", "total": 29, "current": 20, "removed": 9, "named": 0 }
  ],
  "technologies": [
    {
      "name": "Marketo",
      "category": "Analytics and Tracking",
      "tags": ["Marketing Automation", "Lead Generation", "Sales Enablement", "Account Based Marketing", "B2B Marketing"],
      "firstDetected": "2019-11",
      "lastDetected": "2026-06",
      "removedOn": "N/A",
      "isCurrent": "Yes",
      "isPremium": "Yes",
      "isFree": "No",
      "isRedacted": "No",
      "trendsUrl": "https://trends.builtwith.com/analytics/Marketo",
      "iconUrl": "https://x.cdnpi.pe/serve/edBhGOOFLJGbHbsQ-3613753b/marketo.com"
    }
  ],
  "aiIndexSignals": [
    { "pillar": "AI Maturity", "signal": "Publishes an llms.txt file", "technology": "LLMS Text", "path": "N/A", "points": 25 }
  ],
  "subdomains": ["js.stripe.com", "ai.stripe.com", "pay.stripe.com"],
  "scrapedAt": "2026-09-03T21:31:24.925Z",
  "error": null
}
```

```json
{
  "domain": "shopify.com",
  "technologySpendMonthlyUsd": 116902,
  "topSiteRank": 999900,
  "siteFirstRegistered": "2005-03-11",
  "aiIndexScore": 100,
  "aiIndexLevel": "High",
  "technologyCount": 549,
  "currentTechnologyCount": 358,
  "removedTechnologyCount": 191,
  "namedTechnologyCount": 21,
  "premiumTechnologyCount": 101,
  "categoryCount": 27,
  "technologyNames": "Hubspot, Salesforce, Hotjar, Klaviyo, Segment, Rapleaf, CrazyEgg, Google Analytics, Google Universal Analytics, Google Analytics Classic, Google Analytics 4, Google Conversion Tracking, Facebook Domain Insights, Yahoo Dot, Facebook Pixel, Branch, LinkedIn Insights, Bing Universal Event Tracking, Facebook Conversion Tracking, Global Site Tag, Twitter Website Universal Tag"
}
```

```json
{
  "domain": "hubspot.com",
  "inputDomain": "blog.hubspot.com",
  "technologySpendMonthlyUsd": 63092,
  "siteFirstRegistered": "2005-02-06",
  "aiIndexScore": 96,
  "technologyCount": 339,
  "currentTechnologyCount": 258,
  "removedTechnologyCount": 81,
  "premiumTechnologyCount": 80,
  "categoryCount": 25,
  "technologies": [
    {
      "name": "Google Analytics Event Tracking",
      "category": "Analytics and Tracking",
      "tags": [],
      "firstDetected": "2015-05",
      "lastDetected": "2015-05",
      "removedOn": "2015-05-30",
      "isCurrent": "No",
      "isPremium": "No",
      "isFree": "Yes",
      "isRedacted": "No",
      "trendsUrl": "https://trends.builtwith.com/analytics/Google-Analytics-Event-Tracking",
      "iconUrl": "https://x.cdnpi.pe/serve/UPASDUCKmLywn7PY-045d832b/google.com"
    }
  ]
}
```

### ✨ Why choose this Actor

- 🗓 **Dates, not just names.** First and last detected month for every detection and the exact removal day for dropped tools. A tech list without dates cannot tell you who just switched CRM.
- 🔢 **Complete counts.** Every count covers the whole profile, including the detections BuiltWith leaves unnamed, so a 549-detection stack reads as 549, not 21.
- 💵 **Spend, AI Index, rank and age on the same row.** Four numbers most tech-stack tools do not return at all.
- 🧭 **Subdomain map.** Hundreds of hosts per large domain, useful for security audits and account mapping.
- 🔀 **Honest redaction handling.** Unnamed detections are flagged `isRedacted: "Yes"` and can be switched off, never silently dropped or passed off as named.
- 🛡 **Survives BuiltWith's IP limits.** Per-worker exit IPs, rotation every 12 lookups and rate-limit backoff are built in.
- 📦 **Fixed 27-field schema** with `Not Disclosed` and `N/A` sentinels instead of nulls.

### 📈 How it compares to alternatives

| | This Actor | Official BuiltWith Actor | Live tech detectors (Wappalyzer-style) | Other BuiltWith page scrapers |
|---|---|---|---|---|
| Source | BuiltWith public detailed profile | BuiltWith database via their API | Fetches the site and fingerprints it | BuiltWith pages |
| Named technologies per domain | First 21 (BuiltWith's public limit), rest unnamed but dated and categorised | All | Only what the homepage exposes today | Some ship "Upgrade to Advanced" as a technology name |
| First / last detected dates | Yes, every detection | No | No | Sometimes |
| Removed technologies with exact date | Yes | No | No | Rarely |
| Technology spend, AI Index, top-site rank, site age | Yes | No | No | Rarely |
| Subdomain list | Yes | No | No | No |
| Login or API key | None | None | None | None |
| Price per 1,000 domains | $2.00, down to $1.50 at volume | $2.00 | $0.01 to $100 | $1.50 to $25 |

The public BuiltWith profile names only the first 21 detections to anonymous visitors. If you need every technology named, the official BuiltWith Actor reads their database directly. If you need the timeline, the spend and the removal dates, this Actor is the one that returns them.

### 🚀 How to use

1. Create a free Apify account with $5 of monthly credit at [console.apify.com/sign-up](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [BuiltWith Technology Profile Scraper](https://apify.com/parseforge/builtwith-scraper) and click **Try for free**.
3. Paste your domains, one per line. Full URLs and subdomains are fine.
4. Optionally untick unnamed or removed detections if you only want the live, named stack in the technology list.
5. Click **Start**. A five-domain run takes about 8 seconds.
6. Open the **Dataset** tab and download CSV, Excel, JSON or XML, or pull the rows through the API.

Example input:

```json
{
  "domains": ["stripe.com", "shopify.com", "blog.hubspot.com"],
  "maxItems": 100,
  "includeRedactedTechnologies": true,
  "includeRemovedTechnologies": true
}
```

### 💼 Business use cases

#### 🎯 Account enrichment for sales

Run your target account list once a week. `technologySpendMonthlyUsd` ranks accounts by budget, `technologyNames` tells the rep which analytics, CRM and marketing tools are live, and `premiumTechnologyCount` shows how much paid software the account is used to buying.

#### 🔄 Churn and switch signals

Filter `technologies` for `isCurrent: "No"` and sort by `removedOn`. A site that dropped a competitor's marketing automation tool three weeks ago is a warm lead today, and the exact date lets you score the signal by freshness.

#### 📊 Market and portfolio analysis

Compare `technologyCount`, `categoryCount`, `aiIndexScore` and spend across a sector or a fund's portfolio. The `categories` array gives you per-category stack size for a heatmap without parsing hundreds of rows.

#### 🔐 Attack surface and due diligence

`subdomains` lists every host BuiltWith has profiled, from `dev.` and `api.` to regional storefronts. Combined with the removed-technology timeline it is a fast first pass for security reviews and acquisition due diligence.

### 🔌 Automating BuiltWith Technology Profile Scraper

- **Make and Zapier:** trigger a run when a new company lands in your CRM and write the spend, AI Index and named technologies back to the record.
- **Slack:** post a message when a tracked domain's `removedTechnologyCount` grows, with the tool that disappeared.
- **Airbyte:** sync the dataset into your warehouse on a schedule and keep a history of each domain's stack.
- **GitHub Actions:** run the Actor on every release of your integration list to catch prospects that adopted a compatible platform.
- **Google Drive:** export the CSV to a shared folder for the sales team every Monday.

### 🌟 Beyond business use cases

- **Research:** measure the adoption and abandonment of analytics and consent tools across thousands of domains with real first and last detected dates.
- **Personal:** check what your own sites expose and when BuiltWith first noticed each tool.
- **Non-profit:** audit the trackers your partners' sites run before sharing donor traffic.
- **Experimentation:** feed the AI Index signals into your own AI-readiness scoring and compare it with BuiltWith's.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant that can read a URL:

> Read https://apify.com/parseforge/builtwith-scraper and tell me which of its 27 output fields I should use to find companies that recently removed a marketing automation tool, and how to filter the `technologies` array for that.

### ❓ Frequently Asked Questions

#### 🔑 Do I need a BuiltWith account or API key?

No. The Actor reads the public detailed profile page that BuiltWith serves to anonymous visitors.

#### 🏷 Why are most technologies named "Not Disclosed"?

BuiltWith names only the first 21 detections of a profile to anonymous visitors and hides the rest behind its paid plan. It still publishes their category, tags, first and last detected dates and premium flag, and the Actor keeps all of that. Set `includeRedactedTechnologies` to false if you want only named rows in the list; the counts stay complete either way.

#### 📅 What do `firstDetected` and `lastDetected` mean?

The month BuiltWith first and most recently saw the technology on the site, as `YYYY-MM`. For removed technologies `removedOn` carries the exact day of the last detection.

#### 🚫 What is a removed technology?

A detection BuiltWith no longer sees on the site. It stays on the profile as history, and the Actor marks it `isCurrent: "No"` with its removal date. Set `includeRemovedTechnologies` to false to leave them out of the list.

#### 💵 Where does `technologySpendMonthlyUsd` come from?

It is BuiltWith's own estimate, the sum of the average cost of the active premium technologies it detects. Treat it as a published minimum, not an audited expense.

#### 🤖 What is the AI Index?

BuiltWith's 0 to 100 score for a site's AI readiness, built from AI Maturity, AI Openness and AI Visibility. The Actor returns the score, the level, the three sub-scores and the signal list with the points each signal adds or subtracts.

#### 🌐 Can I paste full URLs or subdomains?

Yes. `https://www.shopify.com/enterprise` becomes `shopify.com` and `blog.hubspot.com` is redirected by BuiltWith to `hubspot.com`. Both the input and the profiled domain are on the row.

#### 🕳 What happens with a domain BuiltWith does not know?

You get a short error row for that domain and the run continues. Error rows are never charged.

#### 🛡 Do I need a proxy?

BuiltWith drops an IP after roughly 45 lookups in a few minutes, so keep the proxy on for any real list. Apify datacenter proxy is enough; the Actor rotates exit IPs every 12 domains and backs off on rate limits.

#### ⚡ How fast is it?

One request per domain. A five-domain run finishes in about 8 seconds in the cloud, and the Actor processes three domains in parallel with a short pause between lookups to stay under BuiltWith's limits.

#### 📦 How many domains can I run at once?

Up to 1,000,000 per run on a paid plan. Free accounts are limited to 10 domains per run as a preview.

#### 🔁 Can I schedule it?

Yes. Use the Schedule tab in Apify Console to re-run the same list daily or weekly and keep a history of every domain's stack.

### 🔌 Integrate with any app

Every run is available through the Apify API, webhooks and the official integrations for Make, Zapier, n8n, Airbyte, Google Sheets, Slack and more. Pull the dataset as JSON, CSV, Excel or XML from the run's dataset URL.

### 🔗 Recommended Actors

- [Capterra Reviews Scraper](https://apify.com/parseforge/capterra-reviews-scraper) for the reviews behind the tools a domain runs.
- [Skool Community Scraper](https://apify.com/parseforge/skool-scraper) for creator communities and their pricing.
- [Walmart Scraper](https://apify.com/parseforge/walmart-scraper) for retail product and price data.
- [LinkedIn Comments Scraper](https://apify.com/parseforge/linkedin-comments-scraper) for engagement on company posts.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more data sources.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA) and we will get back to you.

> **⚠️ Disclaimer:** this is an independent tool and is not affiliated with, endorsed by or connected to BuiltWith Pty Ltd. It only collects data that BuiltWith publishes on its public web pages. Respect BuiltWith's terms of use and applicable law when you use it.

# Actor input Schema

## `domains` (type: `array`):

Websites to look up, one per line. Plain domains work best (stripe.com). Full URLs and subdomains are reduced to the root domain BuiltWith profiles (blog.hubspot.com becomes hubspot.com).

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `includeRedactedTechnologies` (type: `boolean`):

Keep detections whose name BuiltWith withholds. They arrive with name "Not Disclosed" but with the real category, tags, first and last detected dates and premium flag.

## `includeRemovedTechnologies` (type: `boolean`):

Keep technologies BuiltWith no longer detects on the site (historical stack). Each carries the exact date it was last seen.

## `proxyConfiguration` (type: `object`):

Apify datacenter proxy is enough for builtwith.com. Switch to residential only if datacenter sessions start timing out.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "shopify.com",
    "hubspot.com",
    "gymshark.com",
    "nytimes.com"
  ],
  "maxItems": 10,
  "includeRedactedTechnologies": true,
  "includeRemovedTechnologies": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Key fields per domain: spend, rank, AI Index, detection counts and named technologies

## `fullData` (type: `string`):

Complete dataset with all 27 fields, including the per-technology list, category breakdown, AI Index signals and known subdomains

# 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 = {
    "domains": [
        "stripe.com",
        "shopify.com",
        "hubspot.com",
        "gymshark.com",
        "nytimes.com"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/builtwith-scraper").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 = {
    "domains": [
        "stripe.com",
        "shopify.com",
        "hubspot.com",
        "gymshark.com",
        "nytimes.com",
    ],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/builtwith-scraper").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 '{
  "domains": [
    "stripe.com",
    "shopify.com",
    "hubspot.com",
    "gymshark.com",
    "nytimes.com"
  ],
  "maxItems": 10
}' |
apify call parseforge/builtwith-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/builtwith-scraper"
        }
    }
}

```

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/9pSA2gfv9v0CHG6Hz/builds/dcBKI1jNoReo0usGj/openapi.json
