# Builtwith Api

> TypeScript library, MCP, and agent-friendly CLI for the BuiltWith API.

- **Type:** MCP server
- **Install:** `agentstack add mcp-zcaceres-builtwith-api`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [zcaceres](https://agentstack.voostack.com/s/zcaceres)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [zcaceres](https://github.com/zcaceres)
- **Source:** https://github.com/zcaceres/builtwith-api
- **Website:** http://builtwith.zach.dev/

## Install

```sh
agentstack add mcp-zcaceres-builtwith-api
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# BuiltWith API

Query the BuiltWith API from your app, terminal, or AI agent.

## Installation

```bash
# Homebrew (CLI only)
brew install zcaceres/tap/builtwith

# npm (library + CLI)
npm install builtwith-api

# MCP server (separate package)
npm install -g builtwith-mcp
```

Requires Node.js >= 18 (uses native `fetch`).

## Breaking Changes in v3

- **ESM-only** - no more CommonJS/`require()` support
- **Named export** - `import { createClient } from 'builtwith-api'` (not default/`require`)
- **Zod validation** - invalid inputs throw `ZodError` instead of manual error messages
- **Typed responses** - methods return typed response objects (when using JSON format)

## Features

### Response Formats
- JSON support
- XML support
- CSV support
- TSV support (lists, relationships)
- TXT support (lists only)

### APIs
| Method | Description |
|--------|-------------|
| `free` | Free technology summary |
| `domain` | Full domain technology lookup |
| `lists` | Sites using a technology |
| `relationships` | Related domains |
| `keywords` | Domain keyword extraction |
| `trends` | Technology adoption trends |
| `companyToUrl` | Company name to domains |
| `domainLive` | Live domain detection |
| `trust` | Trust & fraud signals |
| `tags` | IP & attribute lookups |
| `recommendations` | Technology suggestions |
| `redirects` | Redirect chain history |
| `product` | E-commerce product search |

## Library Usage

```js
import { createClient } from 'builtwith-api'

// Initialize with your API key
const builtwith = createClient(process.env.BUILTWITH_API_KEY, {
  responseFormat: 'json' // 'json' 'xml' 'csv' 'tsv' 'txt' (txt only for lists API)
})

const url = 'facebook.com'

// Free lookup - quick summary
await builtwith.free(url)

// Full domain analysis
await builtwith.domain(url, {
  // This will hide technology description, link, tag and category fields
  hideAll: false,
  // This will hide technology description and link fields (but keep tag and categories)
  hideDescriptionAndLinks: false,
  // This will only return technologies we consider to be live
  onlyLiveTechnologies: true,
  // No meta data (like address, names etc..) will be returned. Improves performance.
  noMetaData: true,
  // No attributes data will be returned
  noAttributeData: true,
  // No personally identifiable information will be returned
  noPII: true,
  // Filter by first detected date range (e.g. '2020-01-01-2024-12-31')
  firstDetectedRange: undefined,
  // Filter by last detected date range
  lastDetectedRange: undefined
})

// List sites using a technology
const technology = 'Shopify'
// The name of a technology. Spaces automatically replaced with dashes (-).
await builtwith.lists(technology, {
  // Brings back meta data with the results, which includes names, titles, social links, addresses, emails, telephone numbers, traffic ranks etc.
  includeMetaData: true,
  // Gets the next page of results - use the exact value from NextOffset in response. If the value of NextOffset is END there are no more results.
  offset: 'oQEwEnH2FJuIzeXOEk2T',
  // Gets live sites using the technology since a certain time, accepts dates and queries i.e. 30 Days Ago or Last January for example.
  since: '2016-01-20'
})

// Find related domains
await builtwith.relationships(url)

// Multi-domain keyword lookup (up to 16 domains)
const urls = ['hotelscombined.com', 'builtwith.com']
await builtwith.keywords(urls)

// Technology trends over time
await builtwith.trends(technology, {
  // Totals will be the closest to this date - providing the ability to get historical totals
  date: '2016-01-20'
})

// Find a company's website
const companyName = 'Shell'
await builtwith.companyToUrl(companyName, {
  // Bring back domains in order of priority - the first result is generally the one we think the website is
  amount: 1,
  // Set the priority extension - if you know the country of the company supply the most likely TLD. i.e. for United Kingdom use 'uk'
  tld: 'com'
})

// Live domain detection
await builtwith.domainLive(url)

// Trust & fraud detection
await builtwith.trust(url, {
  // If the words specified here are in the HTML of the website the result will have Stopwords set to true for LIVE lookups.
  words: 'medicine,masks',
  // Performs a live lookup of the website in question. This slows down the response. A result with a status of 'needLive' requires the LIVE option to determine if the website is suspect or not.
  live: false
})

// Get domains related to IPs and site attributes. Use 'IP-1.2.3.4' format for IP lookups.
await builtwith.tags(url)

// Get technology recommendations for a domain
await builtwith.recommendations(url)

// Get live and historical redirect data for a domain
await builtwith.redirects(url)

// Search for e-commerce sites selling specific products
await builtwith.product('shoes')
```

## CLI

The CLI wraps all 13 API methods. No extra dependencies beyond the package itself.

```bash
builtwith   [--flag value ...]
```

### Authentication

Pass your API key via `--api-key` or the `BUILTWITH_API_KEY` environment variable:

```bash
# Flag
builtwith free example.com --api-key YOUR_KEY

# Environment variable
export BUILTWITH_API_KEY=YOUR_KEY
builtwith free example.com
```

### Examples

```bash
builtwith free example.com
builtwith free example.com --table
builtwith domain example.com --hideAll --onlyLiveTechnologies
builtwith domain "example.com,other.com"
builtwith lists Shopify --since 2024-01-01
builtwith companyToUrl "Acme Corp" --amount 5 --tld com
builtwith trust example.com --words "shop,buy" --live
builtwith trends React --date 2024-06-01
```

Use `--help` for full usage or `builtwith  --help` for command-specific options:

```bash
builtwith --help
builtwith domain --help
builtwith --version
```

## MCP Server

The MCP server is available as a separate package: [`builtwith-mcp`](https://www.npmjs.com/package/builtwith-mcp). It exposes all 13 API methods as tools for LLM clients (Claude Desktop, Cursor, etc.).

### Claude Desktop Configuration

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "builtwith": {
      "command": "npx",
      "args": ["-y", "builtwith-mcp"],
      "env": {
        "BUILTWITH_API_KEY": "YOUR_KEY"
      }
    }
  }
}
```

Or passing the key directly:

```json
{
  "mcpServers": {
    "builtwith": {
      "command": "npx",
      "args": ["-y", "builtwith-mcp", "--api-key", "YOUR_KEY"]
    }
  }
}
```

### Tools

All tools are prefixed with `builtwith_`:

| Tool | Description |
|------|-------------|
| `builtwith_free` | Free technology profile for a domain |
| `builtwith_domain` | Detailed technology profile (supports comma-separated multi-domain) |
| `builtwith_lists` | List domains using a specific technology |
| `builtwith_relationships` | Find related domains via shared identifiers |
| `builtwith_keywords` | Get keywords for domains |
| `builtwith_trends` | Technology adoption trends |
| `builtwith_companyToUrl` | Find domains for a company name |
| `builtwith_domainLive` | Live technology lookup |
| `builtwith_trust` | Trust/verification score |
| `builtwith_tags` | Tracking/analytics tags |
| `builtwith_recommendations` | Technology recommendations |
| `builtwith_redirects` | Redirect chain history |
| `builtwith_product` | E-commerce product search |

### Testing with MCP Inspector

```bash
npx @modelcontextprotocol/inspector -- npx -y builtwith-mcp --api-key YOUR_KEY
```

## Learn More

Check out the full API docs at [api.builtwith.com](https://api.builtwith.com)

For LLM-friendly API documentation, see [api.builtwith.com/llms.txt](https://api.builtwith.com/llms.txt)

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [zcaceres](https://github.com/zcaceres)
- **Source:** [zcaceres/builtwith-api](https://github.com/zcaceres/builtwith-api)
- **License:** MIT
- **Homepage:** http://builtwith.zach.dev/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-zcaceres-builtwith-api
- Seller: https://agentstack.voostack.com/s/zcaceres
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
