openapi: 3.0.3 info: title: Wappalyzer Public Basics Lookup API version: v2 description: 'OpenAPI 3.0 contract for Wappalyzer''s documented public REST endpoints. Covers credit balance, technology lookup, lead lists, subdomain discovery, and email verification. ' license: name: Proprietary url: https://www.wappalyzer.com/terms/ contact: name: Wappalyzer Support url: https://www.wappalyzer.com/contact/ servers: - url: https://api.wappalyzer.com/v2 security: - ApiKeyAuth: [] tags: - name: Lookup description: Website technology lookup and asynchronous crawl callbacks. paths: /lookup: get: tags: - Lookup operationId: lookupWebsites summary: Look up technologies and related website intelligence description: 'Looks up one or more websites. The response can complete synchronously or return pending crawl markers when an asynchronous crawl is required. ' parameters: - $ref: '#/components/parameters/Urls' - $ref: '#/components/parameters/Live' - $ref: '#/components/parameters/Recursive' - $ref: '#/components/parameters/CallbackUrl' - $ref: '#/components/parameters/DebugEmail' - $ref: '#/components/parameters/Sets' - $ref: '#/components/parameters/Denoise' - $ref: '#/components/parameters/MinAge' - $ref: '#/components/parameters/MaxAge' - $ref: '#/components/parameters/Squash' responses: '200': description: Lookup completed or crawl accepted. headers: wappalyzer-credits-spent: $ref: '#/components/headers/CreditsSpent' wappalyzer-credits-remaining: $ref: '#/components/headers/CreditsRemaining' content: application/json: schema: type: array items: oneOf: - $ref: '#/components/schemas/LookupCompleted' - $ref: '#/components/schemas/LookupPending' - $ref: '#/components/schemas/LookupError' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' components: parameters: Squash: name: squash in: query description: Merge monthly results into a single result set. schema: type: boolean default: true MinAge: name: min_age in: query description: Return results verified at least this many months ago. schema: type: integer minimum: 0 Urls: name: urls in: query required: true description: Between one and ten website URLs, comma separated. Multiple URLs are not supported with `recursive=false`. schema: type: array minItems: 1 maxItems: 10 items: type: string format: uri style: form explode: false MaxAge: name: max_age in: query description: Return results verified within the last `max_age` months. schema: type: integer minimum: 1 maximum: 12 default: 2 Live: name: live in: query description: Scan websites in real time instead of relying on cached results when needed. schema: type: boolean default: false CallbackUrl: name: callback_url in: query description: Public callback URL that receives asynchronous lookup results. schema: type: string format: uri Denoise: name: denoise in: query description: Exclude low-confidence detections. schema: type: boolean default: true Recursive: name: recursive in: query description: Follow internal links for increased coverage. Asynchronous when true and a crawl is required. schema: type: boolean default: true Sets: name: sets in: query description: Comma-separated list of additional result field sets to include. Use `signals` to request `technologySpend` and `trafficLevel`. schema: type: array items: type: string style: form explode: false DebugEmail: name: debug_email in: query description: Debug-only email address that receives callback troubleshooting information. schema: type: string format: email responses: Forbidden: description: Authorization failed, the resource or method is invalid, or the account lacks sufficient credits. TooManyRequests: description: Rate limit exceeded. BadRequest: description: The request payload or query string was invalid. schemas: LookupPending: type: object required: - url - crawl properties: url: type: string format: uri technologies: type: array items: $ref: '#/components/schemas/Technology' crawl: type: boolean Technology: type: object required: - slug - name properties: slug: type: string name: type: string cpe: type: string versions: type: array items: type: string categories: type: array items: $ref: '#/components/schemas/Category' trafficRank: type: integer confirmedAt: type: integer LookupCompleted: type: object required: - url - technologies properties: url: type: string format: uri technologies: type: array items: $ref: '#/components/schemas/Technology' technologySpend: type: string description: Estimated technology spend derived from the detected technologies. enum: - Very low - Low - Medium - High - Very high trafficLevel: type: string description: Relative monthly traffic level when Wappalyzer has current hostname traffic data. enum: - Very low - Low - Medium - High - Very high LookupError: type: object required: - url - errors properties: url: type: string format: uri errors: type: array items: type: string Category: type: object required: - slug - name properties: id: type: integer slug: type: string name: type: string headers: CreditsRemaining: description: Remaining credit balance after the request completes. schema: type: integer CreditsSpent: description: Number of credits deducted by the request. schema: type: integer securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key