Status Page
Real-time platform status and incident tracking for TokenBot services.
Overview
Section titled “Overview”The TokenBot Status Page provides real-time visibility into the health of all platform services. Check it when you suspect an issue or want to verify that everything is running smoothly.
URL: status.tokenbot.com
Monitored Services
Section titled “Monitored Services”The status page monitors six services across two groups:
API Services
Section titled “API Services”| Service | Health Endpoint | Description |
|---|---|---|
| REST API | /v1/health | Primary REST API for all platform operations |
| GraphQL API | /health | GraphQL API for dashboard and advanced queries |
| Webhooks Service | /health | Webhook delivery and event processing |
Frontend
Section titled “Frontend”| Service | Health Endpoint | Description |
|---|---|---|
| User Dashboard | /api/health | Main user-facing web application |
| Admin Dashboard | /api/health | Admin management panel |
| Landing Page | Root URL | Marketing and public-facing site |
Each service shows a real-time status indicator:
- 🟢 Operational — Service is healthy and responding normally
- 🟡 Degraded — Service is responding but with reduced performance
- 🔴 Down — Service is unavailable
- ⚪ Unknown — Status could not be determined
Response latency (in milliseconds) is displayed for each service.
Uptime Tracking
Section titled “Uptime Tracking”The status page tracks uptime history for the past 90 days (configurable up to 365 days).
Uptime Bar
Section titled “Uptime Bar”A visual bar chart displays daily uptime with color-coded indicators:
| Color | Uptime | Meaning |
|---|---|---|
| Green | ≥ 99.9% | Excellent |
| Light Green | ≥ 99.0% | Good |
| Yellow | ≥ 95.0% | Fair |
| Orange | ≥ 90.0% | Poor |
| Red | < 90.0% | Critical |
Hover over any day to see the exact date, uptime percentage, and incident count.
A total uptime percentage is calculated across the entire tracked period.
How Uptime Is Stored
Section titled “How Uptime Is Stored”- Daily uptime records are stored in Vercel KV
- Each status API check automatically records a data point
- Records have a 95-day TTL
- When KV is not configured, the page defaults to 100% uptime
Incident System
Section titled “Incident System”Incident Types
Section titled “Incident Types”- Incident — Unplanned service disruption
- Maintenance — Scheduled maintenance window with countdown display
Severity Levels
Section titled “Severity Levels”- Critical — Major outage affecting core functionality
- Major — Significant degradation of one or more services
- Minor — Limited impact, workaround available
Status Progression
Section titled “Status Progression”Incidents follow a defined status flow:
- Investigating — Issue detected, root cause being analyzed
- Identified — Root cause found, fix in progress
- Monitoring — Fix deployed, monitoring for stability
- Resolved — Incident closed
Incident Feed
Section titled “Incident Feed”The main page shows:
- Active incident count banner
- Incident cards with severity and status badges
- Affected services listed as tags
- Latest update preview with relative timestamps (“5m ago”, “2h ago”)
- Link to view full incident history
Incidents are defined as markdown files with frontmatter metadata, supporting rich update history parsed from markdown headers.
Scheduled Maintenance
Section titled “Scheduled Maintenance”Upcoming maintenance windows are displayed with:
- Countdown timer until maintenance begins
- Expected duration
- Affected services
- Description of the work being performed
API Routes
Section titled “API Routes”The status page exposes several API endpoints for programmatic access.
GET /api/health
Section titled “GET /api/health”Basic health check for the status page itself.
{ "status": "healthy", "service": "status-page", "version": "1.0.0", "timestamp": "2025-03-29T12:00:00.000Z"}GET /api/status
Section titled “GET /api/status”Checks all monitored services in parallel and returns their current state.
{ "overall": "operational", "services": [ { "id": "rest-api", "name": "REST API", "description": "...", "status": "operational", "latency": 45, "lastCheck": "2025-03-29T12:00:00.000Z", "group": "API Services" } ], "lastUpdated": "2025-03-29T12:00:00.000Z"}The overall field is one of: operational, degraded, or down.
GET /api/incidents
Section titled “GET /api/incidents”Fetch incidents with optional filtering.
| Parameter | Values | Default | Description |
|---|---|---|---|
type | active, maintenance, recent, all | all | Filter by incident category |
limit | 1–100 | 10 | Max results for recent type |
type=active— Unresolved incidents onlytype=maintenance— Upcoming or in-progress scheduled maintenancetype=recent— Recently resolved incidents (uselimitto control count)type=all— All three categories combined
GET /api/uptime
Section titled “GET /api/uptime”Fetch daily uptime history.
| Parameter | Values | Default | Description |
|---|---|---|---|
days | 1–365 | 90 | Number of days of history |
{ "days": [ { "date": "2025-03-29", "uptime": 99.98, "checks": 288, "failures": 0 } ], "totalUptime": 99.95, "period": 90}Checking Status Programmatically
Section titled “Checking Status Programmatically”Use the API endpoints to integrate status checks into your own monitoring:
# Quick health checkcurl -s https://status-page-blond.vercel.app/api/health | jq .status
# Get overall platform statuscurl -s https://status-page-blond.vercel.app/api/status | jq .overall
# Check for active incidentscurl -s "https://status-page-blond.vercel.app/api/incidents?type=active" | jq .
# Get 30-day uptime historycurl -s "https://status-page-blond.vercel.app/api/uptime?days=30" | jq .totalUptimeWhen to Check
Section titled “When to Check”- Trades aren’t copying as expected
- Dashboard is slow or unresponsive
- Webhook deliveries are delayed
- Before reporting an issue — it might already be known
Incident History
Section titled “Incident History”The status page maintains a full history of past incidents, including:
- What happened
- When it was detected
- How it was resolved
- Duration of impact

