# Nyup Status > A status page run by nabiz 3.12.1 > (https://github.com/productdevbook/nabiz). The > services listed on it are probed once a minute and ninety days of history > are kept. Everything here is public, read-only and CORS-open. Every > answer here is held briefly — at most fifteen seconds on Cloudflare, and > until the next probe round on a self-hosted one — and every round drops > what it held, so nothing served is older than the round behind it. A monitor marked as a group stands for several hosts that are served here but named elsewhere; neither their names nor their number is published. ## Endpoints - [The page](https://status.nyup.net/): HTML, and the JSON below to an Accept header that asks for it - [status.json](https://status.nyup.net/api/status.json): current state, per-monitor uptime and latency, why anything is down, recent events - [history.json](https://status.nyup.net/api/history.json): ninety days of daily totals per monitor - [notices.json](https://status.nyup.net/api/notices.json): operator-written notices, markdown and rendered - [badge.svg](https://status.nyup.net/badge.svg): the overall state as a badge - [feed.xml](https://status.nyup.net/feed.xml): state changes and notices as RSS - [health](https://status.nyup.net/health): 204 when the status page itself is alive, with no database behind it, and an "x-nabiz" header carrying the build - [robots.txt](https://status.nyup.net/robots.txt): crawling is welcome; it points here ## Asking cheaply HEAD https://status.nyup.net/ answers with an "x-status" response header that says up, sites, degraded or down, and no body. https://status.nyup.net/api/status.json carries the same header; no other endpoint does. GET https://status.nyup.net/ with "Accept: application/json" (and no text/html) returns the status.json body instead of HTML. A Link header on the HTML page points to this file, the JSON and the RSS feed, and the HTML head carries the same links as . The page, the feed and notices.json take ?lang= (en, tr, de, es, fr, zh-CN). The page and the feed translate their words and serve a notice written for one language only to that language; notices.json does the same when asked for a language, and returns every notice when not. The other endpoints carry no words to translate. ## Reading status.json "status" is one of four for the whole page: "up", "sites" when only some of the hosted sites are unreachable and everything else is serving, "degraded" when a service is down, and "down" when nothing answers. Each monitor carries "status" — "up", "down", or "unknown" before its first probe has written anything, and "degraded" only for a group — "uptime_90d" (percent, null before the first day of data), and "latency_ms" from the most recent successful probe. A monitor that is down also carries "last_status", the code its last probe was answered with, and "reason" when the code does not say it: "timeout", "unreachable" for a connection that never happened, or "body" for a promised status with the wrong words in it. A group carries neither: it speaks for several hosts and publishes none of their answers. A grouped monitor speaks for several hosts and says only how it is: "degraded" while some of them are unreachable, "down" once half or more are, and never on one host alone. How many there are is not published — that number is a customer count. Each day it publishes is a real member's day rather than a total: the median one, never worse than the second-worst, so one host's bad day is not billed to the others. ## Writing For the operator, with a token. POST https://status.nyup.net/api/notice with Authorization: Bearer and a JSON body of {"body": "markdown", "severity": "info|maintenance|degraded|outage", "lang": "all|en|tr|de|es|fr|zh-CN"}; POST https://status.nyup.net/api/notice/resolve with the same header and {"id": n}. Ten guesses at the token a minute per address, counted in the memory of whichever process answered — so on Cloudflare, where there are many, it is a brake rather than a limit. A refusal carries retry-after. ## Optional - [robots.txt](https://status.nyup.net/robots.txt): everyone is allowed; there is nothing here worth hiding