BuiltWith Domain Relationships API

Identify domain interconnections via shared identifiers

Operations 4

GET /api.json Get domain relationships (JSON) #
GET /api.xml Get domain relationships (XML) #
GET /api.csv Get domain relationships (CSV) #
GET /api.tsv Get domain relationships (TSV) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/builtwith-domain-relationships-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

builtwith-domain-relationships-api-openapi.yml Raw ↑
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