# Vendor facets — OneUptime (status pages). Open-source observability with status pages; on the Kin Score it # touches one pointer check, status_page_present (6 pts). Headline: the hosted oneuptime.com/status-page/ # URL earns full credit (the oneuptime.com host 404s unknown paths), but a custom status.* domain serves one # catch-all page and grades only unverified (0.5) — the branded setup scores LESS than the default URL. vendor: oneuptime name: OneUptime website: https://oneuptime.com areas: - status-page registry_keys: [] rubric_schema_version: 0.22.0 generated: '2026-09-25' features_refreshed: '2026-09-25' basis: capability summary: >- OneUptime touches one Kin Score check, status_page_present (6 pts), and how much it earns depends on which URL the provider declares. The default oneuptime.com/status-page/ pointer grades live (6 of 6), because the oneuptime.com host returns a real 404 for nonsense paths. A custom status.* domain answers every path with the same page, which the probe reads as a soft-404 rescued to unverified (3 of 6). No vendor-registry key detects it. Its MCP server, subscriber feeds and maintenance windows score nothing for the provider. features: - id: hosted-status-page name: Public and private status pages (hosted or self-hosted) description: >- Unlimited public and private status pages with scheduled maintenance, per-resource uptime history, incident notes and postmortems; open source and self-hostable, with a free tier. source: https://oneuptime.com/product/status-page tier: all - id: soft-404-safe-default-url name: Default URL on oneuptime.com 404s unknown paths (measured) description: >- Probed 2026-09-25: oneuptime.com returns 404 for a nonsense path, so a oneuptime.com/status-page/ pointer can be told apart from a catch-all. source: https://oneuptime.com/status-page/5c4b010b-1753-4d8f-8689-226d6e86d72a tier: all - id: custom-domain name: Custom domain with automatic SSL — catch-all page (measured) description: >- Custom-domain hosting; probed 2026-09-25, status.oneuptime.com returns a byte-identical 200 for the page and for a nonsense path. source: https://status.oneuptime.com tier: all - id: subscribers name: Subscribers via email, SMS, webhook, RSS and Slack description: Subscribers auto-notified before, during and after maintenance and incidents. source: https://oneuptime.com/product/status-page tier: all - id: oneuptime-mcp name: OneUptime MCP server description: >- Cloud or self-hosted MCP server with API-key auth over the provider's OneUptime incidents, monitors, logs, metrics and traces. source: https://oneuptime.com/tool/mcp-server tier: unknown maps: - feature: hosted-status-page check: status_page_present layer: composite credit: 1.0 provider_must: >- Declare the oneuptime.com/status-page/ URL in apis.yml as common[].type StatusPage. Declaring the custom status.* domain instead drops the pointer to unverified: a soft-404 excused by the status.* prefix rule, 3 of 6 points instead of 6. note: >- Full credit is reachable only on the default URL; the one map per check carries the best case, and the custom-domain discount is stated rather than hidden. catalog_pass_rate: 0.125 facet: operational_transparency points: 6 baseline_pass_rate: 0.376 earns_nothing: - feature: oneuptime-mcp check: mcp_server why: >- It serves the provider's team their OneUptime observability data; the dimension reads an MCP server for the provider's own API, described in its mcp/ manifest. - feature: subscribers check: webhooks_advertised why: Status-notification webhooks are not webhooks of the provider's API. out_of_reach: checks: - change_log_present - deprecation_policy - roadmap_present - rate_limits_documented note: >- OneUptime's "announcements" post product news on the status page, but the page fetched does not offer a change log of the API; a status page publishes nothing about limits or deprecations. unscored_practice: - feature: hosted-status-page why: Per-resource uptime history and scheduled maintenance windows; no check reads them. surface: operational_transparency: reachable: 6.0 total: 38 agent_readiness: reachable: 0 total: 139 hard_rule: >- A model, not a score. Adopting this vendor changes a provider's Kin Score only when the provider publishes the resulting artifacts on its own surface; nothing here writes a score, and no sponsorship or partnership can. method: searched source: - https://oneuptime.com/product/status-page - https://oneuptime.com/status-page/5c4b010b-1753-4d8f-8689-226d6e86d72a - https://oneuptime.com/tool/mcp-server - https://status.oneuptime.com measured: cohort: method: vendors-catalog.json detections (CNAME / header / URL shape / markup), never a name match detected: 0 in_baseline: 0 control: basis: providers earning contract_present + documentation_present + api_reference_present, minus the cohort n: 5216 metric: >- cohort_pct / control_pct = mean share of the check's points earned (derived and platform credit weighted), x100 measured_on: '2026-09-25' status: 'not measurable: 0 detected customers clear the baseline (need 20)' simulation: simulated_on: '2026-09-25' rubric: 0.23.0 population: providers publishing a contract (contract_present earned), replayable exactly providers: 8977 providers_unreplayable: 987 providers_moved: 6390 conditional_rows: excluded (they depend on what the API already does) composite_lift: median: 2.0 p75: 2.1 p90: 2.1 max: 2.1 mean_among_movers: 1.9 agent_readiness_lift: median: 0.0 p75: 0.0 p90: 0.0 max: 0.0 mean_among_movers: 0.0 facet_lift_median_among_movers: operational_transparency: 15.8 composite_band_moves: thin -> developing: 598 developing -> strong: 172 emerging -> thin: 158 strong -> exemplar: 43 minimal -> emerging: 1 agent_readiness_band_moves: {} method: >- each provider's own kin/checks file, the vendor's maps at their stated credit, the scorer's composite formula; from -> to, nothing written