Use the form above. Parameters, code examples and FAQ are grouped in the documentation section below.
GET /v1/headers?domain=domain.tld
/v1/headers?domain=https://github.com
/v1/headers?domain=www.github.com
[
{
"HTTP": "301 Moved Permanently",
"Final-URL": "http://github.com/",
"location": "https://github.com/"
},
{
"HTTP": "200 OK",
"Final-URL": "https://github.com/",
"content-type": "text/html; charset=utf-8",
"strict-transport-security": "max-age=31536000; includeSubdomains"
}
]
Inspect every HTTP response header a URL returns and follow the whole redirect chain hop by hop.
| Endpoint | Returns | Example |
|---|---|---|
/v1/headers | JSON | domain=example.com |
| Name | Type | Default | Description |
|---|---|---|---|
domain | string | required | Domain or full URL. Defaults to https:// when no scheme is given. |
curl 'https://freetools.one/v1/headers?domain=example.com'const hops = await (await fetch('https://freetools.one/v1/headers?domain=http://github.com')).json();
hops.forEach((h, i) => console.log(i, h.HTTP, h['Final-URL']));import requests
hops = requests.get('https://freetools.one/v1/headers',
params={'domain': 'http://github.com'}).json()
for i, h in enumerate(hops):
print(i, h['HTTP'], h['Final-URL'])[
{
"HTTP": "301 Moved Permanently",
"Location": "https://github.com/",
"Final-URL": "http://github.com/",
"server": "GitHub.com"
}
]
Call /v1/headers?domain=example.com. The response contains every response header as a key/value pair, plus a Final-URL field showing where the request ended up.
Yes. Each redirect is followed and reported as a separate entry, up to five hops, so you can spot redirect loops and slow chains.
Yes. Every hop in the chain is returned, including the final destination, and each host is re-checked against the SSRF guard.
Check for Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy and Permissions-Policy in the returned header map.