Reference
Status observation reference
Reference for StatusObservation: vendor_status_api / vendor_status_page / independent_http_probe sources, the ObservedStatus values, the sample threshold gating uptime exposure, and the rules against availability claims.
Last updated: 2026-05-21
StatusObservation shape
interface StatusObservation {
providerSlug: string;
source: StatusObservationSource;
observedStatus: ObservedStatus;
observedAt: string; // ISO-8601
sourceUrl: string; // exact URL probed / read
responseOk: boolean; // upstream was 2xx and parseable
httpStatus?: number;
latencyMs?: number | null;
note?: string;
}Every observation carries its own source attribution. The UI groups observers by source and renders each side independently — vendor-reported and independent-probe results never appear in the same column.
Source values
| Signal | What it measures | Not the same as |
|---|---|---|
| vendor_status_api | Programmatic vendor feed (Statuspage JSON, Google Cloud incidents JSON, etc.). The provider reports on themselves. | an independent uptime measurement |
| vendor_status_page | HTML status page consumed without a structured feed. Reserved for vendors without JSON. | an independent uptime measurement |
| independent_http_probe | Unauthenticated GET issued by WebmasterID against a public, non-inference vendor endpoint. Host reachability only — no API key, no inference, no billing. | an API request-latency measurement |
| Provider | Observer sources | Live endpoints |
|---|---|---|
| anthropic | Vendor status API + Independent HTTP probe | /api/status/anthropic · /api/status/anthropic/latest · /api/status/anthropic/window |
| Vendor status API | /api/status/google · /api/status/google/latest · /api/status/google/window |
ObservedStatus enum
| observedStatus | Definition | Rule / note |
|---|---|---|
| operational | No detected impact at this observation time. For probes: host responded with 2xx/3xx/4xx. | |
| degraded | Minor incident affecting the tracked product. | |
| partial_outage | Partial unavailability. | |
| major_outage | Broad unavailability. | |
| maintenance | Announced maintenance window. | |
| unknown | Could not determine. Probes set this on timeout/network error; vendor observers set this when the upstream feed could not be parsed. |
ObservedStatus values
operational— no detected impact at this observation time. For probes: host responded with 2xx/3xx/4xx.degraded— minor incident affecting the tracked product. Probes: response delayed beyond expected envelope (rare; not yet wired).partial_outage— partial unavailability. Vendor sources map this from their own severity vocabulary.major_outage— broad unavailability.maintenance— announced maintenance window.unknown— could not determine. Probes set this on timeout/network error; vendor observers set this when the upstream feed could not be parsed.
latencyMs semantics
latencyMs is the wall-clock time of the fetch WebmasterID made to the status source — never the provider's request latency. The codebase documents this explicitly and an integrity guard refuses to ship a build where any status pipeline file contains the literal phrase "API latency".
Uptime gating policy
The window endpoint at /api/status/<slug>/window can return an uptimePercentage number, but only when:
- Durable storage is configured.
- Sample count in the requested window is at least 24 observations.
When the gate fails, uptimePercentage is null and the response's policyNote explains the gating decision in plain English. Even when the gate passes, the number is the share of stored observations whose observedStatus was operational — a vendor-reported operational-sample rate, not an independent availability percentage.
No SLA, no availability claim
Nothing the platform publishes should be read as an SLA, a guarantee, or a substitute for a vendor's own status communication. /status surfaces the data; the methodology behind that framing is at /research/ai-provider-status-monitoring.
Continue