openapi: 3.0.3 info: title: BuiltWith Change Bulk Processing Technology Changes 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: Technology Changes description: Track technology additions and removals on websites paths: /api.json: get: summary: Get technology changes for domain(s) description: 'Returns technology additions and removals for one or more domains, with optional SINCE parameter to scope the detection window. AI-generated summaries explain the business significance of each change. 1 API credit per domain with changes; no charge for domains with none. ' operationId: getDomainChanges tags: - Technology Changes parameters: - $ref: '#/components/parameters/KEY' - $ref: '#/components/parameters/LOOKUP' - $ref: '#/components/parameters/SINCE' responses: '200': description: Technology changes for the requested domain(s) content: application/json: schema: $ref: '#/components/schemas/ChangesResponse' example: Results: - Lookup: example.com Changes: since_utc: '2026-05-01T00:00:00Z' last_checked_utc: '2026-06-10T12:00:00Z' summary: Example.com adopted HubSpot CRM and removed Salesforce. events: - type: technology_added technology: HubSpot CRM category: - CRM - Marketing Automation tag: analytics first_seen_utc: '2026-05-15T08:00:00Z' importance: high why_this_matters: Switching to HubSpot typically signals a focus on inbound marketing. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: schemas: ChangesResponse: type: object properties: Results: type: array items: $ref: '#/components/schemas/DomainChanges' DomainChanges: type: object properties: Lookup: type: string description: The queried domain Changes: $ref: '#/components/schemas/ChangeSet' ChangeSet: type: object properties: since_utc: type: string format: date-time description: Detection window start last_checked_utc: type: string format: date-time description: Most recent scan timestamp summary: type: string description: AI-generated overview of additions and removals events: type: array items: $ref: '#/components/schemas/ChangeEvent' ChangeEvent: type: object properties: type: type: string enum: - technology_added - technology_removed description: Whether the technology was added or removed technology: type: string description: Name of the technology category: type: array items: type: string description: BuiltWith technology categories tag: type: string description: Technology tag classification first_seen_utc: type: string format: date-time description: Timestamp when the addition was first detected last_seen_utc: type: string format: date-time description: Timestamp when the removal was last detected importance: type: string enum: - low - medium - high description: Priority level of the change why_this_matters: type: string description: AI-generated explanation of the business significance ErrorResponse: type: object properties: Errors: type: array items: type: object properties: Code: type: integer Message: type: string 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' parameters: SINCE: name: SINCE in: query description: Time window for change detection; natural language or ISO 8601 date required: false schema: type: string example: last month LOOKUP: name: LOOKUP in: query description: Single domain or comma-separated list of domains required: true schema: type: string example: hotelscombined.com KEY: name: KEY in: query required: false schema: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 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