HTTP Version
free/v1/domain/http-versionTests which HTTP protocol versions a domain supports including HTTP/1.1, HTTP/2 (RFC 9113), and HTTP/3 (RFC 9114, built on QUIC/RFC 9000). Modern HTTP versions significantly improve performance through multiplexing and reduced latency. Now uses the HTTPS DNS resource record (RFC 9460) to authoritatively confirm HTTP/2 and HTTP/3 support — Workers cannot inspect ALPN directly.
What It Does
Queries the HTTPS DNS record (TYPE65) for the authoritative ALPN advertisement (h2, h3) and combines it with the response Alt-Svc header. When the DNS record advertises h2/h3, confidence is "dns-confirmed"; when only Alt-Svc carries h3, HTTP/2 is implied with "confirmed" confidence; otherwise HTTP/2 is "inferred" from a successful HTTPS connection. Also detects whether the CDN supports 103 Early Hints and the origin already publishes Link headers.
Why It's Useful
HTTP/2 (RFC 9113) and HTTP/3 (RFC 9114) provide significant performance improvements through multiplexing, header compression (HPACK/QPACK), and 0-RTT connection establishment. HTTP/3 over QUIC (RFC 9000) eliminates head-of-line blocking at the transport layer. Verifying support is important for performance optimization and ensuring CDN/load balancer configuration is correct.
Use Cases
Performance Audit
Verify HTTP/2 or HTTP/3 is enabled for optimal content delivery.
Ensure modern protocols are configured for best performance.
Infrastructure Assessment
Confirm load balancers and CDNs support modern HTTP protocols.
Validate infrastructure supports latest protocol standards.
Competitive Benchmark
Compare HTTP protocol support across competitor sites.
Identify protocol optimization opportunities versus competitors.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Domain or full URL — accepts `example.com` or `https://example.com/path`.Example: https://google.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. |
http11 | boolean | HTTP/1.1 support |
http2 | boolean | HTTP/2 support |
http2Confidence | string | Confidence: "dns-confirmed" (HTTPS RR advertises h2), "confirmed" (h3 in Alt-Svc implies h2), or "inferred" (assumed for any HTTPS response) |
http3 | boolean | HTTP/3 (QUIC) support |
http3Confidence | string | Confidence: "dns-confirmed", "alt-svc", or "none" |
alpnFromDns | array | ALPN tokens advertised by the HTTPS DNS record (RFC 9460). Empty if no HTTPS RR is published |
protocol | string | Detected protocol name |
version | string | Detected protocol version |
altSvc | string | Raw Alt-Svc header value |
altSvcEntries | array | Parsed Alt-Svc entries with protocol, authority, and max-age |
earlyHintsSignal | object | 103 Early Hints capability heuristic — { capable, via: "link-header" | "cdn-capable" | "both" | null } |
recommendations | array | Protocol optimization suggestions |
Code Examples
curl "https://api.edgedns.dev/v1/domain/http-version" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "domain=https://google.com"const response = await fetch(
'https://api.edgedns.dev/v1/domain/http-version?domain=https%3A%2F%2Fgoogle.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/http-version',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
params={
'domain': 'https://google.com'
}
)
data = response.json()
print(data)Read the full HTTP Version 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 HTTP Version endpoint live in the playground.