Investigate any URL
Paste a link and see where it really goes: every redirect, what it says about itself when shared, who else it loads from, and which parts of the address are only tracking you.
The URL to investigate. http and https only.
Needs URL.
What it does
Also called: investigate a url · check if a link is safe · see where a short link redirects to · inspect a website's headers.
Use it from your own code
The same endpoint this page calls — no daily cap, 3 credits a call either way.
POST /v1/explore/url-detective
curl -X POST "$DOATHING_API/v1/explore/url-detective" \
-H "x-api-key: $DOATHING_KEY" \
-H "content-type: application/json" \
-d '{"url": "https://example.com/article?utm_source=newsletter"}'
Paste a link and see where it really goes: every redirect, what it says about itself when shared, who else it loads from, and which parts of the address are only tracking you.
Fetch a URL and report its redirect chain, metadata and sharing cards, third-party hosts, tracking parameters and a health score.
Response
The result carries your remaining balance alongside it, so you can track spend without a second call.
{
"dashboard": {
"title": "Example — a page",
"subtitle": "200 · text/html",
"hero": {
"headline": "What is actually at that URL",
"figures": [
{
"value": "200",
"label": "Final status",
"context": "https://example.com/article"
},
{
"value": "78",
"label": "URL health",
"context": "out of 100"
},
{
"value": "1",
"label": "Redirects",
"context": "before it settled"
}
]
},
"insights": [
{
"label": "What the page tells us",
"insights": [
{
"claim": "This URL carries tracking parameters",
"evidence": "1 removed: utm_source"
}
]
}
]
},
"explorer": {
"kind": "url-detective",
"final_url": "https://example.com/article",
"status": 200,
"clean_url": "https://example.com/article",
"removed_params": [
"utm_source"
]
},
"request_id": "37f01edb-0163-42a1-ac51-0acaef979800",
"credits_remaining": 96
}
Cost
3 credits per call, whether it is run from the site or from the API — the credential differs, the price does not. A new account starts with 20 credits.
A rejected request still costs a credit: the authorizer decrements before the tool validates. A call rejected for a missing or invalid key is free.
Parameters
Generated from the endpoint’s own validation, so this is exactly what it accepts. A body field goes at the top level; an option goes inside options.
| Name | In | Type | Default | Notes |
|---|---|---|---|---|
| url * | body | string | — | The URL to investigate. http and https only. |