openapi: 3.0.3 info: title: BuiltWith Change Bulk Processing Domain Lookup 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 Lookup description: Single or multi-domain technology detection endpoints paths: /api.json: get: summary: Lookup domain technologies (JSON) description: 'Returns the technology stack and metadata for one or more domains in JSON format. Supports up to 16 domains as a comma-separated list. ' operationId: getDomainTechnologiesJson tags: - Domain Lookup parameters: - $ref: '#/components/parameters/KEY' - $ref: '#/components/parameters/LOOKUP' - $ref: '#/components/parameters/HIDETEXT' - $ref: '#/components/parameters/NOMETA' - $ref: '#/components/parameters/NOPII' - $ref: '#/components/parameters/LIVEONLY' - $ref: '#/components/parameters/TRUST' - $ref: '#/components/parameters/FDRANGE' - $ref: '#/components/parameters/NOATTR' - $ref: '#/components/parameters/CATEGORIES' - $ref: '#/components/parameters/VERTICALS' responses: '200': description: Technology profile for the requested domain(s) content: application/json: schema: $ref: '#/components/schemas/DomainResult' example: Results: - Result: Lookup: example.com Meta: CompanyName: Example Inc Vertical: Business and Consumer Services Paths: - Technologies: - Name: WordPress Tag: cms Categories: - Category: CMS FirstDetected: 1609459200000 LastDetected: 1748736000000 Live: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' /api.xml: get: summary: Lookup domain technologies (XML) description: Returns domain technology profile in XML format. operationId: getDomainTechnologiesXml tags: - Domain Lookup parameters: - $ref: '#/components/parameters/KEY' - $ref: '#/components/parameters/LOOKUP' - $ref: '#/components/parameters/HIDETEXT' - $ref: '#/components/parameters/NOMETA' - $ref: '#/components/parameters/NOPII' - $ref: '#/components/parameters/LIVEONLY' - $ref: '#/components/parameters/TRUST' - $ref: '#/components/parameters/FDRANGE' - $ref: '#/components/parameters/NOATTR' responses: '200': description: Technology profile in XML format content: application/xml: schema: type: object '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /api.csv: get: summary: Lookup domain technologies (CSV) description: Returns domain technology profile in CSV format. operationId: getDomainTechnologiesCsv tags: - Domain Lookup parameters: - $ref: '#/components/parameters/KEY' - $ref: '#/components/parameters/LOOKUP' - $ref: '#/components/parameters/HIDETEXT' - $ref: '#/components/parameters/NOMETA' - $ref: '#/components/parameters/NOPII' - $ref: '#/components/parameters/LIVEONLY' responses: '200': description: Technology profile in CSV format content: text/csv: schema: type: string components: parameters: CATEGORIES: name: CATEGORIES in: query description: Set to '1' to return technology category list instead of domain data required: false schema: type: integer enum: - 1 NOATTR: name: NOATTR in: query description: Set to 'yes' to exclude technology attributes required: false schema: type: string enum: - 'yes' HIDETEXT: name: HIDETEXT in: query description: Set to 'yes' to exclude technology descriptions and links required: false schema: type: string enum: - 'yes' NOPII: name: NOPII in: query description: Set to 'yes' to remove personally identifiable information (names/emails) required: false schema: type: string enum: - 'yes' LOOKUP: name: LOOKUP in: query description: 'Domain or comma-separated list of up to 16 domains to look up. Use root domains only. ' required: true schema: type: string example: example.com TRUST: name: TRUST in: query description: Set to 'yes' to include trust/safety data (uses additional API credits) required: false schema: type: string enum: - 'yes' LIVEONLY: name: LIVEONLY in: query description: Set to 'yes' to return only currently active technologies required: false schema: type: string enum: - 'yes' KEY: name: KEY in: query description: Your BuiltWith API authentication key (UUID format) required: false schema: type: string format: uuid example: 00000000-0000-0000-0000-000000000000 VERTICALS: name: VERTICALS in: query description: Set to '1' to return vertical list instead of domain data required: false schema: type: integer enum: - 1 FDRANGE: name: FDRANGE in: query description: Filter by detection date range in YYYY-MM-DD|YYYY-MM-DD format required: false schema: type: string example: 2025-01-01|2026-01-01 NOMETA: name: NOMETA in: query description: Set to 'yes' to skip address and company metadata required: false schema: type: string enum: - 'yes' schemas: DomainResultItem: type: object properties: Result: $ref: '#/components/schemas/Result' 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' DomainResult: type: object description: Top-level response wrapper for domain technology lookups properties: Results: type: array items: $ref: '#/components/schemas/DomainResultItem' ErrorResponse: type: object properties: Errors: type: array items: type: object properties: Code: type: integer Message: type: string TechCategory: type: object properties: Category: type: string example: CMS 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' Attribute: type: object description: Additional attribute data for a technology properties: Field: type: string Value: type: string 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 Path: type: object properties: Domain: type: string description: Sub-domain or path scanned Technologies: type: array items: $ref: '#/components/schemas/Technology' responses: RateLimited: description: 'Too many requests — max 10 req/sec or 8 concurrent requests exceeded ' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 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