Technology lookup
A Business plan is required to use this feature.
Compare plansLook up the technologies behind any website to qualify accounts, segment leads, power automations, or enrich internal tools. Query our database for fast results, or analyze websites live when freshness matters more than speed.
In addition to technologies, responses can include company details, verified email addresses, phone numbers, social media profiles, locale information, keywords, metadata, and more for downstream enrichment and routing workflows.
GET https://api.wappalyzer.com/v2/lookup/
| Property | Description |
|---|---|
| Execution |
Synchronous Asynchronous when using recursive=true |
| Request timeout | 30 seconds |
| Rate limit | 10 requests per second (up to 10 URLs per request) |
| Pricing |
1 credit per URL 5 credits per URL when using live=true with recursive=true |
| Name | Description |
|---|---|
urls (required) |
Between one and ten website URLs, comma separated. Example: https://example.com,https://example.org.
Multiple URLs are not supported with recursive=false.
|
live |
Scan websites in real-time. Defaults to false to
return cached results from our database (faster and more
complete). If no record is found, live=true is automatically
used instead. Use recursive=false to get live
results in the same request.
|
recursive |
Index multiple pages (follows internal website links for
increased coverage). Defaults to true for best
results.If no record is found or live=true is used, using
recursive=true causes the request to be completed
asynchronously, meaning technologies will not be included in the
initial response and the website is being crawled. To get the
results when they become available, use
callback_url or repeat the request at a later time
(free for up to one hour). A crawl can take up to 15 minutes. We recommend using callback_url or repeating the request up to three
times every five minutes. When using both live=true and
recursive=true, callback_url is
required and requests cost five credits instead of one.
|
callback_url |
When an asynchronous request completes, a
POST request is made to the callback URL with the
results. A callback URL is an public endpoint hosted on your own
server. Example: https://yourdomain.com/wappalyzer.Required when using both live=true and
recursive=true.
|
debug_email |
Send debug information to the specified email address when using
callback_url. If you're not receiving any results
on your callback URL, use this to get more detailed information.
Example: [email protected].For testing purposes only, please do not use in production. |
sets |
Comma-separated list of additional field sets to include in the
results (e.g. meta,social).See Fields. Use all to include all fields.
|
denoise |
Exclude low confidence results. Defaults to true.
Setting this to false yields more results but is
more likely to include false positives.
|
min_age |
Return results that have been verified at least once before
min_age months ago. Defaults to 0 for
most recent results. Use a higher value in combination with squash=false and max_age for historic
results grouped by month (up to 12 months per request).
|
max_age |
Return results that have been verified at least once in the last
max_age months. Defaults to 2 for best
results. To get the most up-to-date but fewer results, use max_age=1. For real-time results, use
live=true instead. Use a higher value to get more but less recently verified results. These results are more likely to include websites that no longer use the technology. Use a higher value in combination with squash=false and optionally
min_age for historic results grouped by month (up
to 12 months per request).
|
squash |
Merge monthly results into a single set. Defaults to
true. Set to false to group results by
month.
|
Use a callback URL to complete asynchronous lookups without polling. If
you request a website that is not already in our dataset, the initial
response may not include technologies while the crawl is running.
Minutes later, your public callback endpoint receives the final
POST payload. Without a callback URL, you need to repeat
the request later or use recursive=false for a shallow scan
in the same request.
sets, for example
sets=all, those fields can appear in the initial response.
Capture both the initial response and the callback response if you want
the full result set.