Skip to main content

Framework Detection

developer
GET/v1/domain/framework

Identifies 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

CTO

Competitive Tech Analysis

Analyze competitor tech stacks to understand their development approach and capabilities.

Inform technology decisions based on competitor choices.

Security Engineer

Security Testing

Identify frameworks to focus on framework-specific vulnerabilities (e.g., Django admin exposure).

Efficient security testing with framework-aware approach.

Recruiter

Talent Assessment

Identify companies using specific frameworks for targeted tech recruiting.

Find companies matching candidate expertise.

Parameters

NameTypeRequiredDescription
domainstringRequiredDomain or full URL — accepts `example.com` or `https://example.com/path`.Example: https://vercel.com

Response Fields

FieldTypeDescription
domainstringThe queried domain (bare hostname).
urlstringFull URL that was fetched, echoing the protocol used in the request.
frameworksarrayDetected frameworks with name, version (when extractable), confidence (low/medium/high based on match count), and evidence
countnumberNumber of frameworks detected

Code Examples

cURL
curl "https://api.edgedns.dev/v1/domain/framework" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "domain=https://vercel.com"
JavaScript
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);
Python
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.