Documentation
Embeds
Things you can put on your own page.
1 endpoint · all GET · no key · samples in curl, Python, JavaScript and Go
GET /badge/{venue}.svg
Embeddable status badge
package main
import (
"encoding/json"
"net/http"
)
func main() {
res, err := http.Get("https://api.up24.app/badge/binance.svg")
if err != nil {
panic(err)
}
defer res.Body.Close()
var data map[string]any
if err := json.NewDecoder(res.Body).Decode(&data); err != nil {
panic(err)
}
}One SVG per venue, coloured by the same four states the board uses. A whole document that depends on nothing — no stylesheet, no font file — so it renders anywhere an <img> does, including the README renderers that strip everything else.
Cached 60s rather than the API’s few seconds: a badge sits in pages nobody reloads, behind image proxies that cache on their own schedule anyway, and is read at a glance rather than during an incident.
The staleness rule applies here too. A badge stuck on operational because the engine died is worse than a page doing it, since nobody is watching a badge to find out — so it goes grey instead.
Parameters
venuestringpathrequiredRegistry id of the exchange. The
.svgsuffix is part of the path."binance""bybit""coinbase""kraken""okx""bitfinex""deribit""bitstamp""gemini""cryptocom""hyperliquid""upbit""binance-futures""bybit-futures""okx-futures"
Responses
200The badge.404No such venue in the registry.429Over the origin rate limit.