on this page

Incidents and statusUptime and reports

Uptime and the weekly report

Tissue Mast keeps a daily uptime record for every probe and vital, and keeps it for 400 days. You can read a month's uptime from the API, your status pages show the last full month next to the 90-day bars, and on Solo, Team and Company you get a short email every Monday about the week before.

The web app doesn't show these yet. Everything on this page works through the API with an account token.


How uptime is counted

  • A probe is up or down for the time between one check and the next. If checks stop for a while, say the probe was paused, that gap counts as neither. A check that was blocked, or that the locations couldn't agree on, doesn't count either way.
  • A vital is down from the moment it flatlines until the page for it resolves, and up the rest of the time from its first beat. The time between creating a vital and its first beat counts as neither, and a vital that has never beaten isn't counted.
  • Time inside a maintenance window that covers the probe or vital counts as neither up nor down, so planned work doesn't cost you uptime. It shows up separately as maintenance minutes.

Days are UTC. Downtime is rounded up to the minute, and the percentage is never rounded up to 100, so a probe that was down for 20 seconds in a month reads 99.999%, not 100%.


A month's uptime

curl https://api.tissue.systems/v1/mast/uptime?month=2026-09 \
  -H "Authorization: Bearer $TISSUE_TOKEN"

Leave out month and you get the last full month. The month in progress works too and reads up to now. A month that hasn't started, or one before 2020, is refused. The answer lists every probe and vital:

{
  "month": "2026-09",
  "from": "2026-09-01",
  "to": "2026-10-01",
  "complete": true,
  "probes": [
    {
      "id": "mp_4b1e…",
      "name": "api",
      "uptime_pct": 99.981,
      "downtime_minutes": 8,
      "maintenance_minutes": 120,
      "measured_minutes": 43080,
      "checks": 43200,
      "failed": 9,
      "incidents": 2,
      "avg_ms": 184,
      "estimated": false
    }
  ],
  "vitals": []
}

uptime_pct is null when nothing was measured in that month. estimated is true when the figure includes days from before Tissue Mast kept the daily record. Those days are worked out from the number of checks that passed and failed, without maintenance windows taken out.

The uptime figure is on every plan, Free included.


On a status page

Each component on a status page carries the last full month as uptime_month, with the month, the percentage, the minutes of downtime and estimated, which means the same as it does above. A probe listed twice on a page shows the same figure both times.


The weekly report

On Solo, Team and Company, Tissue Mast emails a report every Monday at 08:00 UTC about the week from Monday to Sunday before it. It has:

  • uptime and minutes down for each probe and vital
  • how many incidents there were, and how many alerts rang your phones (anything sent loud or as a page, which includes every probe and vital alert)
  • your slowest probes, by average response time
  • the probes that failed most often

The account owner gets it. Anyone else on the account can ask for it too. Each person gets one copy a week.

Read the settings:

curl https://api.tissue.systems/v1/mast/reports/settings \
  -H "Authorization: Bearer $TISSUE_TOKEN"
{
  "weekly": true,
  "available": true,
  "subscribed": false,
  "can_change_weekly": true,
  "subscribers": [],
  "next_send_at": "2026-10-19T08:00:00.000Z"
}

weekly is the switch for the whole account and starts out on. available says whether your plan includes the report. subscribed says whether you, the person calling, get it as a member. can_change_weekly says whether you can flip weekly. The account owner and admins see everyone in subscribers; anyone else sees only themselves.

The account owner or an admin can turn the report off for everyone, or on again. Anyone else gets a 403 and should use subscribe instead:

curl -X PUT https://api.tissue.systems/v1/mast/reports/settings \
  -H "Authorization: Bearer $TISSUE_TOKEN" -H "Content-Type: application/json" \
  -d '{"weekly": false}'

Get it yourself as a member of the account, or stop getting it:

curl -X PUT https://api.tissue.systems/v1/mast/reports/settings \
  -H "Authorization: Bearer $TISSUE_TOKEN" -H "Content-Type: application/json" \
  -d '{"subscribe": true}'

Subscribing is per person, so it needs your own sign-in or account token. A phone's device key can't subscribe anyone or change weekly. The report goes to the address on your Tissue account, and stops if you leave the account. If the account has no email address for you, subscribing answers 400. If you're no longer a member of the account, it answers 403. If the account's member list can't be read at that moment, subscribing answers 503 with members_unavailable, and so does changing weekly with an account token. Try again shortly. Each email says at the bottom how to stop it: the owner's copy points at weekly, everyone else's at subscribe.

See last week's report without sending it:

curl https://api.tissue.systems/v1/mast/reports/weekly/preview \
  -H "Authorization: Bearer $TISSUE_TOKEN"

That returns the subject, the plain text and the HTML of the email, the week it covers and who it would go to. The account owner and admins see the owner's copy and every address on the list. Anyone else sees the copy they'd get and only their own address, if they're on the list.

On Free, turning the report on, subscribing and the preview answer 402 with plan_limit. Turning it off, with weekly or subscribe, always works, so an account that moved to Free can still stop it.