Status pages are built for humans: a page per vendor, each with its own markup. If you want the same data as JSON — which components exist, what state each one is in, when it last changed — you end up writing a parser per vendor. This actor does that part for BetterStack (Better Uptime) status pages.
What comes back
One real record from an actual run:
{
"id": "5482129",
"title": "Render: Background Workers",
"url": "https://render.betteruptime.com/",
"seller": "Render",
"description": "All background workers hosted on Render.",
"status": "not_monitored",
"availability": 1,
"resource_type": "Monitor",
"last_status_day": "2026-08-02",
"record_type": "resource"
}
Enter fullscreen mode Exit fullscreen mode
Every record has the same shape: availability, description, id, last_status_day, record_type, resource_type, seller, status, title, url.
Fields with no value are left out rather than filled with placeholders, and records are de-duplicated before they reach the dataset.
Input
Input Type What it doesquery
string
What to search for on BetterStack
maxResults
integer
Maximum number of clean results to return (capped at 500)
enrich
boolean
Adds deterministic enrichment per record: extracted emails, canonical domain and a completeness score
monitor
boolean
Compares this run with the previous one and flags NEW records only
Running it
Start it from the Apify Console, call it over the REST API, or expose it to an agent as an MCP tool — the dataset is the same either way.
What it costs
Pay per event, not per hour: starting a run is free, and you are charged for the results you actually get.