HTTP Status Checker avatar

HTTP Status Checker

Pricing

Pay per event

Go to Apify Store
HTTP Status Checker

HTTP Status Checker

This actor checks the HTTP status code for each URL using a HEAD request. It reports whether the URL is OK (2xx), redirects (3xx), returns a client error (4xx), or server error (5xx). It also measures response time, captures redirect targets, content type, and server headers.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

4

Monthly active users

9 hours ago

Last modified

Categories

Share

Check HTTP status codes for a list of URLs with response time, redirect detection, and server information.

What does HTTP Status Checker do?

HTTP Status Checker takes a list of URLs and sends an HTTP HEAD request to each one. For every URL, it reports the HTTP status code (200, 301, 404, 500, etc.), response time in milliseconds, redirect target, content type, and server header. Results include boolean flags that make it easy to filter by category: OK (2xx), redirect (3xx), client error (4xx), or server error (5xx).

The actor processes URLs concurrently for fast batch checking. You can pass in dozens or tens of thousands of URLs and get a structured JSON, CSV, or Excel report showing the health status of each one. Failed requests (DNS errors, timeouts, unreachable hosts) are captured with an error message instead of silently dropped, so you always get a result for every URL you submit.

Who is it for?

  • SEO specialists -- audit large websites for broken links, 404 pages, and unintended redirects that hurt search rankings
  • DevOps and SRE engineers -- monitor endpoint availability across production services and APIs with scheduled runs
  • Content managers -- verify that all links in published content, newsletters, or documentation are still active
  • QA engineers -- validate that URL migrations and domain moves are complete by checking old URLs return proper redirects
  • Web developers -- test API health checks and verify that endpoints respond with expected status codes
  • Marketing teams -- check landing pages and campaign URLs before launch to avoid sending traffic to broken pages
  • Affiliate managers -- monitor partner and referral links to catch broken or expired URLs before they cost revenue

Why use HTTP Status Checker?

  • Comprehensive status reporting -- returns the numeric status code, human-readable status text, and boolean flags for OK, redirect, client error, and server error categories
  • Response time measurement -- measures how long each URL takes to respond in milliseconds, helping you identify slow endpoints
  • Redirect detection -- captures the redirect target URL from the Location header so you can verify where 301/302 redirects point
  • Server and content type headers -- reports the server header (e.g., nginx, Apache, cloudflare) and content type for each URL
  • Error capture -- URLs that fail due to DNS errors, timeouts, or connection refused get an error message instead of being silently skipped
  • Batch processing -- check hundreds or thousands of URLs in a single run with concurrent requests
  • Timestamp tracking -- each result includes an ISO 8601 timestamp so you can track when each URL was checked
  • Ultra-low cost -- only $0.50 per 1,000 URLs checked, making large-scale audits affordable

What data can you get from HTTP Status Checker?

Every URL checked produces a result object with these fields:

FieldTypeDescription
urlstringThe URL that was checked
statusCodenumber or nullHTTP status code (200, 301, 404, 500, etc.)
statusTextstringHuman-readable status (e.g., "OK", "Not Found", "Moved Permanently")
isOkbooleanTrue if status code is 2xx (success)
isRedirectbooleanTrue if status code is 3xx (redirect)
isClientErrorbooleanTrue if status code is 4xx (client error)
isServerErrorbooleanTrue if status code is 5xx (server error)
redirectUrlstring or nullRedirect target URL for 3xx responses (from Location header)
contentTypestring or nullContent-Type header value (e.g., "text/html", "application/json")
responseTimeMsnumber or nullResponse time in milliseconds
serverstring or nullServer header value (e.g., "nginx", "cloudflare", "Apache")
errorstring or nullError message if the request failed entirely
checkedAtstringISO 8601 timestamp of when the check was performed

How much does it cost to check HTTP status codes?

HTTP Status Checker uses pay-per-event pricing. You pay a small start fee per run plus a per-URL fee for each URL checked.

EventPriceDescription
Start$0.035One-time fee per run
URL checked$0.0005Per URL checked

Example costs:

Number of URLsCost breakdownTotal
100 URLs$0.035 + 100 x $0.0005$0.085
500 URLs$0.035 + 500 x $0.0005$0.285
1,000 URLs$0.035 + 1,000 x $0.0005$0.535
5,000 URLs$0.035 + 5,000 x $0.0005$2.535
10,000 URLs$0.035 + 10,000 x $0.0005$5.035

There are no monthly fees or subscriptions. You only pay for what you use. Apify provides $5 of free platform credit each month, which covers checking approximately 9,900 URLs.

How to check HTTP status codes step by step

  1. Go to HTTP Status Checker on Apify Store.
  2. Click Try for free to open the actor input form.
  3. Enter the URLs you want to check in the URL list. Each URL must include the protocol (http:// or https://).
  4. Click Start to begin the run.
  5. Wait for the run to complete. Progress is shown in the log panel.
  6. Review the results in the Output tab. Each URL shows its status code, response time, and other details.
  7. Download results as JSON, CSV, or Excel using the export buttons, or access them via the API.

For automated monitoring, use Apify Schedules to run the actor on a recurring basis (hourly, daily, weekly) and get notified when URLs go down.

Input parameters

ParameterTypeRequiredDefaultDescription
urlsarray of stringsYes--List of URLs to check HTTP status codes for. Must include the protocol (http:// or https://).

Example input:

{
"urls": [
"https://www.google.com",
"https://en.wikipedia.org/wiki/Web_scraping",
"https://example.com",
"https://httpstat.us/404",
"https://httpstat.us/301"
]
}

Output example

A successful 200 OK response:

{
"url": "https://www.google.com",
"statusCode": 200,
"statusText": "OK",
"isOk": true,
"isRedirect": false,
"isClientError": false,
"isServerError": false,
"redirectUrl": null,
"contentType": "text/html; charset=ISO-8859-1",
"responseTimeMs": 145,
"server": "gws",
"error": null,
"checkedAt": "2026-03-01T12:00:00.000Z"
}

A 404 Not Found error:

{
"url": "https://httpstat.us/404",
"statusCode": 404,
"statusText": "Not Found",
"isOk": false,
"isRedirect": false,
"isClientError": true,
"isServerError": false,
"redirectUrl": null,
"contentType": "text/plain",
"responseTimeMs": 230,
"server": "Microsoft-IIS/10.0",
"error": null,
"checkedAt": "2026-03-01T12:00:00.000Z"
}

A 301 redirect:

{
"url": "https://httpstat.us/301",
"statusCode": 301,
"statusText": "Moved Permanently",
"isOk": false,
"isRedirect": true,
"isClientError": false,
"isServerError": false,
"redirectUrl": "https://httpstat.us",
"contentType": "text/html",
"responseTimeMs": 180,
"server": "Microsoft-IIS/10.0",
"error": null,
"checkedAt": "2026-03-01T12:00:00.000Z"
}

Tips and best practices

  • Always include the protocol -- every URL must start with http:// or https://. The actor needs the full URL to make the HTTP request.
  • Use for uptime monitoring -- schedule this actor to run every hour or every day with Apify Schedules to detect when URLs go down or start returning errors.
  • Filter by status category -- use the boolean flags (isOk, isRedirect, isClientError, isServerError) to quickly categorize and filter results in your downstream pipeline.
  • Monitor response times -- the responseTimeMs field helps identify slow endpoints that may need performance optimization or CDN caching.
  • Combine with Redirect Chain Analyzer -- if you find redirects (3xx), use the Redirect Chain Analyzer to trace the full redirect chain and verify the final destination.
  • Check before launching campaigns -- run this actor on all landing page URLs before launching email or ad campaigns to avoid sending traffic to broken pages.
  • Export to Google Sheets -- use the Google Sheets integration to automatically push results to a spreadsheet for collaborative tracking and historical comparison.
  • Set up webhook alerts -- configure a webhook to get notified via Slack, email, or your own endpoint when a run completes, so you can react quickly to detected issues.

Integrations

HTTP Status Checker works with all major integration platforms supported by Apify:

  • Zapier -- trigger workflows when URLs return error status codes, send alerts to Slack or email
  • Make (Integromat) -- build automated URL monitoring scenarios that run on a schedule and notify your team
  • n8n -- create self-hosted automation workflows that check URL health and store results
  • Google Sheets -- export results directly to a spreadsheet for collaborative tracking and historical comparison
  • Slack -- get notified in a Slack channel when URLs go down or return unexpected status codes
  • Webhooks -- receive HTTP POST notifications when a run completes, enabling custom integrations with any system

You can also chain this actor with the Redirect Chain Analyzer for deeper redirect analysis or the Broken Link Checker for crawling entire websites.

Using the Apify API

You can start HTTP Status Checker programmatically from your own applications using the Apify API. The following examples show how to run the actor and retrieve results.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('automation-lab/http-status-checker').call({
urls: [
'https://www.google.com',
'https://httpstat.us/404',
'https://httpstat.us/301',
],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('automation-lab/http-status-checker').call(run_input={
'urls': [
'https://www.google.com',
'https://httpstat.us/404',
'https://httpstat.us/301',
],
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl "https://api.apify.com/v2/acts/automation-lab~http-status-checker/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"urls": [
"https://www.google.com",
"https://httpstat.us/404",
"https://httpstat.us/301"
]
}'

Use with AI agents via MCP

HTTP Status Checker is available as a tool for AI assistants via the Model Context Protocol (MCP). This lets AI agents check URL health as part of larger workflows.

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Check HTTP status codes for these 50 URLs and tell me which ones are broken"
  • "Find which URLs return 404 errors from this list of landing pages"
  • "Check these API endpoints and flag any that have response times over 500ms"

Learn more in the Apify MCP documentation.

Yes. Sending HTTP HEAD or GET requests to publicly accessible URLs is a standard part of how the internet works. Every web browser, search engine crawler, and uptime monitoring service does the same thing. HTTP Status Checker sends a single HEAD request per URL, which is the lightest possible request type and places minimal load on the target server.

The actor does not scrape page content, bypass authentication, or access restricted areas. It only reads the HTTP response headers that the server voluntarily provides. This is equivalent to what any visitor's browser receives when navigating to a URL.

If you are checking URLs on websites you do not own, be mindful of the volume and frequency of your requests. For very large lists, the concurrent request processing helps complete runs quickly without sustained load on any single server.

Legality

This tool analyzes publicly accessible web content. Automated analysis of public web resources is standard practice in SEO and web development. Always respect robots.txt directives and rate limits when analyzing third-party websites. For personal data processing, ensure compliance with applicable privacy regulations.

FAQ

Does the actor follow redirects? No. The actor reports the first status code returned by the server. If a URL returns a 301 or 302, the actor reports that redirect status and captures the redirect target in the redirectUrl field. Use the Redirect Chain Analyzer if you need to follow the full redirect chain.

Why does a URL show a different status code than my browser? The actor uses HEAD requests, which some servers handle differently than GET requests. Additionally, some servers return different responses based on the User-Agent header, geographic location, or rate limiting. The actor reports what it receives as an external client without cookies or session state.

Can I check URLs that require authentication? The actor sends standard HTTP requests without authentication headers. URLs behind login walls or requiring API keys will return 401 or 403 status codes. Custom authentication headers are not supported in this version.

What is the difference between 4xx and 5xx errors? A 4xx status code (client error) means the request was invalid -- the URL does not exist (404), you are not authorized (401/403), or the request was malformed. A 5xx status code (server error) means the server failed to process a valid request, indicating a problem on the server side such as an overloaded server or misconfigured backend.

A URL shows status code null or an error message. What does that mean? A null status code with an error message means the request could not reach the server at all. Common causes include DNS resolution failures (domain does not exist), connection timeouts (server is down or unreachable), SSL/TLS certificate errors, or malformed URLs. Check that the URL is correct and the site is accessible from a browser.

Can I check thousands of URLs in one run? Yes. The actor is designed for bulk checking and processes URLs concurrently. There is no hard limit on the number of URLs per run. At $0.0005 per URL, checking 10,000 URLs costs approximately $5.04 including the start fee.

How can I monitor URLs on a schedule? Use Apify Schedules to run the actor automatically at any interval (every 5 minutes, hourly, daily, weekly). Combine with a webhook or Slack integration to get notified when URLs change status or go down.

Why do some URLs show very high response times? High response times can indicate server performance issues, geographic distance between the checking server and the target, or servers that throttle HEAD requests. Response times above 5,000ms may indicate the server is under heavy load or has connectivity problems.

Can I use this to check internal or localhost URLs? No. The actor runs on Apify's cloud infrastructure and can only reach publicly accessible URLs. Internal network addresses (192.168.x.x, 10.x.x.x, localhost, etc.) are not reachable from the cloud environment.

What happens if I submit a URL without http:// or https://? The URL will fail with an error because the actor needs the full protocol to determine how to connect to the server. Always include http:// or https:// at the beginning of each URL.

  • Website Health Report — Comprehensive website health and SEO audit with SSL, DNS, headers, and performance checks
  • Tech Stack Detector — Detect frameworks, CMS, analytics, and other technologies used by any website