Framework Detection
developer/v1/domain/frameworkIdentifies frontend and backend web frameworks used by a website, with version extraction where the framework exposes it. Detects React, Vue, Angular, Next.js, Django, Rails, Laravel, plus modern backends (Hono, Nest.js, Elysia, Fresh, SolidStart, AdonisJS).
What It Does
Analyzes HTML DOM patterns (data attributes, inline markers), inline script content (for runtime markers like ng-version, __NEXT_DATA__, __NUXT__), script source URLs, and HTTP response headers (X-Powered-By) to identify web frameworks. Pulls versions where available — Angular root-element ng-version, Next.js build metadata, jQuery/Bootstrap filename versions, htmx CDN URLs. Covers frontend (React, Vue, Angular, Svelte, htmx, Alpine.js), meta-frameworks (Next.js, Nuxt, Remix, SvelteKit, Qwik, Astro), and backends (Rails, Django, Laravel, Express, FastAPI, Phoenix, Hono, Nest.js, Elysia, Fresh, SolidStart). Confidence is graded by how many distinct pattern families matched.
Why It's Useful
Framework + VERSION identification powers the CVE-lookup workflow for security engineers (a framework name without a version is unactionable), and the version field is what differentiates engineering-culture profiling for CTOs and recruiters. Modern-backend detection (Hono, Nest, Elysia) lets you target the dev-tool buyer segment that older detectors miss entirely.
Use Cases
Competitive Tech Analysis
Analyze competitor tech stacks to understand their development approach and capabilities.
Inform technology decisions based on competitor choices.
Security Testing
Identify frameworks to focus on framework-specific vulnerabilities (e.g., Django admin exposure).
Efficient security testing with framework-aware approach.
Talent Assessment
Identify companies using specific frameworks for targeted tech recruiting.
Find companies matching candidate expertise.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Domain or full URL — accepts `example.com` or `https://example.com/path`.Example: https://vercel.com |
Response Fields
| Field | Type | Description |
|---|---|---|
domain | string | The queried domain (bare hostname). |
url | string | Full URL that was fetched, echoing the protocol used in the request. |
frameworks | array | Detected frameworks with name, version (when extractable), confidence (low/medium/high based on match count), and evidence |
count | number | Number of frameworks detected |
Code Examples
curl "https://api.edgedns.dev/v1/domain/framework" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "domain=https://vercel.com"const response = await fetch(
'https://api.edgedns.dev/v1/domain/framework?domain=https%3A%2F%2Fvercel.com',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
}
);
const data = await response.json();
console.log(data);import requests
response = requests.get(
'https://api.edgedns.dev/v1/domain/framework',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={
'domain': 'https://vercel.com'
}
)
data = response.json()
print(data)Read the full Framework Detection guide
Why it matters, real-world use cases, parameters, response fields, and how to call it from Claude, ChatGPT, or Gemini via MCP.
Read the guide →Related Endpoints
External References
Learn more about the standards and protocols behind this endpoint.
Try This Endpoint
Test the Framework Detection endpoint live in the playground.