⚡ HTTP Status Monitor
Pricing
Pay per event
⚡ HTTP Status Monitor
Monitor URLs to extract status codes, response times, and SSL validity. Schedule runs and integrate via API to track website uptime.
Pricing
Pay per event
Rating
0.0
(0)
Developer
太郎 山田
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
🔗 URL Health Checker
Bulk-check HTTP status codes, redirects, SSL validity, and response times for thousands of URLs. No browser, no API keys — fast and cheap monitoring.
Store Quickstart
Start with the Quickstart template (4 demo URLs including 404/500 cases). Once validated, switch to SEO Link Audit for crawl-style batches, or Webhook Alert for operational monitoring.
Key Features
- ⚡ Bulk checking — Process up to 1,000 URLs per run with configurable concurrency (1-20)
- 🔁 Redirect chain tracking — Full 301/302/307/308 redirect path from source to final URL
- ⏱️ Response time measurement — Millisecond-precision timing per URL
- 🔒 SSL validation — Detects invalid, expired, or mismatched SSL certificates
- 🏷️ Error classification — TIMEOUT, DNS_RESOLUTION_FAILED, CONNECTION_REFUSED, SSL_ERROR
- 🪝 Webhook delivery — Send results to Slack, Discord, or any custom endpoint
Use Cases
| Who | Why |
|---|---|
| SEO agencies | Audit client sites for broken links, slow pages, and SSL issues in bulk |
| DevOps teams | Schedule daily URL health checks and alert via webhook on failures |
| Migration projects | Verify every old URL redirects correctly after a domain migration |
| API health monitors | Track endpoint availability and response times across services |
| Content teams | Find outdated outbound links in articles and documentation |
Input
| Field | Type | Default | Description |
|---|---|---|---|
| urls | string[] | (required) | URLs to check (max 1000) |
| concurrency | integer | 10 | Parallel requests (1-20) |
| timeoutMs | integer | 10000 | Request timeout in ms |
| followRedirects | boolean | true | Follow HTTP redirects |
| delivery | string | dataset | "dataset" or "webhook" |
| webhookUrl | string | Webhook endpoint URL | |
| dryRun | boolean | false | Test without saving |
Input Example
{"urls": ["https://google.com", "https://github.com", "https://httpstat.us/404"],"concurrency": 10,"timeoutMs": 10000,"followRedirects": true,"delivery": "dataset"}
Output
| Field | Type | Description |
|---|---|---|
url | string | Original URL that was checked |
statusCode | integer | HTTP status code (200, 404, 500, etc.) |
redirectChain | string[] | Ordered list of intermediate URLs in redirect chain |
finalUrl | string | URL after following all redirects |
responseTimeMs | integer | Total response time in milliseconds |
contentType | string | Content-Type header from the response |
sslValid | boolean | Whether the SSL certificate is valid |
error | string | null |
checkedAt | string | ISO 8601 timestamp when the check ran |
Output Example
{"url": "https://example.com","statusCode": 200,"redirectChain": [],"finalUrl": "https://example.com","responseTimeMs": 142,"contentType": "text/html; charset=UTF-8","sslValid": true,"error": null,"checkedAt": "2026-04-05T12:00:00.000Z"}
API Usage
Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.
cURL
curl -X POST "https://api.apify.com/v2/acts/taroyamada~bulk-url-health-checker/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{ "urls": ["https://google.com", "https://github.com", "https://httpstat.us/404"], "concurrency": 10, "timeoutMs": 10000, "followRedirects": true, "delivery": "dataset" }'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("taroyamada/bulk-url-health-checker").call(run_input={"urls": ["https://google.com", "https://github.com", "https://httpstat.us/404"],"concurrency": 10,"timeoutMs": 10000,"followRedirects": true,"delivery": "dataset"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('taroyamada/bulk-url-health-checker').call({"urls": ["https://google.com", "https://github.com", "https://httpstat.us/404"],"concurrency": 10,"timeoutMs": 10000,"followRedirects": true,"delivery": "dataset"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Tips & Limitations
- Use concurrency 5–10 for most workloads. Higher values can trigger rate limiting on shared hosting.
- Set
delivery: "webhook"to forward results to Slack/Discord/PagerDuty in real time. - Schedule daily runs to track uptime trends and catch SSL expiry before users do.
- For large lists (>1,000 URLs), split into multiple runs to stay within memory limits.
FAQ
How is this different from a simple ping?
Ping only checks reachability. This actor fetches the URL over HTTP, inspects status codes, follows redirects, validates SSL, and measures response times — full production-level health checks.
Can I check URLs that require authentication?
Not in the current version. This actor uses anonymous HTTP requests. Authentication support is on the roadmap.
Will Cloudflare/WAF block this actor?
It respects robots.txt and uses normal User-Agent. For heavily protected sites, use moderate concurrency (1-5) and longer timeouts.
What counts as 'SSL valid'?
We verify certificate chain, expiry, hostname match, and trust. Self-signed or expired certs return sslValid=false with details.
Can I get notified when a URL goes down?
Yes — set delivery: "webhook" and provide your endpoint URL. Each failed check is POSTed immediately.
Does this consume Apify proxy credits?
No. This actor uses the Apify datacenter network without paid residential proxies.
Related Actors
URL/Link Tools cluster — explore related Apify tools:
- 🔗 Broken Link Checker — Crawl websites to find broken links, 404 errors, and dead URLs.
- 🔗 URL Unshortener — Expand bit.
- 🏷️ Meta Tag Analyzer — Analyze meta tags, Open Graph, Twitter Cards, JSON-LD, and hreflang for any URL.
- 📚 Wayback Machine Checker — Check if URLs are archived on the Wayback Machine and find closest snapshots by date.
- Sitemap Analyzer API | sitemap.xml SEO Audit — Analyze sitemap.
- Schema.org Validator API | JSON-LD + Microdata — Validate JSON-LD and Microdata across multiple pages, score markup quality, and flag missing or malformed Schema.
- Site Governance Monitor | Robots, Sitemap & Schema — Recurring robots.
- RDAP Domain Monitor API | Ownership + Expiry — Monitor domain registration data via RDAP and track expiry, registrar, nameserver, and ownership changes in structured rows.
- Domain Security Audit API | SSL Expiry, DMARC, Domain Expiry — Summary-first portfolio monitor for SSL expiry, DMARC/SPF/DKIM, domain expiry/ownership, and security headers with remediation-ready outputs.
Cost
Pay Per Event:
actor-start: $0.01 (flat fee per run)dataset-item: $0.003 per output item
Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01
No subscription required — you only pay for what you use.