Query the BuiltWith API from your app, terminal, or AI agent.
# Homebrew (CLI only)
brew install zcaceres/tap/builtwith
# npm (library + CLI)
npm install builtwith-api
# MCP server (separate package)
npm install -g builtwith-mcpRequires Node.js >= 18 (uses native fetch).
- ESM-only - no more CommonJS/
require()support - Named export -
import { createClient } from 'builtwith-api'(not default/require) - Zod validation - invalid inputs throw
ZodErrorinstead of manual error messages - Typed responses - methods return typed response objects (when using JSON format)
- JSON support
- XML support
- CSV support
- TSV support (lists, relationships)
- TXT support (lists only)
| 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 |
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')The CLI wraps all 13 API methods. No extra dependencies beyond the package itself.
builtwith <command> <primary-arg> [--flag value ...]Pass your API key via --api-key or the BUILTWITH_API_KEY environment variable:
# Flag
builtwith free example.com --api-key YOUR_KEY
# Environment variable
export BUILTWITH_API_KEY=YOUR_KEY
builtwith free example.combuiltwith 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-01Use --help for full usage or builtwith <command> --help for command-specific options:
builtwith --help
builtwith domain --help
builtwith --versionThe MCP server is available as a separate package: builtwith-mcp. It exposes all 13 API methods as tools for LLM clients (Claude Desktop, Cursor, etc.).
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"builtwith": {
"command": "npx",
"args": ["-y", "builtwith-mcp"],
"env": {
"BUILTWITH_API_KEY": "YOUR_KEY"
}
}
}
}Or passing the key directly:
{
"mcpServers": {
"builtwith": {
"command": "npx",
"args": ["-y", "builtwith-mcp", "--api-key", "YOUR_KEY"]
}
}
}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 |
npx @modelcontextprotocol/inspector -- npx -y builtwith-mcp --api-key YOUR_KEYCheck out the full API docs at api.builtwith.com
For LLM-friendly API documentation, see api.builtwith.com/llms.txt