GET /v1/ping
Answers from the node that serves your calls as soon as the credential is checked, and does no other work. Its time is the round trip from your client through the edge to the node and back, which is what latency targets written as "ping p50 + x" mean by the edge round trip. Any valid credential may call it, whatever its scopes. It is not metered. The response carries `Server-Timing` like every node-served call.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token)

Responses

200 The node answered.
application/json
object string REQUIRED
Enum: ping
node string REQUIRED
The id of the node that answered (`n1`).
ts string (date-time) REQUIRED
The node's clock when it answered, RFC 3339 in UTC with milliseconds.
401 Missing, malformed, expired or revoked credentials (`unauthorized`).
403 Authenticated but not allowed (`forbidden`, `egress_denied`).
429 A rate, concurrency or quota limit applies (`rate_limited`, `concurrency_limited`, `quota_exceeded`).
500 Something failed inside B3OS (`internal`). Retry with backoff.
503 The node or the product is not available right now (`node_unavailable`, `product_unavailable`, `capacity_unavailable`).
curl -X GET 'https://beta-api.b3os.org/v1/ping' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/ping', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/ping', headers=headers)print(response.json())
200 Response
{  "object": "ping",  "node": "n1",  "ts": "2026-10-30T12:00:00.000Z"}
Ask a question... ⌘I