Find website technologies
curl --request POST \
--url https://api.airscale.io/v1/technologies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "example.com"
}
'const url = 'https://api.airscale.io/v1/technologies';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: 'example.com'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/technologies"
payload = { "domain": "example.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"domain": "example.com",
"technologies": [
"React",
"Vite"
],
"credits_consumed": 0.5
}
Website Technologies
Find the technologies used by a website. Rate limit: 10 requests per second per workspace.
POST
/
v1
/
technologies
Find website technologies
curl --request POST \
--url https://api.airscale.io/v1/technologies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "example.com"
}
'const url = 'https://api.airscale.io/v1/technologies';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: 'example.com'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.airscale.io/v1/technologies"
payload = { "domain": "example.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"domain": "example.com",
"technologies": [
"React",
"Vite"
],
"credits_consumed": 0.5
}
Find the technologies used by one website, such as its CMS, analytics tools, or JavaScript frameworks. Authenticate with your Airscale workspace API key and send exactly one
domain field containing a bare hostname or HTTP(S) URL.
The domain is normalized to lowercase without a leading www. or trailing dot. Paths and queries are ignored. IP addresses, localhost, URL credentials, non-default ports, and non-HTTP(S) schemes are rejected. The JSON body must fit within 16 KiB; additional fields are not accepted.
Usage and credits
You need at least 0.5 credits before a lookup can start. A response with one or more technology names costs 0.5 credits. An empty result returnstechnologies: [] and credits_consumed: 0.
Read domain for the normalized hostname and technologies for the list of names. Duplicate names are removed without regard to case. An empty list means no technologies were found for that lookup; it does not prove the website uses no technologies.
Rate limits and retries
The limit is 10 requests per second per workspace, measured in fixed UTC-second windows. Lookup capacity is also shared across workspaces, so actual throughput can be lower. A workspace rate limit returns429; unavailable lookup capacity returns 503.
Allow more than 60 seconds for a request: the lookup itself can take up to 60 seconds, with additional time for authentication and billing. A failed or timed-out lookup returns 502. Authentication or billing services can also return 503.
Use bounded backoff for temporary errors. This endpoint does not support caller idempotency keys. Retrying can run and charge another lookup, including when the original response was lost. A client timeout does not confirm that no credits were charged.
Next step
Check your credit balance or review rate limits before scheduling more lookups.Authorizations
Use an Airscale workspace API key. Never expose the key in client-side code.
Body
application/json
Bare website hostname or HTTP(S) URL. Whitespace is trimmed; the hostname is lowercased and leading www. and a trailing dot are removed. Paths and queries are ignored. IP literals, localhost, credentials, non-default ports, non-HTTP(S) schemes, and invalid domain labels are rejected. Send exactly one domain field. Maximum JSON body size: 16 KiB.
Minimum string length:
1Pattern:
\S