Identify technology on websites

Wappalyzer is a cross-platform utility that uncovers the technologies used on websites. It detects content management systems, ecommerce platforms, web frameworks, server software, analytics tools and many more.

Developer Documentation

API

Wappalyzer's REST APIs fetch and analyze web pages in real-time to identify technologies.

Server URL

https://api.wappalyzer.com/

Response codes

HTTP code Description
200 The request was completed successfully
202 The request has been accepted for processing
400 There was an error with the request
403 Authorisation failure (missing or incorrect API key)
429 Usage plan quota exceeded

In less common scenarios, other response codes may be used. To verify that a request was successful, check for a 2xx code. A 4xx code indicates a problem with the request. A 5xx code means a server-side error occurred.

Error types

Type Description
RESPONSE_NOT_OK The server did not respond with a 200 HTTP code
NO_RESPONSE The server did not respond in time
NO_HTML_DOCUMENT The server response did not include a HTML document

Authentication

Wappalyzer uses API keys to provide authorized access to its API.

Request header Value
X-Api-Key <Your API key>

Demo API key

Use the API key below to try the APIs before purchasing a subscription. It's good for ten requests per day across all APIs.

wappalyzer.api.demo.key

Resources


Lookup API

Look up a domain in the Wappalyzer database.

Resource URI

lookup/v1/

Resource information

Method GET
Execution Synchronous / Asynchronous (when call yields no results)
Authentication required Yes
Response format JSON
Request timeout 30s
Rate limit 1 request / second on the Small plan
10 requests / second on the Medium and Large plans

Resource parameters

Name Required Description Example
url Yes URL of the web page to analyze https://example.com
callback_url No A POST request will be made to the callback URL upon completion of the request, no more than two minutes later https://example.com

Example request

curl -H "X-Api-Key: wappalyzer.api.demo.key" \
https://api.wappalyzer.com/lookup/v1/?url=https://example.com&callback_url=https://example.com

Example response (200)

Results are grouped by month and may contain data from anywhere between six months ago and today. If guaranteed up-to-date information is required, consider using the Crawl API instead.

[
  {
    "monthYear": "01-2018",
    "languages": [
    ],
    "applications": [
      {
        "name": "WordPress",
        "categories": [
          "Blog",
          "CMS"
        ],
        "versions": [
        ],
        "hits": 0
      }
    ]
  }
]

The hits value is the number of times users of the browser extension have visited the website that month. It can be used as a rough indicator of traffic.

Example response (202)

If no results are found and callback_url is specified, the domain will be fetched and analysed using the Crawl API as a fallback. The callback URL will be called within two minutes of completing the request.

if no callback URL is specified, a 404 response code will be returned instead. This call will still be counted towards the subscription quota.

{
  "status": "received"
}

Example callback response

{
  "url": "https://example.com",
  "applications": [
    {
      "name": "WordPress",
      "confidence": "100",
      "version": "",
      "icon": "WordPress.svg",
      "website": "https://wordpress.com",
      "categories": [
        {
          "1": "CMS"
        }
      ]
    }
  ]
}

Analyze API

Fetch and analyze a single web page.

Resource URI

analyze/v1/

Resource information

Method GET
Execution Synchronous
Authentication required Yes
Response format JSON
Request timeout 15s
Rate limit 1 request / second on the Small plan
10 requests / second on the Medium and Large plans

Resource parameters

Name Required Description Example
url Yes URL of the web page to analyze https://example.com

Example request

curl -H "X-Api-Key: wappalyzer.api.demo.key" \
https://api.wappalyzer.com/analyze/v1/?url=https://example.com

Example response (success)

{
  "status": "success",
  "applications": [
    {
      "name": "WordPress",
      "confidence": "100",
      "version": "",
      "icon": "WordPress.svg",
      "website": "https://wordpress.com",
      "categories": [
        {
          "1": "CMS"
        }
      ]
    }
  ]
]

Example response (error)

{
  "status": "error",
  "errors": [
    {
      "type": "RESPONSE_NOT_OK",
      "message": "Response was not ok"
    }
  ],
  "applications": []
}

Crawl API

Fetch and analyze multiple web pages on a domain by recursively following links. The crawler fetches up to 25 pages.

Resource URI

crawl/v1/

Resource information

Method GET
Execution Asynchronous
Authentication required Yes
Response format JSON
Request timeout 5s (callback response timeout: 5m)
Rate limit 1 request / second on the Small plan
10 requests / second on the Medium and Large plans

Resource parameters

Name Required Description Example
url Yes URL of the first web page to analyze https://example.com
callback_url Yes A POST request will be made to the callback URL upon completion of the request, no more than two minutes later https://example.com

Example request

curl -H "X-Api-Key: wappalyzer.api.demo.key" \
https://api.wappalyzer.com/crawl/v1/?url=https://example.com&callback_url=https://example.com

Example response (202)

{
  "status": "received"
}

Example callback response (success)

{
  "url": "https://example.com",
  "applications": [
    {
      "name": "WordPress",
      "confidence": "100",
      "version": "",
      "icon": "WordPress.svg",
      "website": "https://wordpress.com",
      "categories": [
        {
          "1": "CMS"
        }
      ]
    }
  ],
  "status": "success"
}

Example callback response (error)

{
  "url": "https://example.com",
  "applications": [],
  "status": "error",
  "errors": [
    {
      "type": "RESPONSE_NOT_OK",
      "message": "Response was not ok"
    }
  ]
}