BuiltWith Domain Relationships API
Identify domain interconnections via shared identifiers
Identify domain interconnections via shared identifiers
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/builtwith-domain-relationships-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: BuiltWith Change Bulk Processing Domain Relationships API
description: 'Track technology additions and removals on websites with business context. Returns AI-generated summaries explaining the business significance of technology changes. Credits are only consumed when changes are found.
'
version: change1
contact:
name: BuiltWith Support
url: https://builtwith.com/contact
termsOfService: https://builtwith.com/terms
license:
name: Commercial
url: https://builtwith.com/plans
servers:
- url: https://api.builtwith.com/change1
description: BuiltWith Change API v1
security:
- apiKeyQuery: []
- apiKeyHeader: []
tags:
- name: Domain Relationships
description: Identify domain interconnections via shared identifiers
paths:
/api.json:
get:
summary: Get domain relationships (JSON)
description: 'Returns relationships for one or more domains based on shared identifiers such as analytics IDs, IP addresses, and other attributes. Paginate using the next_skip value from the response.
'
operationId: getDomainRelationshipsJson
tags:
- Domain Relationships
parameters:
- $ref: '#/components/parameters/KEY'
- $ref: '#/components/parameters/LOOKUP'
- $ref: '#/components/parameters/OFFSET'
- $ref: '#/components/parameters/IP'
responses:
'200':
description: Domain relationship data
content:
application/json:
schema:
$ref: '#/components/schemas/RelationshipsResponse'
example:
results: 1250
max_per_page: 500
next_skip: 500
more_results: true
Relationships:
- Domain: builtwith.com
Identifiers:
- Type: google-analytics
Value: UA-12345678-1
First: 1451606400000
Last: 1748736000000
Matches:
- Domain: related-site.com
First: 1451606400000
Last: 1748736000000
Overlap: true
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api.xml:
get:
summary: Get domain relationships (XML)
operationId: getDomainRelationshipsXml
tags:
- Domain Relationships
parameters:
- $ref: '#/components/parameters/KEY'
- $ref: '#/components/parameters/LOOKUP'
- $ref: '#/components/parameters/OFFSET'
responses:
'200':
description: Domain relationships in XML
content:
application/xml:
schema:
type: object
/api.csv:
get:
summary: Get domain relationships (CSV)
operationId: getDomainRelationshipsCsv
tags:
- Domain Relationships
parameters:
- $ref: '#/components/parameters/KEY'
- $ref: '#/components/parameters/LOOKUP'
responses:
'200':
description: Domain relationships in CSV
content:
text/csv:
schema:
type: string
/api.tsv:
get:
summary: Get domain relationships (TSV)
operationId: getDomainRelationshipsTsv
tags:
- Domain Relationships
parameters:
- $ref: '#/components/parameters/KEY'
- $ref: '#/components/parameters/LOOKUP'
responses:
'200':
description: Domain relationships in TSV
content:
text/tab-separated-values:
schema:
type: string
components:
parameters:
KEY:
name: KEY
in: query
required: false
schema:
type: string
format: uuid
example: 00000000-0000-0000-0000-000000000000
OFFSET:
name: OFFSET
in: query
description: Pagination offset; use next_skip value from previous response
required: false
schema:
type: integer
example: 500
LOOKUP:
name: LOOKUP
in: query
description: Domain or comma-separated list of up to 16 domains
required: true
schema:
type: string
example: builtwith.com
IP:
name: IP
in: query
description: Set to 'yes' to include IP address data in results
required: false
schema:
type: string
enum:
- 'yes'
schemas:
RelationshipsResponse:
type: object
properties:
results:
type: integer
description: Total number of relationship results
max_per_page:
type: integer
description: Maximum results per page
example: 500
next_skip:
type: integer
description: Offset value for retrieving the next page
more_results:
type: boolean
description: Whether additional pages of results exist
Relationships:
type: array
items:
$ref: '#/components/schemas/Relationship'
RelationshipMatch:
type: object
properties:
Domain:
type: string
description: Related domain sharing the identifier
First:
type: integer
format: int64
description: First detection timestamp (ms)
Last:
type: integer
format: int64
description: Last detection timestamp (ms)
Overlap:
type: boolean
description: Whether the domains simultaneously used the identifier
Identifier:
type: object
properties:
Type:
type: string
description: Identifier type (e.g. google-analytics, ip-address)
example: google-analytics
Value:
type: string
description: Identifier value
example: UA-12345678-1
First:
type: integer
format: int64
description: First detection timestamp (ms)
Last:
type: integer
format: int64
description: Last detection timestamp (ms)
Matches:
type: array
items:
$ref: '#/components/schemas/RelationshipMatch'
ErrorResponse:
type: object
properties:
Errors:
type: array
items:
type: object
properties:
Code:
type: integer
Message:
type: string
Relationship:
type: object
properties:
Domain:
type: string
description: The queried domain
Identifiers:
type: array
items:
$ref: '#/components/schemas/Identifier'
responses:
Unauthorized:
description: Unauthorized — invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request — invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
apiKeyQuery:
type: apiKey
in: query
name: KEY
apiKeyHeader:
type: apiKey
in: header
name: Authorization
description: 'Format: ''Authorization: API {key}'''
externalDocs:
description: BuiltWith Change API Documentation
url: https://api.builtwith.com/change-api