---
title: "Shutdown early-warning study rules (commitment ledger, no performance score)"
method: GET
path: "/v1/early-warning/protocol"
tags: ["Forecast"]
---

# Shutdown early-warning study rules (commitment ledger, no performance score)

`GET /v1/early-warning/protocol`

## Request

- Base URL: `https://api.voidly.ai`
- URL: `https://api.voidly.ai/v1/early-warning/protocol`
- Auth: none required

The study rules behind https://voidly.ai/atlas/early-warning, read from https://voidly.ai/early-warning/protocol.json and returned unchanged under `protocol`, with `source_url`, `page_url`, `commitments_url`, `fetched_at`, `performance_score` and `caveats`. Outage alerts are candidates for review, not confirmed shutdowns, and an official planned-restriction notice is an announcement, not evidence that it took effect. This is a commitment ledger with no performance score yet (`performance_score` is null): it makes no accuracy or lead-time claim, and alerts, alert counts and scores are not disclosed. `fetched_at` is when this API read the published file, not when any forecast was issued. The route takes no query parameters. Edge-cached: the first read answers `X-Voidly-Cache: MISS`, then the same document is served for five minutes as `HIT` (`Cache-Control: public, max-age=0, must-revalidate`). For up to one further hour a retained copy may be served as `STALE` with `Cache-Control: no-store` and `Warning: 110` while it refreshes in the background. A missing, redirected, oversized or malformed source with no retained copy answers 503 with `Cache-Control: no-store` and no partial data.

## Response `200`

Published study rules with provenance and caveats.

- object
  - `schema` 'voidly.early-warning.protocol-read.v1', required
  - `source_url` string, uri, required
  - `page_url` string, uri, required
  - `commitments_url` string, uri, required
  - `fetched_at` string, date-time, required
  - `performance_score` object, nullable, required: Always null: no performance score is published yet.
  - `caveats` string[], required
  - `protocol` object, required: The published early-warning-public-protocol-v1 document, passed through unchanged.

## Other responses

- `400`: A query parameter was supplied; this route takes none.
- `405`: A method this route does not serve answers 405 with Allow: GET.
- `503`: The published source could not be read or failed validation and no retained copy was available. No partial data; Cache-Control: no-store.

## Changes

- **2026-10-15** `b612f236bcae`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/voidly/apis/voidly-api/changes/v1/early-warning/protocol/get.md)

---

[API](https://skmtc.dev/voidly/apis/voidly-api.md) - [All operations](https://skmtc.dev/voidly/apis/voidly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/voidly/apis/voidly-api/revisions/c085ac335933?raw)
