BuiltWith Live Feed API
Real-time WebSocket feed of technology detections as they happen across the web.
Real-time WebSocket feed of technology detections as they happen across the web.
# generated: '2026-08-14'
# method: generated
# source: https://api.builtwith.com/live-feed-api and https://api.builtwith.com/llms.txt
# x-provenance: BuiltWith publishes no AsyncAPI document. Every server, channel, command and
# message field below is transcribed from the provider's own published Live Feed API
# documentation (channel table, client-command table, message-format samples and
# message-field table) and the Live Feed section of llms.txt. Nothing here is invented; where
# the docs do not state a type, the field is left untyped rather than guessed.
asyncapi: 3.0.0
info:
title: BuiltWith Live Feed API
version: '1.0.0'
description: >
Real-time technology detection notifications over WebSocket. Subscribe to technology
channels or rule channels and receive an event each time BuiltWith detects a technology on
a website. Requires an active plan: Basic allows up to 2 technology subscriptions per API
key, Pro up to 50. Trial and expired accounts receive obfuscated domain names.
contact:
name: BuiltWith Support
email: support@builtwith.com
url: https://builtwith.com/contact
externalDocs:
description: BuiltWith Live Feed API documentation
url: https://api.builtwith.com/live-feed-api
license:
name: Commercial - BuiltWith Terms of Use
url: https://builtwith.com/terms
tags:
- name: Live Feed
description: Real-time WebSocket technology detections.
- name: Technology Detection
description: Notifications emitted when BuiltWith detects a technology on a website.
x-generated: '2026-08-14'
x-method: generated
x-source:
- https://api.builtwith.com/live-feed-api
- https://api.builtwith.com/llms.txt
x-authored-by: API Evangelist enrichment pipeline
x-provenance-note: >-
BuiltWith publishes no AsyncAPI document. Every server, channel, command and message field
here is transcribed from the provider's published Live Feed API documentation; this
document is an API Evangelist generation, not a provider artifact.
defaultContentType: application/json
servers:
live:
host: sync.builtwith.com
pathname: /wss
protocol: wss
description: BuiltWith live detection stream. Automatic reconnection is supported.
security:
- $ref: '#/components/securitySchemes/apiKeyQuery'
channels:
new:
address: /wss/new
title: Live feed connection
description: >
Connect to the live feed, then send subscribe commands to join channels. Also usable as
the `new` rule channel - domains new to the pipeline whose technologies were all first
detected within the last day.
servers:
- $ref: '#/servers/live'
messages:
connected:
$ref: '#/components/messages/Connected'
subscribed:
$ref: '#/components/messages/Subscribed'
detection:
$ref: '#/components/messages/Detection'
statusChange:
$ref: '#/components/messages/StatusChange'
error:
$ref: '#/components/messages/ErrorMessage'
command:
$ref: '#/components/messages/ClientCommand'
technology:
address: '/wss/channel/{technology}'
title: Technology channel
description: >
Connect and auto-subscribe to one technology channel. Technology names use dashes in
place of spaces, for example Shopify, WordPress or Google-Analytics.
servers:
- $ref: '#/servers/live'
parameters:
technology:
description: BuiltWith technology name with spaces replaced by dashes.
examples: [Shopify, WordPress, Google-Analytics]
messages:
connected:
$ref: '#/components/messages/Connected'
subscribed:
$ref: '#/components/messages/Subscribed'
detection:
$ref: '#/components/messages/Detection'
statusChange:
$ref: '#/components/messages/StatusChange'
error:
$ref: '#/components/messages/ErrorMessage'
command:
$ref: '#/components/messages/ClientCommand'
operations:
receiveDetections:
action: receive
channel:
$ref: '#/channels/new'
title: Receive live technology detections
summary: Server-sent detection, lifecycle and error frames.
description: >
Frames the server pushes on an open connection - connection confirmation, subscription
confirmation, technology detections, view-mode status changes and errors.
messages:
- $ref: '#/channels/new/messages/connected'
- $ref: '#/channels/new/messages/subscribed'
- $ref: '#/channels/new/messages/detection'
- $ref: '#/channels/new/messages/statusChange'
- $ref: '#/channels/new/messages/error'
sendCommand:
action: send
channel:
$ref: '#/channels/new'
title: Manage subscriptions
description: >
Client-sent JSON commands that join or leave channels and list current subscriptions.
summary: >
Send subscribe / unsubscribe / list_subscriptions commands after connecting. Rule
channels are `new`, `new-historical` and `premium`; any technology name is also a channel.
messages:
- $ref: '#/channels/new/messages/command'
receiveTechnologyDetections:
action: receive
channel:
$ref: '#/channels/technology'
title: Receive detections for one technology
summary: Detections for the technology channel joined at connect time.
description: >
When connecting to /wss/channel/{technology} the client is auto-subscribed to that
technology and receives its detection frames without sending a subscribe command.
messages:
- $ref: '#/channels/technology/messages/detection'
components:
securitySchemes:
apiKeyQuery:
type: httpApiKey
name: KEY
in: query
description: BuiltWith API key in GUID format, supplied on the WebSocket connect URL.
messages:
Connected:
name: connected
title: Connection confirmed
payload:
$ref: '#/components/schemas/ConnectedPayload'
examples:
- name: connected
payload:
type: connected
message: Connected successfully...
available_commands: [subscribe, unsubscribe, list_subscriptions]
view_mode: full
Subscribed:
name: subscribed
title: Subscription confirmed
payload:
$ref: '#/components/schemas/SubscribedPayload'
examples:
- name: subscribed
payload:
type: subscribed
channel: Shopify
channel_id: a1b2c3d4-...
Detection:
name: message
title: Technology detection
payload:
$ref: '#/components/schemas/DetectionPayload'
examples:
- name: detection
payload:
type: message
channel: Shopify
channel_id: a1b2c3d4-...
data:
channel_name: Shopify
website_domain: example.com
epoch_secs: 1770508800
StatusChange:
name: status_change
title: Subscription level changed
payload:
$ref: '#/components/schemas/StatusChangePayload'
examples:
- name: upgraded
payload:
type: status_change
view_mode: full
message: Your subscription has been upgraded. You now have full data access.
ErrorMessage:
name: error
title: Error
payload:
$ref: '#/components/schemas/ErrorPayload'
examples:
- name: unknown-technology
payload:
type: error
message: Technology 'unknown-tech' not found
ClientCommand:
name: command
title: Client subscription command
payload:
$ref: '#/components/schemas/ClientCommandPayload'
examples:
- name: subscribe-technology
payload: {action: subscribe, channel: Shopify}
- name: subscribe-new
payload: {action: subscribe, channel: new}
- name: subscribe-new-historical
payload: {action: subscribe, channel: new-historical}
- name: subscribe-premium
payload: {action: subscribe, channel: premium}
- name: unsubscribe
payload: {action: unsubscribe, channel: Shopify}
- name: list-subscriptions
payload: {action: list_subscriptions}
schemas:
ViewMode:
type: string
description: >
'full' for paid subscribers; redacted (trial/preview) for trial and expired accounts,
which receive obfuscated domains such as grxxt.cxm instead of great.com.
enum: [full, 'redacted (trial/preview)']
ConnectedPayload:
type: object
properties:
type:
type: string
const: connected
message:
type: string
available_commands:
type: array
items:
type: string
enum: [subscribe, unsubscribe, list_subscriptions]
view_mode:
$ref: '#/components/schemas/ViewMode'
SubscribedPayload:
type: object
properties:
type:
type: string
enum: [subscribed, unsubscribed]
channel:
type: string
description: Friendly channel name, for example Shopify or new.
channel_id:
type: string
description: Internal channel id - the technology GUID, or 'new' for rule channels.
DetectionPayload:
type: object
properties:
type:
type: string
const: message
channel:
type: string
channel_id:
type: string
data:
type: object
properties:
channel_name:
type: string
website_domain:
type: string
description: Domain where the technology was detected; redacted for trial users.
epoch_secs:
type: integer
description: Unix epoch seconds for when the detection was queued.
StatusChangePayload:
type: object
properties:
type:
type: string
const: status_change
view_mode:
$ref: '#/components/schemas/ViewMode'
message:
type: string
ErrorPayload:
type: object
properties:
type:
type: string
const: error
message:
type: string
ClientCommandPayload:
type: object
required: [action]
properties:
action:
type: string
enum: [subscribe, unsubscribe, list_subscriptions]
channel:
type: string
description: >
A rule channel (new, new-historical, premium) or any BuiltWith technology name with
dashes for spaces. Not used with list_subscriptions.