Overview
The Node Status API provides real-time visibility into the health of BDFD's infrastructure. It exposes per-node metrics (ping, bot count, online/offline status) for both standard and high-performance node pools, plus a rolling history of snapshots for trend analysis.
// Base URL for all node status endpoints https://api.bdtools.xyz/node-status
/node-status
Returns a full status overview including summary counts and all nodes grouped into standard, high-performance, and offline arrays. This is the primary endpoint for a complete snapshot of the BDFD infrastructure.
Responses
{ "totalBots": 812, "onlineNodes": 12, "offlineNodes": 1, "standardNodeCount": 13, "hpNodeCount": 1, "updatedAt": "2026-04-30T12:00:00.000Z", "nodes": { "standard": [ { "nodeId": 1, "bots": 14, "pingMs": 2, "status": "online" } // ... more nodes ], "highPerformance": [ { "nodeId": 1, "bots": 2, "pingMs": 1, "status": "online" } // ... more nodes ], "offline": [ { "nodeId": 7, "bots": 0, "pingMs": null, "status": "offline" } ] } }
{ "error": "Internal server error" }
/node-status/summary
Alias for
GET /node-status. Returns the identical full response with summary counts and all
node arrays. Useful when you want a semantically explicit URL.
Responses
// Same shape as GET /node-status { "totalBots": 812, "onlineNodes": 12, "offlineNodes": 1, "standardNodeCount": 13, "hpNodeCount": 1, "updatedAt": "2026-04-30T12:00:00.000Z", "nodes": { "standard": [ /* node objects */ ], "highPerformance": [ /* node objects */ ], "offline": [ /* node objects */ ] } }
{ "error": "Internal server error" }
/node-status/nodes
Returns a flat array of all standard nodes sorted by node ID. Use this when you only need the standard node pool without summary metadata or high-performance nodes.
Responses
[ { "nodeId": 1, "bots": 14, "pingMs": 2, "status": "online" }, { "nodeId": 2, "bots": 13, "pingMs": 1, "status": "online" } // ... sorted by nodeId ascending ]
{ "error": "Internal server error" }
/node-status/node/:id
Returns the current status of a single standard node by its
numeric ID. Replace
:id
with the node number, e.g.
/node-status/node/5.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | integerrequired | The numeric ID of the standard node to retrieve. |
Responses
{ "nodeId": 5, "bots": 12, "pingMs": 1, "status": "online" }
{ "error": "Node not found" }
{ "error": "Internal server error" }
/node-status/high-performance
Returns a flat array of all high-performance (HP) nodes sorted by node ID. HP nodes typically serve premium bots and have lower ping and higher capacity than standard nodes.
Responses
[ { "nodeId": 1, "bots": 15, "pingMs": 1, "status": "online" }, { "nodeId": 2, "bots": 12, "pingMs": 1, "status": "online" } // ... sorted by nodeId ascending ]
{ "error": "Internal server error" }
/node-status/offline
Returns a flat array of all currently offline nodes (both standard and high-performance) sorted by node ID. Use this endpoint to quickly identify which nodes are experiencing downtime.
Responses
[ { "nodeId": 7, "bots": 0, "pingMs": null, "status": "offline" }, { "nodeId": 12, "bots": 0, "pingMs": null, "status": "offline" } // Note: pingMs is null for offline nodes ]
{ "error": "Internal server error" }
/node-status/history
Returns an array of historical status snapshots in chronological
order (oldest first). Each snapshot is recorded every 2 minutes
and retained for 7 days. Use the
limit
query parameter to control how many records are returned -
supports both numeric values and human-readable time formats like
24h
or
7d. Ideal for building uptime graphs or trend charts.
Optionally, you can request a PNG graph visualization by adding
?graph=true
to the URL, which returns a dark-themed chart showing total bots
online over the requested time period.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| limit | integer or string | 5040 |
Number of snapshots to return, or time range in
human-readable format:
Numeric: 720 (exact
number of snapshots) Days: 1d,
7d (e.g.,
7d = 7 days)
Hours: 12h,
24h,
48h (e.g.,
24h = 24
hours) Default: 5040 (7 days), Maximum: 5040 |
| graph | string | - |
Set to
true or
yes to
receive a PNG graph URL alongside the data.
|
Responses
[ { "totalBots": 818, "onlineNodes": 13, "offlineNodes": 0, "standardNodeCount": 13, "hpNodeCount": 1, "createdAt": "2026-04-30T11:55:00.000Z" }, { "totalBots": 812, "onlineNodes": 12, "offlineNodes": 1, "standardNodeCount": 13, "hpNodeCount": 1, "createdAt": "2026-04-30T12:00:00.000Z" } ]
{ "data": [ { "totalBots": 818, "onlineNodes": 13, "offlineNodes": 0, "standardNodeCount": 13, "hpNodeCount": 1, "createdAt": "2026-04-30T11:55:00.000Z" }, { "totalBots": 812, "onlineNodes": 12, "offlineNodes": 1, "standardNodeCount": 13, "hpNodeCount": 1, "createdAt": "2026-04-30T12:00:00.000Z" } ], "png": "https://api.bdtools.xyz/images/limit-720-hash-a1b2c3d4.png" }
Graph Image Features
- Dark-themed chart with purple line graph
- Title automatically adjusts based on time range (e.g., "Total Bots Online - Past 24 Hours" or "Total Bots Online - Past 7 Days")
- Shows total bots online over the requested time period
- Image is cached for 5 minutes
-
Can be embedded directly in BDFD:
$image[...]
Example Requests
// Get 24 hours of data with graph /node-status/history?limit=24h&graph=true // Get 1 day of data with graph (same as 24h) /node-status/history?limit=1d&graph=true // Get 3 days of data with graph /node-status/history?limit=3d&graph=true // Get 7 days of data with graph /node-status/history?limit=7d&graph=true // Get 12 hours of data with graph /node-status/history?limit=12h&graph=true // Get exactly 720 snapshots (numeric format still works) /node-status/history?limit=720
{ "error": "Internal server error" }
/images/:id.png
Serves dynamically generated PNG chart images for node status
history. This endpoint is typically accessed via URLs returned by
the
/node-status/history?graph=true
endpoint. The image ID encodes the query parameters used to
generate the chart.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | stringrequired |
Encoded image identifier containing chart parameters
(e.g.,
limit-720-hash-a1b2c3d4)
|
Chart Features
- Dark-themed background (#1f2937)
- Purple line graph showing total bots online
- Smooth curve with gradient fill
- Dynamic title based on time range
- Y-axis shows bot count
- X-axis labels hidden for cleaner appearance
- 1000x400px resolution
Responses
Content-Type:
image/png
Returns a PNG image
Example Usage
$httpGet[https://api.bdtools.xyz/random-pokemon]
{ "error": "Invalid image ID format" }
{ "error": "No history data available" }
{ "error": "Failed to generate chart" }