Wappalyzer Lookup API

Website technology lookup and asynchronous crawl callbacks.

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/wappalyzer-lookup-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wappalyzer-lookup-api-openapi.yml Raw ↑
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