Status Badges

Display real-time monitoring status with customizable badges for your projects.

Status badges are small SVG images that dynamically show the current status of your monitors or heartbeats. They update in real-time and can be embedded anywhere that supports images.

Badges are publicly accessible and don't require authentication, making them perfect for public repositories and status pages.

Badge Types

Monitor Badges

Up — Service is operational
Down — Service is unavailable
Unknown — Status undetermined

Heartbeat Badges

OK — Running on schedule
Pending — Currently running
Late/Failed — Missed schedule
New — Not yet checked

Getting Badge URLs

Navigate to your monitor or heartbeat detail page in the dashboard and find the "Status Badge" section. Copy the URL:

# Monitor badge
https://upcron.io/badge/monitor/{monitor-id}

# Heartbeat badge
https://upcron.io/badge/heartbeat/{heartbeat-id}

Usage Examples

Markdown (README files)

![Uptime Status](https://upcron.io/badge/monitor/your-monitor-id)
![Backup Status](https://upcron.io/badge/heartbeat/your-heartbeat-id)

HTML

<!-- Basic -->
<img src="https://upcron.io/badge/monitor/your-id" alt="Service Status">

<!-- With link -->
<a href="https://status.yoursite.com">
  <img src="https://upcron.io/badge/monitor/your-id" alt="Service Status">
</a>

Customization

Customize badge appearance using URL parameters:

# Custom style
https://upcron.io/badge/monitor/your-id?style=flat-square

# Custom label
https://upcron.io/badge/monitor/your-id?label=Production%20API

# Custom colors
https://upcron.io/badge/monitor/your-id?up_color=brightgreen&down_color=red

Available Parameters

Parameter Description Example Values
style Badge style flat, flat-square, plastic
label Custom label text API, Website, Service
up_color Color when up green, brightgreen, success
down_color Color when down red, critical, important
unknown_color Color for unknown lightgrey, inactive

Common Use Cases

GitHub Repository

# My Web App

[![Website](https://upcron.io/badge/monitor/website-id)](https://status.myapp.com)
[![API](https://upcron.io/badge/monitor/api-id?label=API)](https://status.myapp.com)
[![Backups](https://upcron.io/badge/heartbeat/backup-id)](https://status.myapp.com)

Status Page

<h1>System Status</h1>

<div class="status-grid">
    <span>Main Website</span>
    <img src="https://upcron.io/badge/monitor/website-id" alt="Website Status">

    <span>Customer API</span>
    <img src="https://upcron.io/badge/monitor/api-id" alt="API Status">

    <span>Database Backups</span>
    <img src="https://upcron.io/badge/heartbeat/backup-id" alt="Backup Status">
</div>

Caching

  • Cache duration — 60 seconds
  • CDN delivery — Global content delivery network
  • Status changes — Reflected within 1–2 minutes

To force refresh in aggressive caching browsers:

setInterval(() => {
    document.querySelectorAll('img[src*="upcron.io/badge"]').forEach(badge => {
        const url = new URL(badge.src);
        url.searchParams.set('t', Date.now());
        badge.src = url.toString();
    });
}, 5 * 60 * 1000);

Troubleshooting

Badge not updating
  • Check if the monitor/heartbeat ID is correct
  • Verify the badge URL is accessible
  • Clear browser cache or add cache-busting parameter
  • Wait up to 2 minutes for status changes to propagate
Badge showing as unknown
  • Monitor or heartbeat hasn't been checked yet
  • Invalid monitor/heartbeat ID in the URL
  • Monitor is inactive or disabled
Badge not displaying in README
  • Ensure the URL is publicly accessible
  • Check if the image URL is properly formatted in Markdown
  • Try accessing the badge URL directly in your browser