Skip to main content

Reverse Proxy Detection

developer
GET/v1/domain/reverse-proxy

Detects reverse proxies, edge auth proxies (Cloudflare Access, Pomerium, oauth2-proxy, Authelia, Vouch Proxy), and exposure tunnels (Cloudflare Tunnel, ngrok, localtunnel, Tailscale Funnel) in front of a domain. Also flags private-IP disclosure in X-Forwarded-* headers — a misconfiguration finding hand-curl audits typically catch.

What It Does

Analyzes HTTP headers (Via, X-Forwarded-*, X-Proxy-ID, vendor-specific cookies and JWT assertions) to identify reverse proxy presence, distinguishing CDN / load balancer / standalone proxy / auth proxy / tunnel configurations. Each X-Forwarded-* header value is scanned for RFC1918 (private) IPs; when found, `privateIPLeaked: true` is surfaced and the values are redacted by default (pass `?revealValues=true` to see the raw values for trusted security audits).

Why It's Useful

Reverse proxy detection reveals the true infrastructure stack behind a website. It's useful for security assessments, understanding architecture, and identifying potential misconfigurations.

Use Cases

Security Researcher

Infrastructure Mapping

Map the complete infrastructure stack including proxy layers.

Understand full request path for security analysis.

Security Engineer

Misconfiguration Detection

Identify proxy headers that leak internal infrastructure information.

Find and fix information disclosure via proxy headers.

Solutions Architect

Architecture Analysis

Understand competitor proxy architecture for benchmarking.

Learn from industry proxy deployment patterns.

Parameters

NameTypeRequiredDescription
domainstringRequiredThe domain to detect reverse proxy forExample: example.com
revealValuesstringOptionalSet to "true" to return un-redacted X-Forwarded-* header values. Default is to redact RFC1918 (private) IPs so the endpoint cannot be used as a one-call internal-IP-disclosure scraper. The `containsPrivateIP` flag is set regardless of this option.Example: true

Response Fields

FieldTypeDescription
domainstringThe queried domain
detectedbooleanWhether a reverse proxy was detected
primaryProxystringPrimary proxy type identified (null if none detected)
providersarrayDetected proxy providers (including auth proxies and tunnels) with name, vendor, and evidence
providerCountnumberNumber of proxy providers detected
forwardedHeadersarrayStructured X-Forwarded-* headers: each entry has { name, value, containsPrivateIP }. Private IPs in `value` are redacted to `[redacted-private-ip]` unless `revealValues=true` was passed.
viaHeaderstringVia header content if present (null if absent)
privateIPLeakedbooleanTrue when at least one X-Forwarded-* header value contains an RFC1918 IP — actionable security finding (internal-infrastructure disclosure)
valuesRedactedbooleanWhether private-IP values were redacted in the response (false when revealValues=true was passed)
recommendationsarrayInfrastructure improvement suggestions; private-IP leakage triggers a WARNING-level recommendation

Code Examples

cURL
curl "https://api.edgedns.dev/v1/domain/reverse-proxy" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "domain=example.com"
JavaScript
const response = await fetch(
  'https://api.edgedns.dev/v1/domain/reverse-proxy?domain=example.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/reverse-proxy',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    params={
    'domain': 'example.com'
    }
)

data = response.json()
print(data)

Read the full Reverse Proxy 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 Reverse Proxy Detection endpoint live in the playground.