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)


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
[](https://status.myapp.com)
[](https://status.myapp.com)
[](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