Public badges show the live status of a check or a tag — in a
README, on a status page, in a wiki. No auth needed: access is
via the project's badge_key.
A badge per check and an aggregated badge per tag:
https://app.cronalive.com/badge/<badge_key>/<uuid>.<format> https://app.cronalive.com/badge/<badge_key>/tag/<tag>.<format>
The format is svg,
json or
shields. Ready-made URLs are shown
on the check page in the dashboard.
badge_key is a separate project key:
it matches neither the ping key nor the API keys, so a badge
neither exposes ping URLs nor grants API access. If the key
leaks, rotate it in the project settings
(Projects → Status badge key) — old badge URLs stop
working immediately.
SVG — a ready image (check name + colored status), for Markdown:

JSON — for your own widgets:
{"label": "nightly backup", "status": "up"} shields — the shields.io endpoint format, to render a shields-style badge:
{"schemaVersion": 1, "label": "nightly backup", "message": "up", "color": "3fb950"}
# via shields.io:
https://img.shields.io/endpoint?url=https://app.cronalive.com/badge/<badge_key>/<uuid>.shields | Status | Color |
|---|---|
| up | #3fb950 green |
| late | #d29922 yellow |
| down | #f85149 red |
| paused | #8b949e gray |
| new | #58a6ff blue |
Status meanings — the check lifecycle.
A tag badge aggregates every check of the project carrying that tag and shows the worst status by the priority down → late → new → paused → up: one failed check turns the whole tag red. A tag with no checks — 404.
Responses are cached for 60 seconds
(Cache-Control: public, max-age=60) —
the badge status is near-live without the load of frequent
README redraws.