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"
}
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 does |
|---|---|---|
query |
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.
Top comments (0)