SaaS Status Page Monitor
Pricing
from $6.50 / 1,000 target checkeds
SaaS Status Page Monitor
Monitor public status pages, incidents, component states, and status-history changes.
Pricing
from $6.50 / 1,000 target checkeds
Rating
0.0
(0)
Developer
junipr
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Compare public SaaS status page snapshots and turn component, incident, and overall service changes into structured dataset rows and a concise operations report.
What It Monitors
- Overall service indicators and descriptions.
- Component additions, removals, and status changes.
- Incident openings, resolutions, removals, and update changes.
- Incident impact, start time, resolution time, and latest message when the source supplies them.
The parser accepts Statuspage summary JSON, generic JSON component or incident collections, structured status records, and HTML elements with explicit data-component-* attributes. It does not infer outages from arbitrary page prose.
Input
Use targets for multiple comparisons, or provide the direct single-target fields at the top level.
| Field | Purpose |
|---|---|
targets | Previous/current comparisons with IDs, titles, snapshots, records, and optional source URLs. |
sourceUrl / urls | Public current-state URLs. Retrieval occurs only when fetchUrls is true and no current snapshot is supplied. |
previousSnapshot / currentSnapshot | Statuspage JSON, supported generic JSON, or explicit component HTML. |
previousEntities / currentEntities | Structured overall, component, or incident records. |
records | Pre-paired records containing old and new values. |
includeUnchanged | Include comparable entities whose supported fields did not change. |
includeReport | Write results, summary, and Markdown report records. |
maxTargets | Target cap, from 1 through 50. |
maxEntitiesPerTarget | Entity cap per side, from 1 through 5,000. |
maxItems | Dataset row cap. |
maxTextBytes | Snapshot size cap, up to 1,000,000 bytes. |
fetchTimeoutMs | HTTP timeout, from 1,000 through 30,000 milliseconds. |
{"sourceId": "payments-status","title": "Payments status","previousEntities": [{ "id": "api", "type": "component", "name": "API", "status": "operational" }],"currentEntities": [{ "id": "api", "type": "component", "name": "API", "status": "partial_outage" },{ "id": "incident-42", "type": "incident", "name": "Elevated API errors", "status": "investigating", "impact": "minor" }],"maxItems": 25,"includeReport": true}
Dataset Rows
Each row identifies one changed or diagnostic entity. Important fields include:
entityType,entityKey,serviceName,component, andincidentTitle.changeType,oldStatus,newStatus,oldMessage, andnewMessage.impact,startedAt,resolvedAt,severity, andscore.sourceId,sourceUrl,sourceType,checkedAt, andrecommendation.diagnosticCodeandsourceErrorfor blocked retrieval or unrecognized content.
Change types are overall-status-changed, component-added, component-removed, component-status-changed, incident-opened, incident-resolved, incident-updated, incident-removed, and unchanged.
Stored Artifacts
- Dataset: one row per changed, unchanged, or diagnostic entity that passes the configured filters and caps.
SAAS_STATUS_PAGE_MONITOR_RESULTS.json: emitted rows.SAAS_STATUS_PAGE_MONITOR_SUMMARY.json: target and change counts, diagnostics, and charge-limit status.SAAS_STATUS_PAGE_MONITOR_REPORT.md: readable incident and component digest.
When report charging is unavailable, the actor records why the report was skipped instead of writing an unpaid report.
Usage Charges
The actor uses pay per event. Platform usage is included in these event prices.
| Event | Price | When charged |
|---|---|---|
actor-start | $0.02000 | Once before paid work starts. |
target-checked | $0.00650 | Before each target is processed. |
snapshot-compared | $0.00650 | Before a successfully prepared snapshot pair is compared. |
change-detected | $0.01300 | Before each changed entity row is emitted. |
digest-generated | $0.05000 | Before JSON result and summary records are written. |
executive-report-generated | $0.10000 | Before the Markdown report is written. |
If Apify reports that a charge was limited or only partly accepted, the actor stops before the corresponding paid output. Set includeReport to false when KVS report artifacts are not needed.
Public Tasks
Five capped task inputs cover component state changes, new incidents, incident resolutions, overall health, and an operations digest. Each task compares actor-specific status records and limits output volume.
Retrieval Safety
- Only
httpandhttpsURLs are accepted. - Credentials in URLs and redirects are rejected.
- Loopback, link-local, and private network destinations are blocked unless
allowPrivateUrlsis explicitly enabled for controlled testing. - Response length, retained snapshot bytes, target count, entity count, and request duration are bounded.
- Fetch failures and empty parses produce explicit diagnostic rows. The actor does not invent component states or incidents.
Limitations
- JavaScript-only pages must expose a JSON endpoint or provide a snapshot; the actor does not run a browser.
- HTML parsing requires explicit component data attributes. Free-form prose is not converted into status facts.
- Scheduling and baseline retention are managed by the caller. Pass the prior snapshot or records into each comparison.
- Private status pages and credentialed endpoints are not supported.