HTTP Status Lookup — Redirects & Response Headers API
Pricing
from $3.00 / 1,000 successful lookups
HTTP Status Lookup — Redirects & Response Headers API
Check any URL's live HTTP status code, final URL after redirects, content type, content size, and server header in one call. No third-party API — the actor makes the request directly. Charged for every URL that returns a real response.
Pricing
from $3.00 / 1,000 successful lookups
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
HTTP Status Lookup
Check any URL's live HTTP response in one call — status code, final URL after
redirects, content type and size, and the Server header. No third-party API: this
actor makes the request itself and reports exactly what it gets back, so you don't
need to build your own HTTP client for a simple "is this URL alive" check.
Features
- Status & redirect tracking. Status code, whether the request was redirected, and the final URL after any redirect chain.
- Response shape. Content-Type, Content-Length (bytes), and the
Serverheader, all read straight off the live response. - Quick health flag.
statusOktells you at a glance whether the status code fell in the 2xx range. - Bulk-friendly. Feed in a list of URLs or bare domains with adjustable
maxConcurrency.
How to use HTTP Status Lookup — Redirects & Response Headers API
- In the Apify Console. Open the actor page and click Start — the
itemsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~http-status-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"items":["https://apify.com","https://github.com/this-path-does-not-exist-xyz123"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"items": ["github.com", "https://cloudflare.com"],"maxConcurrency": 5,"proxyConfiguration": { "useApifyProxy": true }}
items is the only required field — a list of URLs or bare domains (a scheme is added
automatically if missing, defaulting to https://). One dataset row is returned per
item; rows with "found": false are never charged. maxConcurrency (default 5, up to
20) controls how many requests run in parallel. proxyConfiguration routes requests
through Apify Proxy — useful if a target rate-limits or blocks by IP.
Output
{"query": "github.com","found": true,"data": {"requestedUrl": "https://github.com","finalUrl": "https://github.com/","redirected": true,"statusCode": 200,"statusOk": true,"contentType": "text/html; charset=utf-8","contentLength": 234567,"server": "GitHub.com"},"scrapedAt": "2026-08-20T12:00:00.000Z"}
A URL that returns no response at all — DNS failure, connection refused, or the
request timing out after retries — gets a dataset row with "found": false and an
error note, so you always get one row per input URL, but you're never charged for it.
Note that a 4xx or 5xx status code still counts as a valid, charged response: the site
answered, it just answered with an error — statusOk: false tells you that at a
glance.
Use cases
- Uptime and health spot-checks — verify a list of pages or endpoints is actually live before relying on them elsewhere.
- Redirect auditing — confirm your canonical URLs, migrations, or link shorteners redirect where you expect.
- Link-rot detection — sweep a content library or backlink list for dead or broken URLs at scale.
- Server/CDN fingerprinting — check the
Serverheader across a list of domains to see what infrastructure they're running.
Pricing
$5 per 1,000 results, plus a $0.005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~http-status-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"items":["https://apify.com","https://github.com/this-path-does-not-exist-xyz123"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~http-status-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"items":["https://apify.com","https://github.com/this-path-does-not-exist-xyz123"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~http-status-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"items":["{{value}}"]}, mapping the row's value into the items array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "HTTP Status Lookup | Apify" — the agent will find and run this actor.
FAQ
Does a 404 or 500 response count as "found"?
Yes. Any URL that returns an HTTP response — including error status codes — is
"found": true and charged. found: false is reserved for requests that never got a
response at all (DNS failure, connection refused, timeout after retries).
Do I need to include https://?
No. If you submit a bare domain like github.com, https:// is added automatically.
If you already include a scheme, it's used as-is.
How does redirect tracking work?
The actor follows the redirect chain itself and reports the final URL plus a
redirected flag — you don't need to trace Location headers manually.
Can I check thousands of URLs at once?
Yes — maxConcurrency controls how many requests run in parallel (default 5, up to
20). This target has no browser fallback, so keep concurrency conservative against
targets that might rate-limit you.
What if a site blocks the request outright?
Use proxyConfiguration to route through Apify Proxy. If the request still fails after
retries, you'll get a "found": false row with an error field describing what
happened.