HTTP Status Batch Checker avatar

HTTP Status Batch Checker

Pricing

Pay per usage

Go to Apify Store
HTTP Status Batch Checker

HTTP Status Batch Checker

Check the status of many public URLs in parallel via HEAD (with GET fallback). Records the final status, the redirect chain, response time, and content type. Useful for link-rot audits and sitemap URL validation.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Nikita S

Nikita S

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Bulk-check the status of many public URLs in parallel. Records the final status, full redirect chain, response time, and Content-Type. Useful for link-rot audits, sitemap URL validation, and SEO migration QA.

What it does

  • Hits a list of public HTTP(S) URLs in parallel (default 16, configurable up to 64).
  • Uses HEAD by default with a GET fallback when the server rejects HEAD.
  • Walks the redirect chain (301 / 302 / 303 / 307 / 308) up to maxRedirects hops and records every hop with its status and Location header.
  • Records elapsedMs, final URL after redirects, contentType, and hops count.
  • Returns ok: true for 200 ≤ status < 400, ok: false for everything else.
  • Pure data utility. Public URLs only — no auth, no anti-bot bypass, no JS rendering.

Who it is for

  • SEO teams running link-rot audits on large sitemaps or content inventories.
  • Migration / launch QA — confirm every old URL still resolves and doesn't loop.
  • Web agencies that need a fast bulk status check for a client handover.
  • Backlink / partner audits that need a quick pass/fail check on hundreds of URLs.
  • DevOps / SRE smoke-checks after DNS or CDN changes.

Quick start

{
"urls": [
"https://apify.com",
"https://example.com",
"https://this-domain-definitely-does-not-exist-12345.example/"
]
}

Each input URL produces one dataset row:

{
"url": "https://apify.com",
"finalUrl": "https://apify.com/",
"status": 200,
"ok": true,
"contentType": "text/html; charset=utf-8",
"elapsedMs": 423,
"hops": 0,
"redirectChain": [
{ "url": "https://apify.com", "status": 200, "location": null }
],
"error": null
}

Input

FieldTypeDefaultNotes
urlsstring[] (required)Public HTTP(S) URLs to check.
methodstringHEADHEAD or GET. Some servers reject HEAD; switch to GET for them.
timeoutSecint15Per-URL timeout in seconds.
userAgentstringApifyHttpStatusBatch/0.2Override the User-Agent header.
maxRedirectsint5Cap on redirect hops to follow.
concurrencyint16Number of URLs to check in parallel.

Output

Dataset rows: one per input URL with finalUrl, status, ok, contentType, elapsedMs, hops, redirectChain[], and error (if any).

SUMMARY KV record: { urls, method, concurrency }.

Pricing

This Actor is Pay Per Event on the Apify Store:

  • apify-actor-start — flat per run.
  • url_checked — charged once per input URL.

For local tests, Actor.charge is a no-op (no usage billed, no payout).

Limits

  • Designed for public HTTP(S) URLs. Login-walled, cookie-walled, or anti-bot endpoints are out of scope.
  • Does not execute JavaScript — only what the HTTP server returns in the response.
  • Per-URL timeouts are absolute; an unreachable URL still consumes its slot for timeoutSec seconds.
  • maxRedirects defaults to 5 to avoid being trapped by redirect loops.

FAQ

Q: Why does my URL return 405 / 403 with HEAD? A: Some servers reject HEAD. Switch method to GET for those URLs.

Q: Can I check 10,000 URLs at once? A: Yes — bump concurrency to 32 or 64. The Actor does not impose a hard input limit, but memory and platform usage will scale with input size.

Q: How does this differ from url-redirect-loop-detector? A: url-redirect-loop-detector is focused on detecting redirect loops and chain length on a small list. http-status-batch is a broad pass/fail link-rot check that records the full chain for every URL.

Q: Can I check a private/intranet URL? A: Only if the Actor host can reach it over plain HTTP(S) without auth.

Support

Open an issue on the Actor's Apify Store page (Report an issue link on the right rail) or contact the developer through the Store profile.

License

MIT — see Apify Store page for the canonical text.