BuiltWith Bulk Processing API

Asynchronous batch domain processing

OpenAPI Specification

builtwith-bulk-processing-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: BuiltWith Change Bulk Processing 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: Bulk Processing
  description: Asynchronous batch domain processing
paths:
  /domain/bulk:
    post:
      summary: Bulk domain technology lookup
      description: 'Submit a list of domains for batch processing. Small batches return synchronously; large batches return a job ID for polling.

        '
      operationId: bulkDomainLookup
      tags:
      - Bulk Processing
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkRequest'
            example:
              KEY: 00000000-0000-0000-0000-000000000000
              LOOKUP:
              - example.com
              - shopify.com
              - wordpress.org
      responses:
        '200':
          description: Bulk results or async job reference
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DomainResult'
                - $ref: '#/components/schemas/BulkJobResponse'
components:
  schemas:
    Result:
      type: object
      properties:
        Lookup:
          type: string
          description: The queried domain
          example: example.com
        Meta:
          $ref: '#/components/schemas/DomainMeta'
        Paths:
          type: array
          items:
            $ref: '#/components/schemas/Path'
    DomainResult:
      type: object
      description: Top-level response wrapper for domain technology lookups
      properties:
        Results:
          type: array
          items:
            $ref: '#/components/schemas/DomainResultItem'
    BulkRequest:
      type: object
      required:
      - KEY
      - LOOKUP
      properties:
        KEY:
          type: string
          format: uuid
          description: API authentication key
        LOOKUP:
          type: array
          items:
            type: string
          description: List of domains to look up
          maxItems: 500
    DomainResultItem:
      type: object
      properties:
        Result:
          $ref: '#/components/schemas/Result'
    DomainMeta:
      type: object
      description: Company and domain metadata
      properties:
        CompanyName:
          type: string
        Vertical:
          type: string
        Telephones:
          type: array
          items:
            type: string
        Emails:
          type: array
          items:
            type: string
        City:
          type: string
        State:
          type: string
        Postcode:
          type: string
        Country:
          type: string
        Names:
          type: array
          items:
            type: string
    TechCategory:
      type: object
      properties:
        Category:
          type: string
          example: CMS
    Technology:
      type: object
      description: A detected web technology
      properties:
        Name:
          type: string
          example: WordPress
        Description:
          type: string
        Link:
          type: string
          format: uri
        Tag:
          type: string
          description: Primary technology category tag
          example: cms
        Categories:
          type: array
          items:
            $ref: '#/components/schemas/TechCategory'
        FirstDetected:
          type: integer
          format: int64
          description: Unix timestamp (ms) of first detection
        LastDetected:
          type: integer
          format: int64
          description: Unix timestamp (ms) of last detection
        Live:
          type: boolean
          description: Whether the technology is currently active
        Attributes:
          type: array
          items:
            $ref: '#/components/schemas/Attribute'
    Path:
      type: object
      properties:
        Domain:
          type: string
          description: Sub-domain or path scanned
        Technologies:
          type: array
          items:
            $ref: '#/components/schemas/Technology'
    BulkJobResponse:
      type: object
      description: Async job reference for large bulk batches
      properties:
        JobId:
          type: string
          description: Job identifier for polling status
        Status:
          type: string
          enum:
          - queued
          - processing
          - complete
          - error
    Attribute:
      type: object
      description: Additional attribute data for a technology
      properties:
        Field:
          type: string
        Value:
          type: string
  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